Sett opp proxy-miljø med CMAKE_PROJECT_INCLUDE_BEFORE
Bruk en tidlig prosjektinkluderingsfil når en wrapper tillater CMake-argumenter, men ikke avdekker oppstartsmiljøet sitt.
En byggewrapper kan la deg legge til CMake-argumenter mens den skjuler miljøet CMake startes i. En tidlig prosjektkrok gir deg ett sted å oppgi proxyverdiene til konfigurasjonsprosessen.
Lagre en liten fil på en stabil absolutt sti, for eksempel /home/alex/cmake/proxy-env.cmake:
set(ENV{http_proxy} "http://proxy.example:8080")
set(ENV{https_proxy} "http://proxy.example:8080")Send filen videre til konfigurasjonen:
cmake -S . -B build -DCMAKE_PROJECT_INCLUDE_BEFORE=/home/alex/cmake/proxy-env.cmakeCMAKE_PROJECT_INCLUDE_BEFORE inkluderer filen i starten av hvert project()-kall. Den kjører derfor tidligere enn CMAKE_PROJECT_INCLUDE, som kjører på slutten av det kallet. Denne forskjellen betyr noe når språkoppsett eller et nestet prosjekt trenger ruten.
For offentlige nedlastinger ved konfigureringstid som er tillatt via en offentlig mellommann, velg HTTP-URL-verdiene fra HTTP-proxy-listen. Kroken kan fortsatt ikke påvirke arbeid som kjørte før den, inkludert en nedlasting før det første project()-kallet. Den skriver heller ikke en varig miljøinnstilling i operativsystemet.
Prosesser som denne CMake-prosessen starter senere, kan arve verdiene, forutsatt at nettverksklientene deres støtter dem. En senere, separat startet bygging har sitt eget miljø. En nedlasting som utsettes til den byggefasen, må også få proxyen sin der.
Hold krokfilen utenfor et offentlig kildetre når den inneholder private tilkoblingsdetaljer. Argumentet -D lagrer krokstien som en CMake-variabel; set(ENV{...}) endrer miljøet til den kjørende prosessen i stedet for å gjøre en hurtiglagervariabel om til en proxyinnstilling.