次のディレクトリ構造とライブラリの依存関係があります。
./lib-a
./lib-b (depending on lib-a)
各ディレクトリには、CMakeLists.txt
独自のライブラリを生成するためのファイルが含まれています。アウト オブ ソース ビルディング ポリシーを使用しています。
lib-b が lib-a に依存していると言うために、公式の CMake チュートリアルで教えられていることに従って、コマンドadd_subdirectory(../lib-a lib-a)
を に入れました。このようにして、サブディレクトリが に作成されていることがわかります。./lib-b/CMakeLists.txt
lib-a
./lib-b/build dir
これは私が望む動作ではありません。私が取得したいのは、CMake が lib-b を生成する際に lib-a を参照することです。lib-a がまだ生成されていない場合、CMake は ./lib-a/build の CMakeLists.txt を使用してそれを生成する必要があります。 lib-a (依存関係を処理するときの make ツールの動作と同様の動作)。
また、私の例ではルート CMakeLists.txt を使用していないことを付け加えたいと思いますが、必要なのは、lib-a への依存関係を宣言する lib-b/CMakeLists.txt であり、lib-a をまだコンパイルされていない場合は、独自の lib-a/CMakeLists.txt を使用してコンパイルされます。
dirs 構造とその内容は次のとおりです。
lib-a/
CMakeLists.txt (for compiling lib-a)
src/
test.cpp
include/
test.hpp
lib-b/
main.cpp
CMakeLists.txt (for compiling lib-b; here is the point where I would like to make reference to lib-a, that I need for the generation of lib-b)
lib-b/main.cpp
lib-a の関数を使用しているため、test.hpp
ofのインクルードも含まれています。lib-a
これは、 の仕様で考慮する必要がありlib-b/CMakeLists.txt
ます。
lib-a/CMakeLists.txt
2つのlib-b/CMakeLists.txt
ファイルの内容はどうあるべきですか?