[cmake函数]cmake中的function()

开始记录(声明)函数以供以后作为命令调用,是在cmake当中自定义函数的一种方式。

概述

function(<name> [<arg1> ...])
  <commands>
endfunction()

定义一个名为<name>的函数,它接受名为<arg1>…的参数,记录函数定义中的<commands>; 在调用该函数之前它们不会被执行。<commands>可以理解为函数定义中的具体的操作。
按照传统, endfunction() 命令允许可选的<name> 参数。 如果使用,它必须是打开函数命令的参数的逐字重复。
定义函数会打开一个新作用域:有关作用域详细信息,请参阅 set(var PARENT_SCOPE)。
有关函数内原则的约束,请参阅 cmake_policy() 命令文档。
有关 CMake 函数和宏之间的差异,请参阅 Macro() 命令文档。

调用

函数调用不区分大小写。 函数定义为

function(foo)
  <commands>
endfunction()

可以使用一下的方式进行调用

foo()
Foo()
FOO()
cmake_language(CALL foo)

等等。 但是,强烈建议保留函数定义中选择的情况。 通常,函数使用全小写名称。

参数

当调用该函数时,首先通过用传递的参数替换形式参数(${arg1},…)来修改记录的<commands>,然后像普通命令一样调用。
除了引用形式参数之外,您还可以引用 ARGC 变量,该变量将被设置为传递到函数中的参数数量,以及 ARGV0、ARGV1、ARGV2…,它们将具有传入参数的实际值。 这有助于创建带有可选参数的函数。
此外,ARGV 保存提供给函数的所有参数的列表,ARGN 保存最后一个预期参数之后的参数列表。 引用 ARGC 之外的 ARGV# 参数具有未定义的行为。 检查 ARGC 是否大于 # 是确保 ARGV# 作为额外参数传递给函数的唯一方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值