Поставување прокси опкружување со CMAKE_PROJECT_INCLUDE_BEFORE
Користете рана датотека за вклучување на проектот кога обвивката дозволува CMake аргументи, но не го открива своето опкружување за стартување.
Обвивката за изградба може да ви дозволи да додавате 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.cmakeCMAKE_PROJECT_INCLUDE_BEFORE ја вклучува датотеката на почетокот на секој повик на project(). Затоа се извршува порано од CMAKE_PROJECT_INCLUDE, кој се извршува на крајот од тој повик. Оваа разлика е важна кога поставувањето на јазикот или вгнезден проект ја бара оваа патека.
За јавни преземања во време на конфигурација дозволени преку јавен посредник, изберете ги вредностите на HTTP URL од списокот на HTTP прокси. Куката сепак не може да влијае на работата што се извршила пред неа, вклучително преземање пред првиот повик на project(). Таа исто така не запишува трајно поставување на опкружувањето на оперативниот систем.
Процесите што овој CMake процес ги стартува подоцна можат да ги наследат вредностите, под услов нивните мрежни клиенти да ги поддржуваат. Подоцнежна, одделно стартувана изградба има свое опкружување. Преземањето одложено за таа фаза на изградба мора да го добие својот прокси и таму.
Чувајте ја датотеката на куката надвор од јавно дрво на изворен код кога содржи приватни детали за поврзување. Аргументот -D ја зачувува патеката на куката како CMake променлива; set(ENV{...}) го менува опкружувањето на процесот што работи наместо да претвора кеш променлива во прокси поставување.