Cmake设置环境变量

时间:2017-09-17 17:05:23

标签: linux cmake environment-variables

根据CMake文档

https://cmake.org/cmake/help/v3.3/command/set.html

一个人可以做到

set(ENV{FOO} foo)
message("variable is $ENV{FOO}")

但这会给出结果

variable is foo

在配置时

echo $FOO

但是在linux命令

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)

未设置变量

修改

这是问题的部分解决方案,即设置$ PATH,以便用户首先列出CMAKE_INSTALL_PREFIX

#!/usr/bin/env bash
export PATH="/install/prefix/path:/other/path"

这会创建此文件

source path.sh

以后可以使用

在bash终端上执行
{{1}}

2 个答案:

答案 0 :(得分:0)

您引用的文档的最后一段给出了答案:

Set the current process environment <variable> to the given value.

它会影响从shell启动CMake时创建的当前进程环境。它不是shell本身的环境。

答案 1 :(得分:0)

在命令前加上springdoc: swagger-ui: path: /docs

要进行测试,请使用cmake -E env XXX=YYY

此命令自CMake 3.1起似乎可用。有关更多信息,请参见https://cmake.org/cmake/help/latest/manual/cmake.1.html#run-a-command-line-tool