cmake:function、endfunction 怼烎@ 2022-10-11 14:57 100阅读 0赞 # function # 开始记录一个函数,以便以后作为命令调用。 function(<name> [<arg1> ...]) <commands> endfunction() 定义了一个名为< name >的函数,它接受名为< arg1 >,…记录函数定义中的< commands >;它们在函数被调用之前不会被执行。 每个遗留的endfunction()命令允许一个可选的< name >参数。如果使用,它必须完全重复打开函数命令的参数。 函数会打开一个新的作用域:详细信息请参见set(var PARENT\_SCOPE)。 请参阅cmake\_policy()命令文档了解函数中策略的行为。 请参阅macro()命令文档了解CMake函数和宏之间的区别。 ## 调用 ## 函数调用是不区分大小写的。函数定义为 function(foo) <commands> endfunction() 可以通过任何 foo() Foo() FOO() cmake_language(CALL foo) 等等。但是,强烈建议使用函数定义中选择的情况。通常函数使用全小写名称。 3.18新版功能:cmake\_language(CALL…)命令也可以用来调用函数。 ## 参数 ## 调用函数时,首先用传递的参数替换形式参数($\{arg1\},…),然后作为普通命令调用所记录的< commands >。 除了引用形式参数外,您还可以引用ARGC变量,该变量将设置为传递到函数中的参数数以及ARGV0、ARGV1、ARGV2、。。。它将具有传入的参数的实际值。这有助于创建具有可选参数的函数。 此外,ARGV保存给函数的所有参数的列表,ARGN保存超过上一个预期参数的参数的列表。引用ARGC以外的ARGV参数具有未定义的行为。检查ARGC是否大于\#是确保ARGV\#作为额外参数传递给函数的唯一方法。 # endfunction # 结束函数块中的命令列表。 endfunction([<name>]) 参见function()命令。 可选的< name >参数只支持向后兼容。如果使用它,它必须完全重复打开函数命令的参数。
还没有评论,来说两句吧...