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

时间:2012-03-17 05:55:35

标签: 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}

当尝试“make test”时,shell无法获得$ {TEST_VAR}。

谢谢。

1 个答案:

答案 0 :(得分:6)

您必须使用技巧,因为CMakeLists.txt中的环境变量SET仅对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 )