26

タイトルで述べたように、その関数にパラメーターとして渡される変数を変更できる「素敵な」関数をcmakeで書きたいと思います。

私が考えることができる唯一の方法は醜いです:

関数定義

function(twice varValue varName)
set(${varName} ${varValue}${varValue} PARENT_SCOPE)
endfunction(twice)

使用法

set(arg foo)
twice(${arg} arg)
message("arg = "${arg})

結果

arg = foofoo

私には、渡すことができる変数の実際の概念はまったくないように思えます?! まだ取り入れていないcmakeの基本的な何かがあるように感じます。

それで、これを行うより良い方法はありますか?

どうもありがとう!

4

2 に答える 2

48

変数の値と名前を渡す必要はありません。名前で値にアクセスできるため、名前で十分です。

function(twice varName)
  SET(${varName} ${${varName}}${${varName}} PARENT_SCOPE)
endfunction()

SET(arg "foo")
twice(arg)
MESSAGE(STATUS ${arg})

「foofoo」を出力します

于 2013-01-17T09:24:12.020 に答える