0

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 は再構築する必要があります)?

4

1 に答える 1

0

あなたがやろうとしていることは理にかなっています。そして、それをうまく行う方法がすぐにはわからないかもしれませんが、CMake でそれを行うことができます。私は少し前に同じことを経験し、それについてここに質問を書き、その後に最終的な解決策の概要を説明した回答を書きました:

CMake:複数の(オプションの)サブプロジェクトを構築する最善の方法は?

于 2013-05-08T14:22:30.903 に答える