![]() Operations on listsĬMake lists can be iterated, searched, sorted, reversed, transformed. ![]() So we have a list, let’s look at what can be done with it. A caveat of that is that if whitespace is supposed to be part of the string, the entire string must be quoted – this is the only way to disambiguate. In fact, anytime you supply a sequence of whitespace-separated arguments to a command they are implicitly converted to a list. This may be done explicitly – by assigning the variable to a string containing semicolons, or implicitly, by specifying each element separated with whitespace. B buildĪs you can see a list may be declared using the set command. The above results in the following output $ cmake -S. If not, here’s an example of how a list might be declared: set(imaList1 "This is a list") Kind of like every square is a rectangle, but not every rectangle is a square. Because who needs a type system, right? This may also be true the other way around – a string may be a list, but isn’t necessarily one. A concrete definition could be formulated as follows: A CMake list is a semicolon-separated sequence of elements.Īnd since everything in CMake is a string, this means that a list is a semicolon-separated sequence of strings, making itself a string. But let’s move on before we get too philosophical.ĬMake takes a different approach. We could also be all functional and say that a list is a data structure that consists of a head and a tail, where the tail is itself a list, that may be empty. ![]() We may want to be more precise about it and consider implementation details like if it’s a node-based or contiguous memory layout. What is a list? In the broadest sense, it’s a sequential collection, or container, of elements. One of them is that virtually everything is a string, including the main subject of this post – lists. ![]() I generally like CMake and I think it’s currently the best tool out there for building cross-platform C++ projects, but it does suffer from some of the (what I assume are) legacy design decisions. So, let me warn you right away – I rant a little in this one. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |