Proxy postavke za CMake ExternalProject preuzimanja
Prepoznajte proces i korak preuzimanja iza ExternalProject prije nego pretpostavite da uspješna CMake konfiguracija dokazuje da kasnija preuzimanja ovisnosti idu istim putem.
CMake se uspješno konfigurira. Build počinje kasnije, pokušava preuzeti vanjsku ovisnost i pada na proxyju. Raniji uspjeh vjerojatno uopće nije izvršio to preuzimanje.
ExternalProject_Add() stvara korake koji se mogu izvoditi tijekom builda. Proces koji pokreće te korake može imati drukčije okruženje od terminala ili IDE-a koji je konfigurirao glavni projekt. Tu je razliku lako previdjeti u CI-ju, gdje konfiguracija i kompilacija mogu biti odvojeni poslovi.
Locirajte mrežnu operaciju
- Preuzimanje putem URL-a koristi CMakeov put preuzimanja.
- Git izvor poziva Git transport s vlastitom podržanom konfiguracijom.
- Prilagođeni
DOWNLOAD_COMMANDkoristi program koji je projekt naveo.
Ne pretpostavljajte da proxy postavka za jedan program konfigurira sva tri. Pročitajte naredbu i grešku neuspjelog koraka prije nego promijenite URL ovisnosti.
Ako odabrani preuzimatelj podržava proxy environment varijable, dostavite ih procesu koji zapravo izvodi taj korak. Za javna preuzimanja čiji klijent prihvaća HTTP proxy, popis HTTP proxyja nudi kandidate za endpoint kada je taj put dopušten. Prosljeđivanje obične CMake cache varijable sličnog imena nije automatski isto što i postavljanje environment varijable podređenog procesa.
Zadržite i razliku prema FetchContentu: njegovo se uobičajeno popunjavanje ovisnosti događa tijekom konfiguracije, pa recept koji tamo radi ne uspostavlja okruženje ExternalProject build koraka.
Stari odgovor koji preporučuje prilagođeni preuzimatelj za zaobilaženje povijesnog ograničenja preusmjeravanja nije dokaz da svaki suvremeni neuspjeh treba novu naredbu za preuzimanje. Provjerite je li trenutna greška preusmjeravanje, proxy autentifikacija, povjerenje u certifikat ili samo dostupnost. Sačuvajte očekivani hash arhive i TLS validaciju dok popravljate odgovarajući put.