测试CMakeLists.txt:
function(foo param)
return("hello")
endfunction()
message(foo("oops"))
当“cmake”。使用上面的文件运行,它打印“foo(oops)”。我希望它打印“你好”。
如何让一个函数在CMake中接收另一个函数?
答案 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}")