Issettja l-ambjent tal-proxy b'CMAKE_PROJECT_INCLUDE_BEFORE
Uża fajl ta' inklużjoni tal-proġett bikri meta wrapper jippermetti argumenti CMake iżda ma jikxifx l-ambjent tat-tnedija tiegħu.
Wrapper tal-bini jista' jħallik iżżid argumenti CMake filwaqt li jaħbi l-ambjent li bih jinbeda CMake. Hook tal-proġett bikri jagħtik post wieħed fejn tipprovdi l-valuri tal-proxy tal-proċess tal-konfigurazzjoni.
Issejvja fajl żgħir f'pass assolut stabbli, pereżempju /home/alex/cmake/proxy-env.cmake:
set(ENV{http_proxy} "http://proxy.example:8080")
set(ENV{https_proxy} "http://proxy.example:8080")Għaddi dan il-fajl lill-konfigurazzjoni:
cmake -S . -B build -DCMAKE_PROJECT_INCLUDE_BEFORE=/home/alex/cmake/proxy-env.cmakeCMAKE_PROJECT_INCLUDE_BEFORE jinkludi l-fajl fil-bidu ta' kull sejħa project(). Għalhekk jiġi esegwit qabel CMAKE_PROJECT_INCLUDE, li jiġi esegwit fl-aħħar ta' dik is-sejħa. Din id-differenza hija importanti meta l-iffissar tal-lingwa jew proġett imqabbad ikunu jeħtieġu dan il-perkors.
Għal downloads pubbliċi fil-ħin tal-konfigurazzjoni permessi permezz ta' intermedjarju pubbliku, agħżel il-valuri tal-URL HTTP mil-lista tal-proxy HTTP. Il-hook xorta ma jistax jaffettwa x-xogħol li sar qablu, inkluż download qabel l-ewwel sejħa project(). Lanqas ma jikteb iffissar persistenti tal-ambjent tas-sistema operattiva.
Proċessi li jibda wara dan il-proċess CMake jistgħu jirtu l-valuri, sakemm il-klijenti tan-netwerk tagħhom jappoġġjawhom. Bini aktar tard, imniedi b'mod separat, għandu l-ambjent tiegħu. Download imdewwem għal dik il-fażi tal-bini għandu jirċievi l-proxy tiegħu hemm ukoll.
Żomm il-fajl tal-hook barra minn siġra tas-sors pubblika meta jkun fih dettalji privati tal-konnessjoni. L-argument -D jaħżen il-pass tal-hook bħala varjabbli CMake; set(ENV{...}) ibiddel l-ambjent tal-proċess li qed jaħdem minflok ma jbiddel varjabbli tal-cache f'iffissar tal-proxy.