cmake 脚本解释器

------------------------------------------------------------
author: hjjdebug
date  : 2023年 12月 29日 星期五 12:39:37 CST
description: cmake 脚本解释器
------------------------------------------------------------

# cmake 可看成是一种脚本解释器
# 执行测试可以用cmake -P CMakeLists.txt
# -P 指明是脚本模式而非编译模式,后面文件是cmake 的脚本文件,-P 有process 处理的意思
# 用cmake --help-command-list 可以看到所有支持的命令,100多个,有的命令属于编译模式命令
# 用cmake --help-command <command> 可看到具体命令的使用,命令不区分大小写
# 编译模式或称build模式支持所有脚本模式命令. 所以脚本模式是基本模式.
# 看下面的文件
$ cat CMakeLists.txt
#变量及变量的使用, 变量是字符串或字符串数组
message("hello cmake!")
set(NAME "hjj")
message("hello ${NAME}")

#变量运算
set(a "1")
set(b "2")
math(EXPR res "${a}+${b}") # EXPR(要大写) 是一款表达式计算工具, math 是数学运算
message("a+b is ${res}")

# 循环语句
foreach(i RANGE 1 5)
    message("i is ${i}")
endforeach()

while(${a} LESS "5")
message("a is ${a}")
math(EXPR a "${a}+1")
endwhile()

# if语句中匹配运算
set(ARCH "AX87")
if( ARCH MATCHES "X86")
message("arch is x86")
else()
message("arch is not x86")
endif()

# 定义宏
macro(printf str)
message(${str})               # 不能用小括号,要用大括号引用变量
endmacro()

#定义函数
function(printf2 str)
message(${str})
endfunction()

#使用宏和使用函数
printf("abc") # 宏是展开,函数是调用
printf2("123")


运行结果:

$ cmake -P CMakeLists.txt 
hello cmake!
hello hjj
a+b is 3
i is 1
i is 2
i is 3
i is 4
i is 5
a is 1
a is 2
a is 3
a is 4
arch is not x86
abc
123

虽然你不会用cmake 去编程序,但这些基础知识还是需要知道的.

这样再看见那些.cmake 后缀文件,CMakelists.txt 文件等就不会太陌生了.

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值