[cmake-developers] [PATCH] remove "x" placeholder from STREQUAL operands

Rolf Eike Beer eike at sf-mail.de
Sun Apr 13 03:37:16 EDT 2014


Am Sonntag, 13. April 2014, 07:05:27 schrieb Jiri Malak:
> Hi,
> 
> I enclosed patch for removing placeholder "x" from STREQUAL operands.
> It does comparision transparent.

I very much would like to see that, but there is a problem: CMake may 
interpret the operands of STREQUAL both as text and as variable name.

So this does what you expect for the moment:

if (${CMAKE_SYSTEM_NAME} STREQUAL Linux) ...

But now you will get into trouble:

set(Linux Windows)

Sadly the expression is even expanded when it is quoted as long as it is a 
valid variable name. So what you could do is: replace the "x" by a simple 
space and then quote the match string, because " Linux" is no valid variable 
name. And the test for STREQUAL "x" can indeed be changed to STREQUAL "".

Eike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20140413/8a0567c2/attachment-0002.sig>


More information about the cmake-developers mailing list