プロジェクトのルートにCMakeLists.txtがあり、/ srcフォルダーにCMakeLists.txtがあります。/srcフォルダーには、.cppファイル(set (SOURCEFILES main.cpp foo.cpp)
)を持つ変数のみが含まれ、ルートCMakeLists.txtにはadd_subdirectory(src)
を実行し、後でadd_executable(MyApp ${SOURCEFILES})
を実行します。
しかし、cmakeは私にエラーを与えます
add_executableが間違った数の引数で呼び出されました。ソースは提供されていません
変数を確認するためにcmakeを取得するにはどうすればよいですか? cmakeはグローバル変数のみを知っていると読みましたが、明らかにそうではありません...
set コマンドのドキュメントで述べたように、add_subdirectory
で追加された各ディレクトリ、またはfunction
で宣言された各関数は新しいスコープを作成します。
新しい子スコープは、親スコープからすべての変数定義を継承します。 set
コマンドを使用した新しい子スコープでの変数の割り当ては、PARENT_SCOPE
オプションを使用しない限り、子スコープでのみ表示されます。
プロジェクトのルートフォルダーにSOURCEFILES
割り当てを表示するには、次を試してください。
set (SOURCEFILES main.cpp foo.cpp PARENT_SCOPE)