CMake:如何从函数内部修改变量

时间:2018-11-13 10:09:53

标签: function cmake

从CMake函数内部修改调用方变量的最佳实践是什么。 假设

function(MyFunction IN_OUT_NAME)

   ... what to do here ...

   string(APPEND ${IN_OUT_NAME} " and that")

   ... what to do here ...

endfunction()

需要做些什么才能使以下代码片段

set(MY_MESSAGE "this")
MyFunction(MY_MESSAGE)
message(${MY_MESSAGE})

交付

this and that

没有重复的注释:

1 个答案:

答案 0 :(得分:1)

只需使用PARENT_SCOPE即可将值导出到父范围。

function(MyFunction IN_OUT_NAME)
   string(APPEND ${IN_OUT_NAME} " and that")
   set(${IN_OUT_NAME} "${${IN_OUT_NAME}}" PARENT_SCOPE)
endfunction()

set(MY_MESSAGE "this")
MyFunction(MY_MESSAGE)
message(${MY_MESSAGE})