当前位置:  开发笔记 > 编程语言 > 正文

如何在CMake中检索用户环境变量(Windows)

如何解决《如何在CMake中检索用户环境变量(Windows)》经验,为你挑选了2个好方法。

我知道如何使用CMAKE检索正常的机器范围的环境变量

$ENV{EnvironmentVariableName}

但我无法检索用户特定的环境变量.有可能吗?怎么样?



1> Cameron Lowe..:

将变量放入CMake脚本中

您可以使用cmake调用在行上传递变量:

FOO=1 cmake

或者通过在BASH中导出变量:

export FOO=1

然后你可以使用以下命令在cmake脚本中获取它:

$ENV{FOO}



2> Florian..:

您还可以调用cmake本身以跨平台方式执行此操作:

cmake -E env EnvironmentVariableName="Hello World" cmake ..

env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]...

在修改后的环境中运行命令.


注意,这可能只是第一次工作.如果CMake使用其中一个连续构建重新配置(您只需调用eg make,一个CMakeLists.txt已更改并且CMake再次运行生成过程),则用户定义的环境变量可能不再存在(与系统范围的环境变量相比).

所以我将项目中用户定义的环境变量转换为CMake缓存变量:

cmake_minimum_required(VERSION 2.6)

project(PrintEnv NONE)

if (NOT "$ENV{EnvironmentVariableName}" STREQUAL "")
    set(EnvironmentVariableName "$ENV{EnvironmentVariableName}" CACHE INTERNAL "Copied from environment variable")
endif()

message("EnvironmentVariableName = ${EnvironmentVariableName}")

参考

CMake - 命令行工具模式

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有