如何通过引用将列表传递给 Cmake 函数

How to pass list to Cmake function by reference

提问人:איתי יאיר 提问时间:2/13/2019 更新时间:2/13/2019 访问量:751

问:

我想在 Cmake 中将列表传递给函数,编辑列表,并在调用函数中使用新值。

我试过这段代码:

function(foo my_list)
  message(
    STATUS
    ${${my_list}}
  )

  string(REPLACE "-O4" "-Oz" ${my_list} "${${my_list}}" PARENT_SCOPE)

endfunction(foo)

......

foo(my_list)
message(
    STATUS
    ${${my_list}}
  )

我希望来自 foo 函数内部的消息将打印列表值,但它会打印“my_list” 另外,我希望在 foo 函数返回后,my_list将被更改(“-Oz”而不是“-O4”,但它不会被更改)

列出 cmake 按引用传递

评论

2赞 Tsyvarev 2/13/2019
当您将变量传递给函数时,变量的内容是什么?确切地说,此内容是用内部 .顺便说一句,字符串(REPLACE)命令没有选项。您需要单独替换字符串,将结果存储在局部变量中,并使用 .my_listfoomessage()fooPARENT_SCOPEset(... PARENT_SCOPE)

答: 暂无答案