Настройване на прокси среда с CMAKE_PROJECT_INCLUDE_BEFORE
Използвайте ранен include файл на проекта, когато обвивката позволява аргументи на 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{...}) променя средата на работещия процес, вместо да превръща кеш променлива в прокси настройка.