Nastavenia proxy pre sťahovanie CMake ExternalProject
Určite proces a krok sťahovania za ExternalProject, skôr než predpokladáte, že úspešná konfigurácia CMake dokazuje, že neskoršie sťahovania závislostí idú tou istou cestou.
CMake sa úspešne nakonfiguruje. Zostavenie sa začne neskôr, pokúsi sa stiahnuť externú závislosť a zlyhá na proxy. Predchádzajúci úspech toto sťahovanie nemusel vôbec vyskúšať.
ExternalProject_Add() vytvára kroky, ktoré môžu bežať počas zostavovania. Proces, ktorý tieto kroky spúšťa, môže mať iné prostredie ako terminál alebo IDE, ktoré nakonfigurovali hlavný projekt. Tento rozdiel sa v CI ľahko prehliadne, kde konfigurácia a kompilácia môžu byť samostatné úlohy.
Určite sieťovú operáciu
- Sťahovanie cez URL používa cestu sťahovania CMake.
- Zdroj Git volá transport Git s vlastnou podporovanou konfiguráciou.
- Vlastný
DOWNLOAD_COMMANDpoužíva program, ktorý projekt určil.
Nepredpokladajte, že nastavenie proxy pre jeden program nakonfiguruje všetky tri. Prečítajte si príkaz a chybu zlyhaného kroku, než zmeníte URL závislosti.
Ak zvolený sťahovač podporuje premenné prostredia proxy, odovzdajte ich procesu, ktorý daný krok skutočne vykonáva. Pre verejné sťahovania, ktorých klient prijíma HTTP proxy, zoznam HTTP proxy ponúka kandidátov koncových bodov, ak je tá cesta povolená. Odovzdanie bežnej cache premennej CMake s podobným názvom nie je automaticky to isté ako nastavenie premennej prostredia podriadeného procesu.
Zachovajte aj rozdiel od FetchContent: jeho obvyklé naplnenie závislostí sa deje počas konfigurácie, takže recept, ktorý tam funguje, neustanovuje prostredie kroku zostavenia ExternalProject.
Starý návod odporúčajúci vlastný sťahovač na obídenie historického obmedzenia presmerovania nie je dôkazom, že každé moderné zlyhanie potrebuje nový príkaz na stiahnutie. Overte, či aktuálna chyba je presmerovanie, overenie proxy, dôvera k certifikátu alebo len dostupnosť. Pri oprave príslušnej cesty zachovajte očakávaný hash archívu a overenie TLS.