私は最近、クロス プラットフォーム ビルド システム (メイク ファイル、ビジュアル スタジオ ソリューション/プロジェクトなどをオンデマンドで生成する) を使用して独自のライブラリとプロジェクトのセットアップを開始しましたが、既に解決されている可能性が高い問題に遭遇しました。
私が遭遇した問題は次のとおりです。アプリケーションに依存関係もある依存関係がある場合、リンクされるアプリケーションは依存関係とそのすべてのサブ依存関係をリンクする必要があります。これは再帰的に進行します。
(議論のために、静的ライブラリのみを扱っていると仮定しましょう。)
- TopLevelApp.exe
- 依存関係_A
- 依存_A-1
- 依存_A-2
- 依存関係_B
- 依存関係_B-1
- 依存関係_B-2
- 依存関係_A
したがって、この例では、TopLevelApp は、dependency_A、dependency_A-1、dependency_A-2 などをリンクする必要があり、B についても同様です。ターゲット アプリケーションでこれらすべてを手動で記憶する責任は、最適ではないと思います。また、依存関係の同じバージョンがすべてのターゲットで使用されることを保証するという問題もあります (一部のターゲットが同じものに依存していると仮定すると、boost など)。
現在、すべてのライブラリをリンクする必要があり、それを回避する方法はありません。私が探しているのは、これを管理するビルド システムです。したがって、何かに依存することを指定するだけで、そのライブラリの適切な依存関係が自動的に取り込まれます。
私が調べているビルドシステムは、これを処理しない premake premake4です(私が判断できる限り)。これを処理するビルドシステムを知っている人はいますか? ない場合は、なぜですか?