bestsource

CMake에서 사용자 환경 변수를 가져오는 방법(Windows)

bestsource 2023. 4. 14. 21:58
반응형

CMake에서 사용자 환경 변수를 가져오는 방법(Windows)

CMAKE에서 일반적인 머신 전체의 환경변수를 취득하는 방법을 알고 있습니다.

$ENV{EnvironmentVariableName}

사용자별 환경변수를 검색할 수 없습니다.가능성과 방법은?

CMake 스크립트로 변수 가져오기

cmake 호출이 있는 회선상에 변수를 전달할 수 있습니다.

FOO=1 cmake

또는 변수를 BASH로 내보냄으로써 다음을 수행합니다.

export FOO=1

다음으로 다음 명령을 사용하여 cmake 스크립트로 픽업할 수 있습니다.

$ENV{FOO}

자체를 호출하여 크로스 플랫폼 방식으로 실행할 수도 있습니다.

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

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

변경된 환경에서 명령을 실행합니다.


작업은 처음에만 수행될 수 있습니다.CMake가 연속된 빌드 중 하나를 사용하여 재설정하는 경우(예: 콜만 하면 됩니다). 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}")

언급

변수를 내보내야 합니다.예를 들어 Linux의 경우:

export EnvironmentVariableName=foo

보고되지 않은 변수는 CMAKE에서 비어 있습니다.

환경 변수(시스템 속성을 사용하여 수정)는 새 하위 쉘을 생성할 때만 하위 쉘로 전파됩니다.

User env vars를 변경할 때 명령줄 프롬프트(DOS 또는 cygwin)가 열려 있으면 표시되지 않습니다.

사용자 설정을 변경한 후에는 새 명령줄 프롬프트를 열어야 합니다.

Unix/Linux에서는 .bash_rc에 행을 추가합니다.값을 얻으려면 새로운 셸을 시작해야 합니다.

언급URL : https://stackoverflow.com/questions/690223/how-to-retrieve-a-user-environment-variable-in-cmake-windows

반응형