Наладзьце проксі-асяроддзе праз 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{...}) змяняе асяроддзе працуючага працэсу, а не ператварае зменную кэша ў наладу проксі.