[CMake] List from strings (CMAKE_CXX_FLAGS and friends)
James Bigler
jamesbigler at gmail.com
Mon Dec 3 17:22:33 EST 2012
Has nobody else notice this particular language inconsistency?
On Tue, Nov 27, 2012 at 1:12 PM, James Bigler <jamesbigler at gmail.com> wrote:
> I'm running into this again, and I trawled through the mailing list, and
> according to Bill (4/11/2009 - managing lists with space separated
> elements), I should be able to get a list from a string with a single
> command.
>
> If you want to convert a string to a list you can do it like this:
>
> set(list ${string})
>
> That will make the space separated list string into a ; separated list.
> If you want to keep string a string you need quotes:
> set(newstring "${string}").
>
> It doesn't seem to work that way though, so perhaps I'm missing something.
>
> Here's my test program:
>
> function(print_list name)
> list(LENGTH ${name} length_of_list)
> message("${name} has ${length_of_list} items")
> set(count 0)
> foreach(i ${${name}})
> message("${name}[${count}] = ${i}")
> math(EXPR count "${count} + 1")
> endforeach()
> endfunction()
>
> set(mylist a b c)
> set(mystring "a b c")
> set(mylist_from_string ${mystring})
>
> print_list(mylist)
> print_list(mystring)
> print_list(mylist_from_string)
>
> And here's what I get when I run it:
>
> cmake -P list-from-string.cmake
>
> mylist has 3 items
> mylist[0] = a
> mylist[1] = b
> mylist[2] = c
> mystring has 1 items
> mystring[0] = a b c
> mylist_from_string has 1 items
> mylist_from_string[0] = a b c
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20121203/295c52bd/attachment.htm>
More information about the CMake
mailing list