Opsæt proxy-miljø med CMAKE_PROJECT_INCLUDE_BEFORE
Brug en tidlig projekt-include-fil, når en wrapper tillader CMake-argumenter, men ikke viser sit startmiljø.
En build-wrapper kan lade dig tilføje CMake-argumenter, mens den skjuler det miljø, som CMake startes i. Et tidligt projekt-hook giver dig ét sted at levere konfigurationsprocessens proxyværdier.
Gem en lille fil på en stabil, absolut sti, for eksempel /home/alex/cmake/proxy-env.cmake:
set(ENV{http_proxy} "http://proxy.example:8080")
set(ENV{https_proxy} "http://proxy.example:8080")Send filen videre til konfigurationen:
cmake -S . -B build -DCMAKE_PROJECT_INCLUDE_BEFORE=/home/alex/cmake/proxy-env.cmakeCMAKE_PROJECT_INCLUDE_BEFORE inkluderer filen i begyndelsen af hvert project()-kald. Den kører derfor før CMAKE_PROJECT_INCLUDE, som kører i slutningen af dette kald. Denne forskel betyder noget, når sprogopsætning eller et indlejret projekt har brug for ruten.
Til offentlige downloads på konfigurationstidspunktet, der er tilladt via en offentlig mellemled, skal du vælge HTTP-URL-værdierne fra HTTP-proxy-listen. Hooket kan stadig ikke påvirke arbejde, der kørte før det, herunder en download før det første project()-kald. Det skriver heller ikke en permanent miljøindstilling i operativsystemet.
Processer, som denne CMake-proces starter bagefter, kan arve værdierne, forudsat at deres netværksklienter understøtter dem. En senere, separat startet build har sit eget miljø. En download, der udskydes til den build-fase, skal også have sin proxy der.
Hold hook-filen uden for et offentligt kildetræ, når den indeholder private forbindelsesoplysninger. Argumentet -D gemmer hook-stien som en CMake-variabel; set(ENV{...}) ændrer miljøet for den kørende proces i stedet for at gøre en cache-variabel til en proxyindstilling.