On 04-Sep-14 16:48, Chuck Atkins wrote:
Command `if(a MATCHES ...)` has the same flaw:
`if(<variable|string> MATCHES regex)`:
..
set(MYSTRING "B")
set(A "MYSTRING")
if("${A}" MATCHES "^MYSTRING$")
# do *not* go here even A is MYSTRING (use *variable* MYSTRING)
endif()
This should work without dereferencing A, i.e.:
if(A MATCHES "^MYSTRING$")
# Bingo
endif()
Yes, but what if you need to combine some values, like: `if("${A}-${B}"
MATCHES ...)`?
Note that `if(A MATCHES "first-part" AND B MATCHES "second-part")` is
not the solutions in some cases, for example:
if("${A}${B}" MATCHES "/home/my/dir-A/")
should work for both A,B = {"/home/", "my/dir-A/"} and {"/home/my/",
"dir-A/"}
Also you always need keep in mind that it's not a string, but a regular
expression, example:
set(A "path/to/test/project")
set(B "path/to/test.project")
message("A and B same dir?")
if(A MATCHES "^${B}$")
message("surprise")
endif()
--
Powered by www.kitware.com
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Kitware offers various services to support the CMake community. For more
information on each offering, please visit:
CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake