CMake设置环境变量 [英] CMake set environment variable
问题描述
根据CMake文档
https://cmake.org/cmake/help/v3.3/command/set.html
一个人可以做
set(ENV{<variable>} <value>)
但这会给出结果
set(ENV{FOO} foo)
message("variable is $ENV{FOO}")
在配置时
variable is foo
但是在Linux命令下
But at Linux command
echo $FOO
未设置变量.
这是该问题的部分解决方案,该问题是设置 $ PATH
,以便用户将 CMAKE_INSTALL_PREFIX
列在首位
Here's a partial solution to the problem, which was to set $PATH
, so that a user has CMAKE_INSTALL_PREFIX
listed first
set(file_sh ${CMAKE_CURRENT_BINARY_DIR}/path.sh)
set(path "${CMAKE_INSTALL_PREFIX}:$ENV{PATH}")
file(WRITE ${file_sh} "#!/usr/bin/env bash\n")
file(APPEND ${file_sh} "export PATH=\"${path}\"")
execute_process(COMMAND chmod a+x ${file_sh} RESULT_VARIABLE res)
这将创建此文件
#!/usr/bin/env bash
export PATH="/install/prefix/path:/other/path"
以后可以在bash终端上使用
that later can be executed on a bash terminal with
source path.sh
推荐答案
在命令前加上 cmake -E env XXX = YYY
.
要进行测试,请使用 cmake -E env XXX = YYY cmake -E环境
.
此命令自CMake 3.1起似乎可用.有关更多信息,请参见 https://cmake.org/cmake/help/latest/manual/cmake.1.html#run-a-command-line-tool .
This command appears to be available since CMake 3.1. For more info see https://cmake.org/cmake/help/latest/manual/cmake.1.html#run-a-command-line-tool.
这篇关于CMake设置环境变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!