The string() Command
Let's learn about the string() command in CMake.
We'll cover the following...
The string()
command is used to manipulate strings. It comes with a variety of modes that perform different actions on the string:
Search and replace
Manipulation
Comparison
Hashing
Generation
JSON operations (the last one available since CMake 3.19)
Full details can be found in the online documentation.
string()
modes that accept the <input>
argument will accept multiple <input>
values and concatenate them before the execution of the command:
string(PREPEND myVariable "a" "b" "c")
This is the equivalent of the following:
string(PREPEND myVariable "abc")
Let's explore all available string()
modes.
Search and replace
The following modes are available:
string(FIND <haystack> <pattern> <out> [REVERSE])
searches for<pattern>
in the<haystack>
string and writes the position found as an integer to the<out>
variable. If theREVERSE
flag was used, it searches from the end of the string to the beginning. This works only for ASCII strings (multibyte support isn't provided).string(REPLACE <pattern> <replace> <out> <input>)
replaces all occurrences of<pattern>
in<input>
with<replace>
and stores them in the<out>
variable.string(REGEX MATCH <pattern> <out> <input>)
regex-matches the first occurrence of<pattern>
in<input>
with ...