2013-07-16 10 views
14

による出力リストは、CMakeのは、例えば、区切り文字なしのリストを出力CMakeの:デフォルトの区切り文字

set(my_list a b c d) 
message(${my_list}) 

出力

abcd 

どのように(簡単に)実際に格納されているもののようなCMakeの出力に何かを作ることができます?

a;b;c;d 

答えて

19

引用符で間接参照変数を囲み(典型的なユースケースは、検索パスのリストを出力するためのものです)。

set(my_list a b c d) 
message("${my_list}") 

出力

a;b;c;d 
+1

感謝を:出力

set(my_list a b c d) ListToString(str ", " ${my_list}) message(STATUS "${str}") 

を。ファイルに出力する場合も同様です。私はそのことが文書でよりよく説明されたことを望みます... – Antonio

4

あなたは一緒に区切り文字でリストの項目を結合する関数を記述して、代わりにそのプリントアウトができます。例えば、そのような機能は:

function (ListToString result delim) 
    list(GET ARGV 2 temp) 
    math(EXPR N "${ARGC}-1") 
    foreach(IDX RANGE 3 ${N}) 
     list(GET ARGV ${IDX} STR) 
     set(temp "${temp}${delim}${STR}") 
    endforeach() 
    set(${result} "${temp}" PARENT_SCOPE) 
endfunction(ListToString) 

その後、あなたはそうのようにそれを使用することができます。

a, b, c, d 
+0

あなたは引数名を後方に持っていますか? –

関連する問題