主要用在vs这种支持多配置的集成开发环境中,可以在CMakeLists.txt中指定,也可以在CLI中指定。测试的时候发现在CMakeLists.txt定义时不能使用自定义类型,如Debug_T,只能使用系统规定的4种类型,使用CLI时,可以自定义类型,如:
cmake .. -G"Visual Studio 15 2017" -D CMAKE_CONFIGURATION_TYPES="Release;Debug_T"
但是生成出来的自定义配置Debug_T并不是调试版本,默认不开启调试,没啥意义。
命令查找
cmake --help 可查找所有的cmake命令 cmake --help-command-list 可查找常用的cmake命令
添加打印调试
include(CMakePrintHelpers)
cmake_print_variables(var1 var2 ...)
CMake Cookbook中文版
2.2 处理与平台相关的源代码
通过使用target_compile_definition 在预处理阶段使用,实现宏定义。也可以使用add_definition 来设置定义。但是后者的缺点是,会修改编译整个项目的定义,而前者给我们机会,将定义限制于一个特定的目标,以及通过PRIVATE|PUBLIC|INTERFACE 限定符,限制这些定义可见性。
2.4 检测处理器体系结构
检查空指针类型的大小。CMake的CMAKE_SIZEOF_VOID_P变量会告诉我们CPU是32位还是64位。CMake中加入如下语句:
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
target_compile_definitions(arch-dependent PUBLIC "IS_64_ARCH")
message(STATUS "Target is 64 bits")
else()
target_compile_definitions(arch-dependent PUBLIC "IS_32_ARCH")
message(STATUS "Target is 32 bits")
endif()
|