I want to call string(REGEX MATCH
without the <output_variable>
argument, because I don’t need it in this particular case since I want to use CMAKE_MATCH_<n>
variables instead. So my invocation line looks something like this:
string(REGEX MATCH "^#define LIBRARY_VERSION .*\\(([0-9]+),([0-9]+),([0-9]+)\\)" _z "${version_file_raw}")
The problem is that I don’t want to clutter namespace with obscure dummy variables that use some unclear notation to mark them as unused (in this example it’s _z
- a leading underscore and a meaningless name).
Is there any default notation and/or good practice way for that?
I have tried to replace _z
with the following options:
-
""
- doesn’t work, fails with a random error citing the contents of the match, as inCMAKE_MATCH_0
:
-- Detecting C compiler ABI info
CMake Error: Parse error in command line argument: #define LIBRARY_VERSION \
(0,1,0)
Should be: VAR:type=value
CMake Error at C:/Program Files/CMake/share/cmake-3.25/Modules/CMakeDetermineCompilerABI.cmake:57 (try_compile):
Failed to configure test project build system.
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.25/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)
CMakeLists.txt:8 (project)
-- Configuring incomplete, errors occurred!
-
0
- doesn’t work, fails with another random error:
-- Detecting CXX compile features - failed
CMake Error at sources/plainmtp.cmake:19 (target_compile_features):
target_compile_features no known features for C compiler
"MSVC"
version 19.29.30147.0.
Call Stack (most recent call first):
CMakeLists.txt:9 (include)
-- Configuring incomplete, errors occurred!
-
" "
- seems to work. -
_
/,
/;
/:
/$
/ invalid identifiers like123test
- also seem to work.
If there is no default way, then which of the mentioned ones is better?
Thanks in advance.