1

次のディレクトリ構造とライブラリの依存関係があります。

./lib-a
./lib-b (depending on lib-a)

各ディレクトリには、CMakeLists.txt独自のライブラリを生成するためのファイルが含まれています。アウト オブ ソース ビルディング ポリシーを使用しています。

lib-b が lib-a に依存していると言うために、公式の CMake チュートリアルで教えられていることに従って、コマンドadd_subdirectory(../lib-a lib-a)を に入れました。このようにして、サブディレクトリが に作成されていることがわかります。./lib-b/CMakeLists.txtlib-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.cpplib-a の関数を使用しているため、test.hppofのインクルードも含まれています。lib-aこれは、 の仕様で考慮する必要がありlib-b/CMakeLists.txtます。

lib-a/CMakeLists.txt2つのlib-b/CMakeLists.txtファイルの内容はどうあるべきですか?

4

1 に答える 1