cmake学习【function】
2023-12-23 07:36:28
cmake学些function
在CMake中,function
命令用于定义函数,允许你封装一段逻辑,使其在多个地方重复使用。以下是function
命令的主要用法及其参数,以及一些示例说明:
1. 基本语法
function(functionName [arg1 [arg2 ...]])
# 函数体
endfunction()
functionName
: 函数的名称。arg1 [arg2 ...]
: 函数的参数。
2. 示例:简单的函数
function(say_hello name)
message(STATUS "Hello, ${name}!")
endfunction()
# 调用函数
say_hello("John")
3. 示例:带返回值的函数
function(add_numbers a b result)
math(EXPR ${result} "${a} + ${b}")
endfunction()
# 调用函数
add_numbers(2 3 sum)
message(STATUS "Sum: ${sum}")
4. 示例:带默认参数的函数
function(print_message messageType message)
if(NOT messageType)
set(messageType "INFO")
endif()
message(${messageType} "${message}")
endfunction()
# 调用函数
print_message("Hello, CMake!") # 默认为 INFO 类型
print_message(WARNING "This is a warning.")
5. 示例:函数中使用全局变量
set(globalVar "Global Variable")
function(print_global_variable)
message(STATUS "Global Variable: ${globalVar}")
endfunction()
# 调用函数
print_global_variable()
6. 示例:函数中调用其他函数
function(greet_person name)
say_hello(${name})
endfunction()
# 调用函数
greet_person("Alice")
7. 示例:递归函数
function(factorial n result)
if(${n} LESS 2)
set(${result} 1)
else()
math(EXPR new_n "${n} - 1")
factorial(${new_n} sub_result)
math(EXPR ${result} "${n} * ${sub_result}")
endif()
endfunction()
# 调用函数
factorial(5 answer)
message(STATUS "Factorial of 5: ${answer}")
这些示例涵盖了function
命令的一些基本用法,包括带参数、默认参数、返回值、全局变量的使用,以及函数的递归调用。在实际项目中,函数通常用于封装可重复使用的逻辑,提高CMake脚本的可维护性。
文章来源:https://blog.csdn.net/weixin_43739167/article/details/135156881
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!