从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
没有重复的注释:
Modify a variable inside a function是关于JavaScript而不是CMake
Is JavaScript a pass-by-reference or pass-by-value language?是关于JavaScript而不是CMake
答案 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})