I use execute_process to run a shell script,
set(CMAKE_C_FLAGS ...) # here ... means many options
execute_process(
COMMAND ./my_script.sh)
In my_script.sh I want to use the value of CMAKE_C_FLAGS and how to do it?
When echo ${CMAKE_C_FLAGS} in script, I get nothing.
CodePudding user response:
CMake variables are not environment variables.
You can set an environment variable like so:
set(CMAKE_C_FLAGS ...)
set(ENV{CMAKE_C_FLAGS} "${CMAKE_C_FLAGS}")
execute_process(COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/my_script.sh")
Note that this lasts only for the duration of the CMake configure step. This means it will work with execute_process, but not add_custom_command.
Also note that calling a shell script from CMake is a code smell (hinders portability, is weird and probably unnecessary).
