[CMake] What does this mean: IF("${VARIABLE}" MATCHES "^${VARIABLE}$")

Pau Garcia i Quiles pgquiles at elpauer.org
Tue Dec 11 05:49:24 EST 2007


Quoting "Clark J. Wang" <dearvoid at gmail.com>:

> The header of many CMake modules often looks like this (take
> CheckIncludeFile as an example):
>
> MACRO(CHECK_INCLUDE_FILE INCLUDE VARIABLE)
>   IF("${VARIABLE}" MATCHES "^${VARIABLE}$")
>   ... ...
>
> The IF statement really puzzles me a lot. What is it used to do?
>

In strings it would mean "if this string is exactly equal to". The  
caret (^) represents string beginning and the $ represents string end.

Why is IF("${VARIABLE}" MATCHES "^${VARIABLE}$") used instead of IF(  
${VARIABLE} STREQUAL ${VARIABLE} ) (which would always return true)?  
I'm not sure of use case but I'd say it's checking for special  
characters in VARIABLE.

-- 
Pau Garcia i Quiles
http://www.elpauer.org
(Due to my workload, I may need 10 days to answer)



More information about the CMake mailing list