Ett byggomslag kan låta dig lägga till CMake-argument samtidigt som det döljer miljön som CMake startas i. En tidig projektkrok ger dig en enda plats att ange proxyvärdena för konfigurationsprocessen.

Spara en liten fil på en stabil absolut sökväg, till exempel /home/alex/cmake/proxy-env.cmake:

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

Skicka filen vidare till konfigurationen:

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

CMAKE_PROJECT_INCLUDE_BEFORE inkluderar filen i början av varje project()-anrop. Den körs därför tidigare än CMAKE_PROJECT_INCLUDE, som körs i slutet av det anropet. Denna skillnad spelar roll när språkinställningen eller ett nästlat projekt behöver vägen.

För offentliga nedladdningar vid konfigureringstid som tillåts via en offentlig mellanhand väljer du HTTP-URL-värdena från HTTP-proxylistan. Kroken kan fortfarande inte påverka arbete som kördes före den, inklusive en nedladdning före det första project()-anropet. Den skriver inte heller någon beständig miljöinställning i operativsystemet.

Processer som denna CMake-process startar senare kan ärva värdena, förutsatt att deras nätverksklienter stöder dem. En senare, separat startad byggnad har sin egen miljö. En nedladdning som skjuts upp till det byggsteget måste också få sin proxy där.

Håll krokfilen utanför ett offentligt källträd när den innehåller privata anslutningsuppgifter. Argumentet -D lagrar krokens sökväg som en CMake-variabel; set(ENV{...}) ändrar miljön för den körande processen i stället för att göra en cachelagrad variabel till en proxyinställning.

Relaterade artiklar