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

标签 cmake

我无法在自定义目标 shell 中获得环境。

CMakeList.txt

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

测试文件
echo test:${TEST_VAR}

尝试“进行测试”时,shell 无法获取 ${TEST_VAR}。

谢谢你。

最佳答案

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

测试.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 )

关于cmake - 我无法在自定义目标 shell 中获取环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9747657/

相关文章:

c++ - CMake项目结构: How do I properly merge libraries together and include them in multiple executables

cmake - 为什么使用find_package?

c - 使用 Frama-c 分析带有 CMake 构建基础设施的项目

cmake - 为什么 cmake 文件 GLOB 是邪恶的?

CMake set_property() 似乎不适用于源文件

c++ - Intellisense 不显示 Visual Studio 2019 中 cmake 项目的语法错误

c++ - 如何使用命令行取消设置cmake中的变量?

merge - 如何使用 CMake 将我自己的 .o 文件与第 3 方静态库合并以创建新的合并静态库?

使用 cmake 将 OpenCV 作为外部的 C++ 项目

cmake - 使用自定义目录提示 Find<name>.cmake 文件