CMake で作成したいくつかの異なるプロジェクトを統合しようとしています。一般に、プロジェクトは均一に配置されているわけではありませんが、いくつかの類似点があります。ライブラリごとに、ライブラリには通常、維持したいテストコード/実行可能ファイルがあります...また、独自の相互依存関係を持つこともできます。さらに、これらのライブラリは別々のリポジトリ (違いがある場合は水銀) で維持されています。ファイルの相互依存関係は次のようになります。
- ライブラリ A は独立しています
- ライブラリ B は独立しています
- ライブラリ C は独立しています
- ライブラリ E は A、B、C に依存します
- 実行可能ファイル 1 C に依存
- 実行可能ファイル 2 E に依存
- 実行可能 3 E に依存
したがって、各ライブラリは一般的に次のようにレイアウトされます
+ LibraryA\
| + CMakeLists.txt
| + LibraryA
| | + CMakeLists.txt
| | + Include\
| | | header.h
| | + Source\
| | | lib.cpp
| + Test\
| | + CMakeLists.txt
| | main.cpp
そして、包括的な構造よりも
+ Root\
| + CMakeLists.txt
| + LibraryA\
| + LibraryB\
| + LibraryC\
| + LibraryE\
| + Executable1\
| + Executable2\
| + Executable3\
各フォルダーは独自のサブディレクトリ プロジェクトです。この構造はcmakeで意味がありますか? これらのプロジェクト間の依存関係をどのように維持していますか? (A を変更すると、Executable 3 は再構築する必要があります)?