私はC ++で新しいプロジェクトを開始することを検討しています-最初は自分の時間内に-利用可能なビルドシステムを調査しています。答えは「たくさんあり、みんなひどい」と思われるでしょう。
これに特に必要な機能は次のとおりです。
- C ++ 11サポート
- クロスプラットフォーム(メインターゲットとしてのLinuxですが、少なくともWindows上でもビルドできます)
- まともな単体テストのサポート
- コードを分離するための複数のモジュールのサポート
- コード生成のサポート(asn1cまたはprotobufの使用-まだ100%不明)
- メンテナンスが簡単
今では、CMakeとAutotoolsを使用して1〜4人で簡単にできることがわかっています。おそらく、SConsとWafと他のカップルもそうでしょう。問題は、それらを使用してコード生成を正しく行う方法を考えたことがないことです。つまり、ビルドプロセスが最初に実行されるまで存在しないソースファイルであるため、ビルドシステムが実行可能コードに変換できる必要があるソースファイルです。しかし、ビルドが開始するまでは実際にはわかりません...(特に、ASN1Cは、連携して動作する必要がある数十のヘッダーファイルとソースファイルを生成します。実際のファイルセットは、asnファイルの内容によって異なります)。また、これらのどれも特にメンテナンスが簡単ではないという事実-CMakeとAutotoolsには、動作するように管理する必要のある独自の巨大なスクリプトセットがあります。
それで、このようなものにはどのビルドシステムが推奨されますか?それとも私は今のところメイクファイルとシェルスクリプトで立ち往生していますか?