問題タブ [build-system]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - C プロジェクトを自動的にビルドする
私は他の人たちと一緒にフリー ソフトウェア (bsd ライセンス) プロジェクトに取り組んでいます。ソース コード (svn) をチェックアウトし、それをビルドしてテスト (Check やその他のツールを使用した単体テスト) できるシステムを探しています。
Web ベースのインターフェイスがあり、レポートを生成する必要があります。
このようなシステムを null から自分で作成する必要がないことを願っています...
versioning - バージョン管理システムを実装するための優れた戦略
しばらくの間、ソフトウェアのバージョン管理に苦労しています。命名規則について話しているのではなく、ビルド システムでバージョンをリリースまで実際に適用する方法について話しているのです。
私は通常、major.minor.maintenance-[リリース タイプ] 1.0.2-rc1 を使用します。
問題はバージョン番号の管理です。私は多くの方法を試しました (ビルド ファイル、プロパティ ファイル、データベースなどに貼り付けます) が、実際にうまく機能するものは見つかりませんでした。
私が思いついた最も近いものは、ここに文書化した Jira の使用です: http://blog.sysbliss.com/uncategorized/release-management-with-atlassian-bamboo-and-jira.html
誰かがこれについて何か良いアイデアを持っているかどうか疑問に思っています。また、人々がバージョンのリリースをどのように処理するのか疑問に思っています....つまり、バージョン 1.0.0-rc1 をリリース/展開すると、このリリースで見つかったバグが発生し、1.0.0 (次の/製品リリース) にログインします。
migration - Boost Jamとは何ですか?Jamは移行する価値がありますか?
Boost Jamとは何ですか?Jamは移行する価値がありますか?
ジャムはPERFORCEによって構築されたビルドシステムであることは理解していますが、ブーストジャムと通常のジャムがどのように異なるのかわかりません。
また、SOコミュニティに協力してくれた人がいて、いくつかの違いや利点を強調できる人がいることを願っています。
c - Windows プラットフォームのメーカーと代替案、長所と短所
メイクプラットフォームを探しています。私はgnu makeについて少し読んだことがありますが、Windowsプラットフォームでいくつかの問題があること(スラッシュ/バックスラッシュからシェルの決定まで...)なので、それに代わるものは何ですか?
それが重要な場合、私は小規模なプロジェクト(最大50k行)で(非常に)小さなcを組み合わせたfortran開発を行っていますが、それらのほとんどは言語に依存しないタイプであるため、それは問題ではないと思います。
gnu make の欠点とは何ですか? また、どのような代替手段があり、どのような利点がありますか?
visual-studio - マルチターゲット Visual Studio プロジェクト: 1 つのソース コード
いくつかの異なるプラットフォーム/ターゲットに対して 1 つまたは 2 つのライブラリをコンパイルするビルド システムをセットアップする方法についての提案。
メイン プロジェクトは Visual Studio にあります。
たとえば、次のライブラリがあります。
いくつかの調整を加えて、Windows と Linux でコンパイルします。
ライブラリ win_nav.lib を使用する実行可能ファイルは、現時点では OpenGL を使用する Windows でのみコンパイルされます。
このコードをiPhoneに移植しています。Windows でライブラリ全体をコンパイルおよびリンクできないことはわかっていますが、OpenGL インクルードと OpenGLES インクルードを使用してグラフィックス コードをコンパイルしたいと考えています。(おそらく、Windows マシンでも私の opengles コードをテストできますか?)
プリプロセッサ フラグに基づいて含めるようにグラフィック ファイルを変更する予定です。
では、どうやってこれを行うつもりですか?
Visual Studio でいくつかの異なるスクリプトまたは異なるプロジェクトを使用していますか?
cmake - ビルドシステムと移植性
どうすれば移植可能なビルド システムを作成できるか (ステップ バイ ステップ) を考えています。最初はセットアップが簡単で、アーチ ターゲットが 1 つだけだったので、現在は cmake を使用していますが、今はパッケージ化する必要があります。私が開発しているライブラリ 私がテストしているアーチに移植できるようにする最良の方法は何だろうと思っています。
アーチに応じて物事を定義するためにconfig.hが必要であることは知っていますが、これがどのように自動化されるかはわかりません。
ビルド システムを使用するその他の方法は、大歓迎です。
build-process - 組み込み開発/クロスコンパイルに最適なビルドシステム
現在、dsPIC を使用して開発を行っていますが、MPLAB が好きというわけではありません。私は実際にメイクファイル プロジェクトで Visual Studio を使用しています。現在、私は SCons を使用していますが、代替コンパイラを使用するためのセットアップに関する役立つガイドを見つけた後、かなりうまく機能しているようです。それでも、私は不思議に思わずにはいられません。これのためのより良いビルドシステムはありますか? また、Sconsにこれをさせるより良い方法はありますか?
xslt - XSLT/XPath で有向非巡回グラフ (DAG) の最小要素 (頂点) を見つけるには?
半順序を表す有向非巡回グラフ (DAG)をエンコードする XML ファイルがあります 。このようなグラフは、依存関係の指定やクリティカル パスの検索などに役立ちます。興味深いことに、私の現在のアプリケーションはビルド システムのコンポーネントの依存関係を指定することなので、頂点はコンポーネントであり、エッジはコンパイル時の依存関係を指定します。簡単な例を次に示します。
この DAG は次のように描画できます。
(出典:iparelan.com)
半順序の最小要素に対応する頂点のみを含む別の XML ドキュメントを生成するXSLT スタイルシートを適用したいと考えています。つまり、着信エッジを持たない頂点です。サンプル グラフの最小頂点のセットは です。私のビルド依存関係アプリケーションでは、このセットを見つけることは価値があります。なぜなら、このセットのメンバーをビルドすると、プロジェクト内のすべてがビルドされることがわかっているからです。{A, B, F}
これが私の現在のスタイルシート ソリューションです (Apache Ant のxslt
タスクを使用して、Java 上の Xalan でこれを実行しています)。重要な観察事項は、最小頂点はどのdirected-edge-to
要素でも参照されないということです。
このスタイルシートを適用すると、次の出力が生成されます (これは正しいと思います)。
問題は、私はこのソリューションに完全に満足していないということです。のとのを XPath 構文と組み合わせる方法があるかどうか疑問に思っています。select
for-each
test
if
私は次のようなものを書きたい:
current()
しかし、関数は外側の//vertex
式によって選択されたノードを参照しないため、それは私が望むことではありません。
これまでのところ、私のソリューションではXPath 1.0とXSLT 1.0の構文を使用していますが、XPath 2.0とXSLT 2.0の構文も受け入れています。
必要に応じて、Ant ビルド スクリプトを次に示します。
dot
ターゲットは、グラフをレンダリングするための Graphviz Dot 言語コードを生成し ます 。ここにあるxml-to-dot.xsl
:
compiler-construction - OCamlプロジェクトをコンパイルするためのばかげて簡単な方法は何ですか?
私はOCamlをいじっています。私が最初に知りたいのは、OCamlプロジェクトをビルドすることです。今、私はただ学んでいるので、ばかげて単純なものが欲しいだけです。誰かが私にビルドシステムと、そのビルドシステムを使用するための「helloworld」タイプの例を教えてもらえますか?
ide - 開発者は、開発を特定のソフトウェアに制限する必要がありますか?
開発者は、開発用途の特定のアプリケーションに制限する必要がありますか?
ほとんどの場合、答えは、開発チームが問題にならないと同意する限りです。
セキュリティ認証の監査を受けている企業にとって、企業のリスクと開発者の柔軟性、パフォーマンスのバランスをとる方法はありますか?
範囲
- コーディング/開発ソフトウェア
- ビルド システム ソフトウェア
- ディストリビューションに含まれるサードパーティ ソフトウェア (ライブラリ、ユーティリティ)
- (追加)ワークステーション上の残りのソフトウェア
可能な解決策
承認されたソフトウェアのホワイト リストを作成します。開発者は、使用する前に目的のソフトウェアの承認を求める必要があります。承認は、ビジネス目的/セキュリティ リスクに基づいて行われます。
ソフトウェアのブラックリストを作成します。開発者は、使用されているすべてのソフトウェアをリストします。審査委員会は定期的にリストを調べます。
チームの設定を超えて開発者ツールを制限する会社で働かなければならなかった人はいますか? 彼らはどのように状況を処理しましたか?
編集
質問を整理しました。議論を少なくしようとしました。