Nastavitve proxyja za prenose CMake ExternalProject
Prepoznajte proces in korak prenosa za ExternalProject, preden domnevate, da uspešna konfiguracija CMake dokazuje, da poznejši prenosi odvisnosti sledijo isti poti.
CMake se uspešno konfigurira. Gradnja se začne pozneje, poskuša prenesti zunanjo odvisnost in spodleti na proxyju. Prejšnji uspeh tega prenosa morda sploh ni preizkusil.
ExternalProject_Add() ustvari korake, ki se lahko izvajajo med gradnjo. Proces, ki te korake zažene, ima lahko drugačno okolje od terminala ali IDE, ki sta konfigurirala glavni projekt. To razliko je v CI zlahka spregledati, kjer sta konfiguracija in prevajanje lahko ločeni opravili.
Poiščite omrežno operacijo
- Prenos prek URL uporablja pot prenosa CMake.
- Vir Git pokliče transport Git z lastno podprto konfiguracijo.
- Prilagojeni
DOWNLOAD_COMMANDuporablja program, ki ga je projekt navedel.
Ne domnevajte, da nastavitev proxyja za en program konfigurira vse tri. Preberite ukaz in napako neuspelnega koraka, preden spremenite URL odvisnosti.
Če izbrani prenašalnik podpira okoljske spremenljivke proxyja, jih predajte procesu, ki ta korak dejansko izvaja. Za javne prenose, katerih odjemalec sprejema proxy HTTP, seznam proxyjev HTTP ponuja kandidate končnih točk, ko je ta pot dovoljena. Posredovanje običajne predpomnilniške spremenljivke CMake s podobnim imenom ni samodejno isto kot nastavitev okoljske spremenljivke podrejenega procesa.
Ohranite tudi razliko od FetchContent: njegovo običajno polnjenje odvisnosti poteka med konfiguracijo, zato recept, ki deluje tam, ne potrjuje okolja koraka gradnje ExternalProject.
Star odgovor, ki priporoča prilagojenega prenašalnika za obhod zgodovinske omejitve preusmeritve, ni dokaz, da vsaka sodobna napaka potrebuje nov ukaz za prenos. Preverite, ali je trenutna napaka preusmeritev, overjanje proxyja, zaupanje v potrdilo ali zgolj dosegljivost. Med popravljanjem ustrezne poti ohranite pričakovani hash arhiva in preverjanje TLS.