16

非常に大規模なプロジェクトを GNU Make から最新のビルド ツールに変換することを考えています。私の現在の提案は、SCons または Waf を使用することです。

現在:

  • ビルド時間は約 15 分です。
  • 約100人の開発者。
  • コードの約 10% は C/C++/Fortran で、残りは Ada (gnatmake を使用) です。

改善に対する潜在的な希望/利益は

  • ビルド時間を短縮し、ディスク容量を必要とする共有コンパイラ キャッシュ
  • メンテナンスが容易

SCons はこのタスクに適していますか? Wafと同様にスケーリングしないというコメントを見てきました。ただし、それらは数年前のものです。スコンズは過去数年間のパフォーマンスで獲得しましたか? そうでない場合、Waf と比較してパフォーマンスが悪い理由は何ですか。

4

3 に答える 3

10

私は、を中心に構築された当社のツールチェーンを開発してきましたwaf。これはFedora、Ubuntu、Arch、Windows、Mac OSXを対象としており、さまざまなホストでクロスコンパイルを行う組み込みデバイスに展開されます。

ツール、機能、およびその他の方法を通じて拡張性を封じ込めることができる方法wafにより、プロジェクトのカスタマイズと拡張が非常に簡単になりました。

個人的には、それは素晴らしく、統合されているさまざまなツールへのインターフェイスをうまく抽象化していると思います。

残念ながら、私はSconsについての深い経験はありませんが、GNU Make/Autotoolsについてはたくさんの経験があります。ビルドツールを評価した後、私たちが採用した決定wafは、どこでもうまく機能するものが必要であり、それによってビルドツールがPythonに支えられ、高速であるということでした。私はこれらの結果に基づいて決定し、そこから進みました。

于 2013-02-07T15:48:56.997 に答える
8

以前は、SCons はそれほどパフォーマンスが高くありませんでしたが、その後、多くの改善が加えられました。

私は両方のオプションが好きで、約 6 か月前に同じ決定を下さなければなりませんでした。SCons の方がユーザー数もサポート数も多いように見えるので、私は SCons を選びました。

これは、 SConsを他のビルド ツールと比較するのに役立つリンクです。

于 2012-09-24T17:15:55.737 に答える
7

個人的には Waf の方が柔軟性が高く、バリアント ディレクトリの問題がないため、Waf の方が好みです。

ワフ

長所:

  • 別のバリアント ディレクトリ。オブジェクト ファイルでソース フォルダーを乱雑にしないでください (SCons にもこれがありますが、既定ではオンになっておらず、機能するまでに数回の試行が必要です)。
  • 非常に柔軟
  • 依存関係の自動ソート
  • 多くの Python バージョン (CPython 2、CPython 3、Jython、および PyPy) で動作します。
  • アプリケーションと一緒に配布するので、ユーザーは Python だけで済みます

短所:

  • 伸ばすのが苦痛
  • 恐ろしく文書化されていません(例は役に立ちますが)
  • GCC と Clang をうまく区別できません (SCons にもその問題があるかどうかはわかりません)。

SCons

長所:

  • Wafよりもはるかにシンプル
  • Wafよりも拡張しやすい(こちら参照)
  • ある程度文書化されている

短所:

結論

それはあなたが探しているものに依存します。一般に、Waf は大規模なプロジェクトを管理するのに非常に優れているように見えますが (速度だけでなく)、拡張する必要がある場合は、他の場所を探してください。一方、SCons ははるかに使いやすいです。

Waf を使用する場合は、問題をメーリング リストに投稿してください。

于 2014-07-20T20:26:43.490 に答える