关于定义,你可以做你想做的像这样在你的CMakeLists.txt文件:
if(CMAKE_BUILD_TYPE MATCHES "[Dd][Ee][Bb][Uu][Gg]")
message("INFO: DEBUG BUILD")
# for debug type builds, turn on verbose makefiles
SET(CMAKE_VERBOSE_MAKEFILE ON)
# Tell other CMake files that we're doing a debug build
SET(DEBUG_BUILD 1)
# Tell C/C++ that we're doing a debug build
ADD_DEFINITIONS(-DDEBUG)
endif()
if(CMAKE_BUILD_TYPE MATCHES "[Rr][Ee][Ll][Ee][Aa][Ss][Ee]")
message("INFO: RELEASE BUILD")
endif()
CMake的不喜欢支持两个目标,换句话说2个工具链,在同构建树。无论如何,这真的没有必要。对于每个可能的目标,绝对使用一个构建树的树外构建。类似这样的:
cd /path/to/x86_build
cmake /path/to/src/x86/CMakeLists.txt
cd /path/to/Armel_build
cmake /path/to/src/Armel/CMakeLists.txt
标准礼仪项目文件每个帖子只能提出一个问题:http://meta.stackexchange.com/questions/39223/one-post-with-multiple-questions-or-multiple-posts,这样更直接地将答案标记为“接受” –