Välityspalvelinympäristön määrittäminen komennolla CMAKE_PROJECT_INCLUDE_BEFORE
Käytä varhaista projektin sisällytystiedostoa, kun kääre sallii CMake-argumentit mutta ei paljasta käynnistysympäristöään.
Rakennuskääre voi sallia CMake-argumenttien lisäämisen samalla kun se piilottaa ympäristön, jossa CMake käynnistetään. Varhainen projektiin kiinnittyvä koukku antaa yhden paikan, jossa määritysprosessin välityspalvelinarvot voi toimittaa.
Tallenna pieni tiedosto vakaaseen absoluuttiseen polkuun, esimerkiksi /home/alex/cmake/proxy-env.cmake:
set(ENV{http_proxy} "http://proxy.example:8080")
set(ENV{https_proxy} "http://proxy.example:8080")Välitä tiedosto määritykselle:
cmake -S . -B build -DCMAKE_PROJECT_INCLUDE_BEFORE=/home/alex/cmake/proxy-env.cmakeCMAKE_PROJECT_INCLUDE_BEFORE sisällyttää tiedoston jokaisen project()-kutsun alkuun. Se suoritetaan siis aiemmin kuin CMAKE_PROJECT_INCLUDE, joka suoritetaan kyseisen kutsun lopussa. Tämä ero on tärkeä, kun kieliasetukset tai sisäkkäinen projekti tarvitsevat reitin.
Määritysaikaisiin julkisiin latauksiin, jotka on sallittu julkisen välittäjän kautta, valitse HTTP-URL-arvot HTTP-välityspalvelinluettelosta. Koukkku ei silti voi vaikuttaa sitä ennen tehtyyn työhön, mukaan lukien ensimmäistä project()-kutsua edeltävään lataukseen. Se ei myöskään kirjoita pysyvää käyttöjärjestelmän ympäristöasetusta.
Prosessit, jotka tämä CMake-prosessi käynnistää myöhemmin, voivat periä arvot, jos niiden verkkoyhteysasiakkaat tukevat niitä. Myöhemmin erikseen käynnistetty rakennus saa oman ympäristönsä. Kyseiseen rakennusvaiheeseen siirretty lataus tarvitsee välityspalvelimensa myös siellä.
Pidä koukkutiedosto julkisen lähdekoodipuun ulkopuolella, jos se sisältää yksityisiä yhteystietoja. -D-argumentti tallentaa koukun polun CMake-muuttujana; set(ENV{...}) muuttaa käynnissä olevan prosessin ympäristöä sen sijaan, että muuttaisi välimuistimuuttujan välityspalvelinasetukseksi.