빌드 래퍼는 CMake 인수를 추가하게 해 주면서도 CMake를 실행하는 환경을 숨길 수 있습니다. 초기 프로젝트 훅은 구성 프로세스의 프록시 값을 제공할 한 곳을 마련해 줍니다.

작은 파일을 안정적인 절대 경로에 저장하세요. 예를 들어 /home/alex/cmake/proxy-env.cmake입니다.

set(ENV{http_proxy} "http://proxy.example:8080")
set(ENV{https_proxy} "http://proxy.example:8080")

그 파일을 구성 단계에 전달합니다.

cmake -S . -B build -DCMAKE_PROJECT_INCLUDE_BEFORE=/home/alex/cmake/proxy-env.cmake

CMAKE_PROJECT_INCLUDE_BEFORE는 각 project() 호출의 시작 부분에서 파일을 포함합니다. 따라서 같은 호출의 끝에서 실행되는 CMAKE_PROJECT_INCLUDE보다 먼저 실행됩니다. 언어 설정이나 중첩 프로젝트가 이 경로를 필요로 할 때 이 차이가 중요합니다.

구성 시점에 공개 중개자를 통해 허용되는 공개 다운로드의 경우 HTTP 프록시 목록에서 HTTP URL 값을 고르세요. 훅은 여전히 그 이전에 실행된 작업에는 영향을 줄 수 없으며, 첫 project() 호출 이전의 다운로드도 마찬가지입니다. 또한 운영체제 환경 설정을 영구적으로 기록하지도 않습니다.

이 CMake 프로세스가 나중에 시작하는 프로세스는 네트워크 클라이언트가 지원한다면 값을 상속받을 수 있습니다. 나중에 별도로 시작된 빌드는 자체 환경을 가집니다. 해당 빌드 단계로 미뤄진 다운로드도 그곳에서 프록시를 받아야 합니다.

훅 파일에 비공개 연결 정보가 들어 있다면 공개 소스 트리 밖에 두세요. -D 인수는 훅 경로를 CMake 변수로 저장합니다. set(ENV{...})는 캐시 변수를 프록시 설정으로 바꾸는 것이 아니라 실행 중인 프로세스의 환경을 변경합니다.

관련 글