cmake 使用记录

本文详细介绍了CMake中宏和函数的参数使用,包括ARGC、ARGV、ARGN的含义,以及变量引用和宏函数的区别。还讨论了如何通过cmake_parse_arguments函数解析参数,提供了一种更便捷的方法来处理函数参数。
摘要由CSDN通过智能技术生成

CMake中宏和函数的参数ARGV ARGC ARGN

cmake中的宏(macro)和函数(function)都支持动态参数
变量ARGC记录传入的参数个数
变量ARGV0,ARGV1,…顺序代表传入的参数
变量ARGV则是一个包含所有传入参数的list
变量ARGN也是一个包含传入参数的list,但不是所有参数,而是指macro/function声明的参数之后的所有传入参数
#定义一个宏,显式声明了两个参数hello,world

macro(argn_test hello world)
	MESSAGE(STATUS ARGV=${ARGV})
	MESSAGE(STATUS ARGN=${ARGN})
	MESSAGE(STATUS ARGV0=${ARGV0})
	MESSAGE(STATUS ARGV1=${ARGV1})
	MESSAGE(STATUS ARGV2=${ARGV2})
	MESSAGE(STATUS ARGV3=${ARGV3})
endmacro()

调用宏时传入4个参数

argn_test(TOM JERRY SUSAN BERN)

==== output ====

-- ARGV=TOMJERRYSUSANBERN
-- ARGN=SUSANBERN
-- ARGV0=TOM
-- ARGV1=JERRY
-- ARGV2=SUSAN
-- ARGV3=BERN

CMake变量以及变量的引用

CMake中的变量无需声明,并且没有类型概念,这一点类似于python;变量可以认为都是全局的,哪怕在一个宏中定义的变量,也可以在宏的外面被访问到;所有的变量都是一个列表变量,下文在举例时会详细说明这一点;CMake对于变量是大小写敏感的。
在CMake中,有两种引用方式:对于变量值的引用,和直接引用这个变量本身,使用方式分别是:${varName} 和 varName。
(感觉像是指针)

CMake的宏与函数

同大多数脚本语言一样,CMake中也有宏和函数的概念,关键字分别为"macro"和"function",具体用法如下:

# 宏

macro( [arg1 [arg2 [arg3 ...]]])
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值