嵌套函数调用CMake(使用一个结果作为另一个参数)

时间:2016-06-30 18:03:47

标签: function cmake

测试CMakeLists.txt:

function(foo param)
    return("hello")
endfunction()

message(foo("oops"))

当“cmake”。使用上面的文件运行,它打印“foo(oops)”。我希望它打印“你好”。

如何让一个函数在CMake中接收另一个函数?

1 个答案:

答案 0 :(得分:1)

CMake函数不会以您提供的代码示例的方式“返回值”。通常,如果CMake内置函数或函数想要返回一个值,它需要使用变量的名称来存储结果:

function(foo param ret)
    set(${ret} "hello ${param}" PARENT_SCOPE)
endfunction()

然后,您需要自己在调用者中构建控制流:

foo("world" hello_world)
message(STATUS "foo returned: ${hello_world}")
foo(${hello_world} hello2)
message(STATUS "foo second call returned: ${hello2}")