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

Cmake 我无法在自定义目标shell上获取环境,cmake,Cmake,我无法在自定义目标shell上获取环境 CMakeList.txt set( ENV{TEST_VAR} "Hello" ) add_custom_target( test COMMAND ./test.sh WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) test.sh echo test:${TEST_VAR} 当尝试“进行测试”时,shell无法获取${test\u VAR} 谢谢。您必须使用技巧,因为在CMakeLists.txt中

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

CMakeList.txt

set( ENV{TEST_VAR} "Hello" )
add_custom_target( test 
    COMMAND ./test.sh
    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}  )
test.sh

echo test:${TEST_VAR}
当尝试“进行测试”时,shell无法获取${test\u VAR}


谢谢。

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

test.cmake

set( ENV{TEST_VAR} "Hello" )
execute_process(
    COMMAND ./test.sh
    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}  )
CMakeLists.txt

add_custom_target( test
    COMMAND ${CMAKE_COMMAND} -P test.cmake )