CMake se uspješno konfiguriše. Build počinje kasnije, pokušava preuzeti vanjsku zavisnost i pada na proxyju. Raniji uspjeh nije nužno uopšte izvršio to preuzimanje.

ExternalProject_Add() stvara korake koji se mogu izvršavati tokom builda. Proces koji pokreće te korake može imati drugačije okruženje od terminala ili IDE-a koji je konfigurisao glavni projekt. Tu razliku je lako previdjeti u CI-ju, gdje konfiguracija i kompilacija mogu biti odvojeni poslovi.

Locite mrežnu operaciju

Ne pretpostavljajte da proxy postavka za jedan program konfiguriše sva tri. Pročitajte komandu i grešku neuspjelog koraka prije nego promijenite URL zavisnosti.

Ako odabrani preuzimač podržava proxy environment varijable, dostavite ih procesu koji zaista izvršava taj korak. Za javna preuzimanja čiji klijent prihvata HTTP proxy, lista HTTP proxyja nudi kandidate za endpoint kada je taj put dozvoljen. Prosleđivanje obične CMake cache varijable sličnog imena nije automatski isto kao postavljanje environment varijable podređenog procesa.

Zadržite i razliku od FetchContent: njegovo uobičajeno popunjavanje zavisnosti dešava se tokom konfiguracije, pa recept koji tamo radi ne uspostavlja okruženje ExternalProject build koraka.

Stari odgovor koji preporučuje prilagođeni preuzimač za zaobilaženje istorijskog ograničenja preusmjeravanja nije dokaz da svaki savremeni neuspjeh zahtijeva novu komandu za preuzimanje. Provjerite da li je 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.

Povezani članci