Ein bygg-wrapper kan la deg leggje til CMake-argument medan han skjuler miljøet CMake vert starta i. Ein tidleg prosjektkrok gjev deg éin stad å oppgje proxyverdiane til konfigurasjonsprosessen.

Lagre ei lita fil på ein stabil absolutt stig, til dømes /home/alex/cmake/proxy-env.cmake:

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

Send fila vidare til konfigurasjonen:

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

CMAKE_PROJECT_INCLUDE_BEFORE inkluderer fila i byrjinga av kvart project()-kall. Ho køyrer difor tidlegare enn CMAKE_PROJECT_INCLUDE, som køyrer på slutten av det kallet. Denne skilnaden har noko å seie når språkoppsett eller eit nøsta prosjekt treng ruta.

For offentlege nedlastingar ved konfigureringstid som er tillatne via ein offentleg mellommann, vel HTTP-URL-verdiane frå HTTP-proxy-lista. Kroken kan framleis ikkje påverke arbeid som køyrde før han, inkludert ei nedlasting før det første project()-kallet. Han skriv heller ikkje ei varig miljøinnstilling i operativsystemet.

Prosessar som denne CMake-prosessen startar seinare, kan arve verdiane, føresett at nettverksklientane deira støttar dei. Eit seinare, separat starta bygg har sitt eige miljø. Ei nedlasting som vert utsett til den byggjefasen, må også få proxyen sin der.

Hald krokfila utanfor eit offentleg kjelderetre når ho inneheld private tilkoplingsdetaljar. Argumentet -D lagrar krokstien som ein CMake-variabel; set(ENV{...}) endrar miljøet til prosessen som køyrer, i staden for å gjere ein hurtiglagervariabel om til ei proxyinnstilling.

Relaterte artiklar