如何在 shell 脚本中引用 CMake 变量
How to reference CMake variable in shell script
我使用 execute_process
到 运行 一个 shell 脚本,
set(CMAKE_C_FLAGS ...) # here ... means many options
execute_process(
COMMAND ./my_script.sh)
在my_script.sh
中我想使用CMAKE_C_FLAGS
的值怎么办?
当 echo ${CMAKE_C_FLAGS}
在脚本中时,我什么也得不到。
CMake 变量不是环境变量。
您可以像这样设置环境变量:
set(CMAKE_C_FLAGS ...)
set(ENV{CMAKE_C_FLAGS} "${CMAKE_C_FLAGS}")
execute_process(COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/my_script.sh")
请注意,这 仅 在 CMake 配置步骤期间持续。这意味着它将适用于 execute_process
,但不适用于 add_custom_command
。
另请注意,从 CMake 调用 shell 脚本会产生代码异味(妨碍可移植性,很奇怪,而且可能没有必要)。
我使用 execute_process
到 运行 一个 shell 脚本,
set(CMAKE_C_FLAGS ...) # here ... means many options
execute_process(
COMMAND ./my_script.sh)
在my_script.sh
中我想使用CMAKE_C_FLAGS
的值怎么办?
当 echo ${CMAKE_C_FLAGS}
在脚本中时,我什么也得不到。
CMake 变量不是环境变量。
您可以像这样设置环境变量:
set(CMAKE_C_FLAGS ...)
set(ENV{CMAKE_C_FLAGS} "${CMAKE_C_FLAGS}")
execute_process(COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/my_script.sh")
请注意,这 仅 在 CMake 配置步骤期间持续。这意味着它将适用于 execute_process
,但不适用于 add_custom_command
。
另请注意,从 CMake 调用 shell 脚本会产生代码异味(妨碍可移植性,很奇怪,而且可能没有必要)。