Nastavení proxy pro stahování CMake ExternalProject
Určete proces a krok stahování za ExternalProject, než předpokládáte, že úspěšná konfigurace CMake dokazuje, že pozdější stahování závislostí jdou stejnou cestou.
CMake se úspěšně nakonfiguruje. Sestavení začne později, pokusí se stáhnout externí závislost a selže na proxy. Dřívější úspěch ono stahování nemusel vůbec prověřit.
ExternalProject_Add() vytváří kroky, které mohou běžet během sestavení. Proces, který tyto kroky spouští, může mít jiné prostředí než terminál nebo IDE, které nakonfigurovalo hlavní projekt. Tento rozdíl lze v CI snadno přehlédnout, protože konfigurace a kompilace tam mohou být samostatné úlohy.
Určete síťovou operaci
- Stahování přes URL používá cestu stahování CMake.
- Zdroj Git volá transport Git s vlastní podporovanou konfigurací.
- Vlastní
DOWNLOAD_COMMANDpoužívá program, který projekt určil.
Nepředpokládejte, že nastavení proxy pro jeden program nakonfiguruje všechny tři. Přečtěte si příkaz a chybu selhaného kroku, než změníte URL závislosti.
Pokud zvolený stahovač podporuje proměnné prostředí proxy, předejte je procesu, který daný krok skutečně vykonává. U veřejných stahování, jejichž klient přijímá HTTP proxy, nabízí seznam HTTP proxy kandidáty na koncové body, je-li tato cesta povolena. Předání běžné cache proměnné CMake s podobným názvem není automaticky totéž jako nastavení proměnné prostředí podřízeného procesu.
Zachovejte také rozdíl od FetchContent: jeho obvyklé naplnění závislostí probíhá během konfigurace, takže recept, který tam funguje, neustavuje prostředí kroku sestavení ExternalProject.
Starý návod doporučující vlastní stahovač jako obejití historického omezení přesměrování není důkazem, že každé moderní selhání potřebuje nový příkaz ke stažení. Ověřte, zda aktuální chyba je přesměrování, ověření proxy, důvěra k certifikátu, nebo prostá dostupnost. Při opravě příslušné cesty zachovejte očekávaný hash archivu a ověření TLS.