Using lists
To store a list, CMake concatenates all elements into a string, using a semicolon, ;, as a delimiter: a;list;of;5;elements. You can escape a semicolon in an element with a backslash, like so: a\;single\;element.
To create a list, we can use the set() command:
set(myList a list of five elements)
Because of how lists are stored, the following commands will have exactly the same effect:
set(myList "a;list;of;five;elements")
set(myList a list "of;five;elements")
CMake automatically unpacks lists in unquoted arguments. By passing an unquoted myList reference, we effectively send more arguments to the command:
message("the list is:" ${myList})
The message() command will receive six arguments: “the list is:", “a", “list", “of", “five", and “elements". This may have unintended consequences, as the output will be printed without any additional spaces...