我无法在自定义目标shell获取环境

jon*_*wak 6 cmake

我无法在自定义目标shell获取环境.

CMakeList.txt

set( ENV{TEST_VAR} "Hello" )
add_custom_target( test 
    COMMAND ./test.sh
    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}  )
Run Code Online (Sandbox Code Playgroud)

test.sh

echo test:${TEST_VAR}
Run Code Online (Sandbox Code Playgroud)

当试图"make test"时,shell无法获得$ {TEST_VAR}.

谢谢.

Sim*_*mon 6

您必须使用技巧,因为CMakeLists.txt中的环境变量SET仅对cmake本身生效,因此您无法使用此方法设置自定义命令可能需要的环境变量:

test.cmake

set( ENV{TEST_VAR} "Hello" )
execute_process(
    COMMAND ./test.sh
    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}  )
Run Code Online (Sandbox Code Playgroud)

的CMakeLists.txt

add_custom_target( test
    COMMAND ${CMAKE_COMMAND} -P test.cmake )
Run Code Online (Sandbox Code Playgroud)