关于CMake构建工具的一些规则记录

  1. CMake 工具默认编译时不会显示编译器及编译选项等详细信息,在编译时使用 make VERBOSE=1 即可。
  2. CMake 的 message() 函数的使用 :
message( [STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR]  "message to display" ...)
/*
(无) = 重要消息;
 STATUS = 非重要消息;
 WARNING = CMake 警告, 会继续执行;
 AUTHOR_WARNING = CMake 警告 (dev), 会继续执行;
 SEND_ERROR = CMake 错误, 继续执行,但是会跳过生成的步骤;
 FATAL_ERROR = CMake 错误, 终止所有处理过程;
 */
 //变量输出使用 ${VAR}
  1. CMake 中定义变量:
    CMake变量可以分为三类:一般变量、缓存变量,环境变量。
    一般变量: 与其他普通比变量没有什么差异,作用域只在当前文件中。
    缓存变量: 缓存变量与 cmake -D定义的变量一样,会被存储到 CMakeCache.txt 中,注意缓存变量若是要覆盖之前的值需要使用 FORCE 属性。
    环境变量: SET可以修改系统环境变量。
//一般变量
SET(VAR "tewst" ${VAR})
//环境变量
set(ENV{PATH} "$ENV{PATH}:/opt/myDir") //即修改了系统环境变量 `PATH`。
//缓存变量
SET(VAR "xyz" CACHE STRING "this is a comment of VAR") //此时若是缓存中已经存在 VAR,则会忽略此动作,VAR不会改变
SET(VAR "xyz" CACHE STRING "this is a comment of VAR" FORCE) //不论什么情况, VAR 都会被赋值为 "xyz"

  1. CMake 选项开关的定义,option
    option 的使用形式 option(USE_MBEDTLS "use mbedtls." OFF),此处相当于 cmake .. -DUSE_MBEDTLS=OFF 。在 CMakeList.txt 中可以使用此选项开关。

  2. add_definations用于增加-D定义,此定义将载预编译中使用。

  3. add_compile_options 用于增加编译选项。此选项对所有c/c++/asm编译器都作用。而COMPILE_C_FLAGS/COMPIILE_CXX_FLAGS/CMAKE_ASM_NASM_FLAGS分别针对c/c++/asm修改编译选项。target_compile_definitions 可以针对不同目标添加定义。

  4. add_link_options 用于给所有目标添加链接选项。target_link_options针对目标添加链接选项。CMAKE_EXE_LINKER_FLAGS/CMAKE_SHARED_LINKER_FLAGS/CMAKE_STATIC_LINKER_FLAGS见名知意,此三个变量是分别为三类链接目标添加选项。

  5. aux_source_directory获取指定目录下的全部源文件,注意只能识别扩展名为 c, cpp,cxx等。

  6. file(GLOB_RECURSE C_SRC_LIST ${PROJECT_SOURCE_DIR}/../*.c)获取指定目录下全部*.c文件,注意子目录下的也会被识别。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值