Obal zostavenia vám môže umožniť pridávať argumenty CMake, pričom skrýva prostredie, v ktorom sa CMake spúšťa. Skorý háčik projektu vám dáva jedno miesto, kde môžete zadať proxy hodnoty procesu konfigurácie.

Uložte malý súbor na stabilnú absolútnu cestu, napríklad /home/alex/cmake/proxy-env.cmake:

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

Odovzdajte tento súbor konfigurácii:

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

CMAKE_PROJECT_INCLUDE_BEFORE zahrnie súbor na začiatku každého volania project(). Beží preto skôr ako CMAKE_PROJECT_INCLUDE, ktorý beží na konci tohto volania. Tento rozdiel je dôležitý, keď nastavenie jazyka alebo vnorený projekt potrebuje túto cestu.

Na verejné sťahovania v čase konfigurácie povolené cez verejného sprostredkovateľa vyberte hodnoty HTTP URL zo zoznamu HTTP proxy. Háčik stále nemôže ovplyvniť prácu, ktorá prebehla pred ním, vrátane sťahovania pred prvým volaním project(). Tiež nezapisuje trvalé nastavenie prostredia operačného systému.

Procesy spustené neskôr týmto procesom CMake môžu hodnoty zdediť, ak ich ich sieťoví klienti podporujú. Neskoršie, samostatne spustené zostavenie má vlastné prostredie. Sťahovanie odložené na túto fázu zostavenia tam musí dostať svoj proxy tiež.

Uchovávajte súbor háčika mimo verejného stromu zdrojov, ak obsahuje súkromné údaje o pripojení. Argument -D ukladá cestu háčika ako premennú CMake; set(ENV{...}) mení prostredie bežiaceho procesu namiesto toho, aby premenil premennú vyrovnávacej pamäte na nastavenie proxy.

Súvisiace články