2013-07-16 11 views
14

Domyślnie CUpewnij wysyła list bez ograniczników, npCUpewnij: Wyjście lista z ogranicznikami

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

Wyjścia

abcd 

Jak można (łatwo) sprawiają wyjściowy CUpewnij coś takiego, co jest faktycznie przechowywane ?

a;b;c;d 

(typowy przypadek użycia jest do wyprowadzania listę ścieżek wyszukiwania)

Odpowiedz

19

ująć dereferencjonowane zmienną w cudzysłowie.

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

Wyjścia

a;b;c;d 
+1

Dzięki. To samo dotyczy wyjścia do pliku. Chciałbym, żeby to było lepiej wyjaśnione w dokumentacji ... – Antonio

4

Można napisać funkcję do przyłączenia się do pozycji na liście wraz z separatorem, a następnie wydrukować, że zamiast tego. Na przykład, taka funkcja:

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) 

Następnie można go używać tak:

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

które wyjścia:

a, b, c, d 
+0

Czy masz nazwy argumentów do tyłu? –