cmake学习【function】

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脚本的可维护性。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值