cmakevariables作用域,add_subdirectory
我有一个CMakeLists.txt在我的项目根目录和一个在我的/ src文件夹。 / src文件夹中的一个只包含一个带.cpp文件( set (SOURCEFILES main.cpp foo.cpp)
)的variables,并且在根CMakeLists.txt中,我做了add_subdirectory(src)
,后来我做了add_executable(MyApp ${SOURCEFILES})
。
但cmake给我的错误
调用的add_executable参数数量不正确,没有提供源代码
如何获得cmake来查看variables? 我读了cmake只知道全局variables,但显然不是这样的…
正如在set命令的文档中提到的,每个添加了add_subdirectory
目录或者每个使用function声明的function
都会创build一个新的作用域。
新的子作用域inheritance其父作用域中的所有variables定义。 只有在使用PARENT_SCOPE
选项的情况下,使用set
命令才能在子作用域中显示新子作用域中的variables赋值。
要使SOURCEFILES
分配在项目的根文件夹中可见,请尝试:
set (SOURCEFILES main.cpp foo.cpp PARENT_SCOPE)