【发布时间】:2018-05-09 17:43:31
【问题描述】:
是否可以从 CMakeLists.txt 文件更改 CMake 构建目录? 我正在查看 CMAKE_BINARY_DIR 变量,但它似乎是不可更改的。 原因是我的项目可以针对不同的平台进行编译,我希望用户定义一个构建目录,CMake会根据平台决定构建位置: 如果(x86):CMAKE_BINARY_DIR = CMAKE_BINARY_DIR/x86 if (x64): CMAKE_BINARY_DIR = CMAKE_BINARY_DIR/x64
简而言之,让用户不要为他要为其编译项目的每个平台配置构建目录。
谢谢, 安儿
【问题讨论】:
-
正如我在my answer 中对其他问题所描述的,更改构建目录的唯一方法是调用
add_subdirectory。例如。你可能有“元”顶级CMakeLists.txt,它将平台检测为PLATFORM变量,然后调用add_subdirectory(src ${PLATFORM})。 -
但是你需要为每个你想要编译它的平台复制你的源代码
-
不,不需要复制源代码:当调用
add_subdirectory(src ${PLATFORM})切换到特定于平台的构建目录${CMAKE_BINARY_DIR}/${PLATFORM}时,源目录变为平台无关:${CMAKE_SOURCE_DIR}/src。 -
知道了,谢谢!
标签: cmake