CMake - 环境变量

一、控制构建的环境变量

环境变量说明可设置的值
CMAKE_APPLE_SILICON_PROCESSOR在MacOS系统中,用于告诉CMake使用哪个架构进行编译arm64 / x86_64
CMAKE_BUILD_PARALLEL_LEVEL构建时要使用的最大并发进程数数值
CMAKE_BUILD_TYPE构建类型Debug / Release / RelWithDebInfo / MinSizeRel
CMAKE_CONFIGURATION_TYPES多配置生成器上的可用构建类型Debug / Release / RelWithDebInfo / MinSizeRel
CMAKE_CONFIG_TYPE
CMAKE_EXPORT_COMPILE_COMMANDS在生成期间启用/禁用编译命令的输出,如果开启则生成的文件compile_commands.json,包含所有编译单元所执行的指令ON / OFF
CMAKE_GENERATOR指定生成器,可以在cmake指令中使用-GUnix Makefiles, Ninja, etc.
CMAKE_GENERATOR_INSTANCE用户提供的特定生成器的特定生成器实例例如:对于Visual Studio 15 2017 Generator(及更高版本),这将指定所选VS实例的VS安装目录的绝对路径。
CMAKE_GENERATOR_PLATFORM用户提供的特定特定平台的特定生成器例如:对于Visual Studio 15 2017 Generator(及更高版本),这将指定特定的平台架构。
CMAKE_GENERATOR_TOOLSET用户提供的本地构建系统工具集
CMAKE_INSTALL_MODE
CMAKE_<LANG>_COMPILER_LAUNCHER其中,<LANG>为 C, CXX, Fortran, HIP, ISPC, OBJC, OBJCXX, or CUDA
CMAKE_<LANG>_FLAGS其中,<LANG>为 C, CXX, Fortran, HIP, ISPC, OBJC, OBJCXX, or CUDA
CMAKE_<LANG>_LINKER_LAUNCHER其中,<LANG>为 C, CXX, Fortran, HIP, ISPC, OBJC, OBJCXX, or CUDA
CMAKE_MSVCIDE_RUN_PATH
CMAKE_NO_VERBOSE实际发布时,使用它去掉一些冗余信息ON / OFF
CMAKE_OSX_ARCHITECTURESMacOS系统指定架构
CMAKE_TOOLCHAIN_FILE工具链文件路径,交叉编译的工具链toolchain.cmake,该文件里面设置了一系列CMAKE变量和属性,比如C_COMPILER,CXX_COMPILER等
DESTDIR重新指定所有安装文件的路径, make install DESTDIR= < $CUSTOM_PREFIX>在configure或cmake时,指定了要安装的路径后,以这种方式make install安装的文件会通通安装到以$CUSTOM_PREFIX为前缀的目录中,这样,开发者直接对这目录中的文件打包,即可发布使用
LDFLAGS只有在第一个配置上使用cmake来确定默认链接器标志,之后LDFLAGS 的值存储在缓存中作为CMAKE_EXE_LINKER_FLAGS_INIT,CMAKE_SHARED_LINKER_FLAGS_INIT 和CMAKE_MODULE_LINKER_FLAGS_INIT。对于任何配置运行(包括第一个配置),如果定义了等效的CMAKE_<TYPE>_LINKER_FLAGS_INIT变量,则将忽略环境变量。
<PackageName>_ROOTfind_package(<PackageName>)将用到此变量设置的package路径,例如要find_package(Foo),则需要设置 Foo_ROOT,否则会报CMP0074的警告Package的路径
VERBOSE实际发布时,使用它去掉一些冗余信息

二、改变行为的环境变量

环境变量说明可设置的值
CMAKE_PREFIX_PATH设置库的搜索路径,可用于 find_package(), find_program(), find_library(), find_file(), find_path() 在改路径查找库路径

三、其他

环境变量说明可设置的值
ROJECT_BINARY_DIR工程的二进制文件路径
CMAKE_CURRENT_BINARY_DIR外部编译时,指的是target目录,内部编译时,指的是顶级目录
ROJECT_SOURCE_DIR工程源文件路径
CMAKE_SOURCE_DIR工程根目录路径,如果有多层子目录,在子目录CMakeLists文件中获取到的也是根目录的路径
CMAKE_CURRENT_SOURCE_DIR当前源文件路径,即CMakeList.txt所在的目录
CMAKE_CURRENT_LIST_DIR当前CMakeList.txt所在的目录
CMAKE_CURRENT_LIST_FILE当前CMakeList.txt文件完整路径
CMAKE_CURRENT_LIST_LINE当前所在的行
CMAKE_MODULE_PATH如果工程复杂,可能需要编写一些cmake模块,这里通过SET指定这个变量
EXECUTABLE_OUTPUT_PATH当前工程生成可执行文件,生成的可执行文件存放的目录
LIBRARY_OUTPUT_DIR当前工程生成库文件,生成的库文件存放的目录
BINARY_OUTPUT_DIR生成的二进制文件存放的目录
BUILD_SHARED_LIBS是否编译动态库,与add_library的第二个参数意思一样,设置ON则生成动态库,否则生成静态库ON / OFF

sample_004

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值