2013-07-16 23 views
14

bir liste, CKağıt sınırlayıcı olmadan listeleri çıkışlar Çıkış, örneğinCKağıt: Varsayılan olarak sınırlayıcı

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

Çıkışlar

abcd 

sen (kolayca) aslında saklanan ne gibi CKağıt çıkış şeyler yapabilir Nasıl ?

a;b;c;d 

cevap

19

tırnak dereferenced değişken içine alın (Tipik bir kullanım durumunda arama yollarının bir listesini çıkış içindir).

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

Çıkışlar

a;b;c;d 
+1

Teşekkür: çıkışı

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

. Aynı dosyaya çıktı verirken de geçerlidir. Keşke belgede daha iyi açıklanabilseydim ... – Antonio

4

Bir sınırlayıcısıyla birlikte bir listenin öğeleri katılmak için bir fonksiyon yazmak ve sonra yerine o yazdırmak. Örneğin, böyle bir işlevi:

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) 

Sonra şöyle kullanabilirsiniz:

a, b, c, d 
+0

Argüman isimlerini geri aldın mı? –