[CMake] STRING(CONFIGURE ...) problem with too-early variable
substitution
Zachary Pincus
zpincus at stanford.edu
Sat Jan 14 05:48:57 EST 2006
Hi again folks,
I'm trying to use the CMake STRING(CONFIGURE ...) command.
For reference, this should 'configure' a string the way that
CONFIGURE_FILE does to a file.
The general gist of what I want to do is something like
SET(to_configure "/path/to/@directory@")
and then in a macro:
SET(directory "frob")
STRING(CONFIGURE to_configure configured @ONLY)
to get the result that ${configured} contains "/path/to/frob".
Of course, this doesn't work, because CMake tries to substitute the
variable @directory@ right when to_configure is set!
Is there any good way to get the literal '@...@' or '$
{...}' (excluding the quotes) into a CMake variable? If not, what use
is STRING(CONFIGURE ...)?
I tried using SET(to_configure '@...@') which is the shell-style way
of preventing variable substitution, but that didn't work at all. Not
using quotes at all is a problem in cases when there need to be
spaces in the string, and I'm not sure it would work in any case.
Right now, I work around this issue by using STRING(REPLACE ...)
instead, but I do wonder what the right way to use STRING
(CONFIGURE ...) is?
More information about the CMake
mailing list