将列表转换为cmake函数的参数

时间:2016-06-30 08:25:47

标签: cmake

因此,我们假设我们有一个名为func的CMake函数,该函数接受命名参数,比如NAMED1NAMED2。第一个参数是必需的,第二个参数是可选的。例如

func(NAMED1 foo NAMED2 optional)

现在我有一个循环,需要在每次迭代时调用此函数func,但根据当前的迭代,我有时需要提供可选值,有时不需要。所以在每次迭代中我都会建立一个参数列表,比如说

list(APPEND args "NAMED1" "foo")
if (...something...)
    list(APPEND args "NAMED2" "optional")
endif()

所以我现在有args列表。作为字符串,它可能看起来像

NAMED1;foo

或者看起来像

NAMED1;foo;NAMED2;optional

所以我想用字符串替换整个列表

string(REPLACE ";" " " args "${args}")

然后生成的args看起来像

NAMED1 foo NAMED2 optional

所以我想把这个字符串传递给函数func,带

func("${args}")

但现在问题是CMake认为这是一个大字符串,而它应该将其解释为单独的字符串。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:4)

将我的评论转化为答案

只有$.fn.Example = function(input) { for (var ev in input) { if (dictionary.hasOwnProperty(ev)) { $(document).on(ev, this, input[ev]); } } }; $(document).ready(function(){ $("#test_input").Example({ keyup: function() { // event function here }, focusin: function() { // event function here }, focusout: function() { // event function here }, }); }); 没有引号且无需替换func(${args})应该有效。

过去我一直在使用它很多次(尤其是使用;转发“其余参数”)。

<强>参考