Imagine I have the following string :
set(SEXY_STRING "I love CMake")
then I want to obtain SEXY_LIST
from SEXY_STRING
so I can do
list(LENGTH SEXY_LIST len)
and len
is equal 3.
I've found several macros on web, but I really want to know how to do it in "natural" way. This operation seems to be very basic and widely used.
A list in cmake is a ; separated group of strings. To create a list the set command can be used. For example, set(var a b c d e) creates a list with a;b;c;d;e , and set(var "a b c d e") creates a string or a list with one item in it.
Local Variables You access a variable by using ${} , such as ${MY_VARIABLE} . 1. CMake has the concept of scope; you can access the value of the variable after you set it as long as you are in the same scope. If you leave a function or a file in a sub directory, the variable will no longer be defined.
Replace your separator by a ;
. I don't see any other way to do it.
cmake_minimum_required(VERSION 2.8) set(SEXY_STRING "I love CMake") string(REPLACE " " ";" SEXY_LIST ${SEXY_STRING}) message(STATUS "string = ${SEXY_STRING}") # string = I love CMake message(STATUS "list = ${SEXY_LIST}") # list = I;love;CMake list(LENGTH SEXY_LIST len) message(STATUS "len = ${len}") # len = 3
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With