Egy build-burkoló engedheti, hogy CMake argumentumokat adjon hozzá, miközben elrejti azt a környezetet, amelyben a CMake elindul. Egy korai projekt-hook egyetlen helyet ad arra, hogy megadja a konfigurációs folyamat proxy értékeit.

Mentsen egy kis fájlt stabil, abszolút útvonalra, például /home/alex/cmake/proxy-env.cmake:

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

Adja át ezt a fájlt a konfigurációnak:

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

A CMAKE_PROJECT_INCLUDE_BEFORE minden project() hívás elején beilleszti a fájlt. Ezért korábban fut, mint a CMAKE_PROJECT_INCLUDE, amely az adott hívás végén fut. Ez a különbség akkor számít, amikor a nyelvi beállítás vagy egy beágyazott projekt igényli az útvonalat.

A konfiguráció idején egy nyilvános közvetítőn keresztül engedélyezett nyilvános letöltésekhez válassza a HTTP URL-értékeket a HTTP proxy listáról. A hook továbbra sem tudja befolyásolni az előtte lefutott munkát, beleértve az első project() hívás előtti letöltést. Nem ír tartós operációsrendszer-környezeti beállítást sem.

A CMake-folyamat által később indított folyamatok örökölhetik az értékeket, feltéve, hogy hálózati klienseik támogatják azokat. Egy későbbi, külön indított build saját környezettel rendelkezik. Az erre a build-szakaszra halasztott letöltésnek ott is meg kell kapnia a proxyját.

Tartsa a hook fájlt nyilvános forrásfán kívül, ha privát kapcsolati adatokat tartalmaz. A -D argumentum CMake-változóként tárolja a hook útvonalát; a set(ENV{...}) a futó folyamat környezetét módosítja, ahelyett hogy gyorsítótár-változót alakítana proxy-beállítássá.

Kapcsolódó cikkek