プロジェクトルートにCMakeLists.txt、my/srcフォルダにCMakeLists.txtがあります。/srcフォルダ内のファイルには.cppファイル(set (SOURCEFILES main.cpp foo.cpp)
)の変数のみが含まれています。ルートCMakeLists.txtにはadd_subdirectory(src)
があり、後ではadd_executable(MyApp ${SOURCEFILES})
です。cmake変数スコープ、add_subdirectory
しかし、cmakeのが私の引数の数が正しくありませんと呼ばれるエラー
add_executableを与え、何のソース は、私は、変数を参照するためにcmakeのを取得するにはどうすればよい
ありませんか? setコマンドのドキュメントで述べたように、私はcmakeのが唯一のグローバル変数を知っていることを読んで、それは明らかにそうではないのです...
おかげで、これはそれを解決しました。しかしもう一つの注意:cmakeが親スコープにあるので、サブディレクトリで 'foo.cpp'の代わりに' $ {CMAKE_CURRENT_SOURCE_DIR}/foo.cpp'を使用するようになりました。 – blubberbernd
また、add_subdirectoryコールの前に親CMakeLists.txtファイルに変数を設定し、その定義を子CMakeListsファイルに継承させることもできます。ここでも、複数のCMakeListsファイルから参照する必要がある場合は、ファイルの名前を修飾する必要があります。 – DLRdave
サブdir /関数の値を使用するには、変数をカレントスコープで作成する必要があります。 'set(VAR value PARENT_SCOPE);セット(VAR $ {VAR}); ' –