[CMake] CMake string REGEX REPLACE and environment variables

Oleg Trenkin oleg.trenkin at gmail.com
Tue Oct 20 07:49:15 EDT 2015


Hi all,

Does anybody know why I can't evaluate environment variable inside "REGEX
REPLACE"?

Example,
I have a value:
set(value "LD_LIBRARY_PATH=my_path:$LD_LIBRARY_PATH")

I expect:
value = "LD_LIBRARY_PATH=my_path:some_system_path_from_env"

What I'm doing:
string(REGEX REPLACE "\\$\\{([a-zA-Z0-9_]+)\\}" "$ENV{\\1}" value ${value})

Regexp works,
CMAKE_MATCH_1  and \\1 both have "LD_LIBRARY_PATH" string

string(REGEX REPLACE "\\$\\{([a-zA-Z0-9_]+)\\}" "\\1" value ${value})
will return "LD_LIBRARY_PATH=my_path:LD_LIBRARY_PATH"
but why can't I use $ENV{\\1}, or maybe I'm doing something wrong?

Thanks,
Oleg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20151020/6f6a912c/attachment.html>


More information about the CMake mailing list