此变量是否始终设置为包含我运行CMakeLists.txt
的{{1}}文件的目录?
例如,如果我希望在当前目录上方目录中存在的cmake
文件上运行cmake
,我会去:CMakeLists.txt
。
在这种情况下,我的CMAKE_SOURCE_DIR设置为什么?
答案 0 :(得分:9)
假设您有2个文件夹src
和build
,其中src
包含您的项目,而build
是您刚创建的空文件夹,因此您可以部署其中的树构建:CMAKE_SOURCE_DIR
是src
的路径,其中CMAKE_BINARY_DIR
指向build
。
请注意,如果您正在进行树内构建,则2个缓存条目将获得相同的值。
link:CMake Useful Variables。
<强> 修改 强>
进一步澄清
<some location>/src/CMakeLists.txt ( so *src* is the root of your project )
<some location>/build
如果您执行类似
的操作cd <some location>/build
cmake <some location>/src
您正在进行树外构建,其中CMAKE_SOURCE_DIR
和CMAKE_BINARY_DIR
获得不同的值