CMAKE_SOURCE_DIR はおそらくあなたが望むものではありません

CMAKE_SOURCE_DIRに噛まれたのは今日でn回目 ということで、ここに書いておきます。要するに、CMake には 2 つの定義済み変数があります:CMAKE_SOURCE_DIRPROJECT_SOURCE_DIR .CMAKE_SOURCE_DIR CMakeLists.txt を含む最上位のソース ディレクトリを参照します。 ,while PROJECT_SOURCE_DIR 最新の project() のソース ディレクトリを参照します。 コマンド。

多くの場合同じですが、CMake を使用する場合の一般的なワークフローは add_subdirectory を使用することです ライブラリを追加します。その場合、任意の CMAKE_SOURCE_DIR その内部ライブラリでは、ライブラリ自体のルート ディレクトリではなく、外部プロジェクトのルートを参照します!この動作はほとんどの場合間違っているため、PROJECT_SOURCE_DIR を使用する必要があります。