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

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.

Související články