Cilësimet e proxy-t për shkarkimet e CMake ExternalProject
Identifikoni procesin dhe hapin e shkarkimit pas ExternalProject përpara se të supozoni se një konfigurim i suksesshëm i CMake provon që shkarkimet e mëvonshme të varësive ndjekin të njëjtën rrugë.
CMake konfigurohet me sukses. Ndërtimi fillon më vonë, përpiqet të shkarkojë një varësi të jashtme dhe dështon në proxy. Suksesi i mëparshëm mund të mos e kishte ushtruar fare atë shkarkim.
ExternalProject_Add() krijon hapa që mund të ekzekutohen gjatë ndërtimit. Procesi që i nis këta hapa mund të ketë një mjedis të ndryshëm nga terminali ose IDE-ja që konfiguroi projektin kryesor. Ky ndryshim humbet lehtë në CI, ku konfigurimi dhe kompilimi mund të jenë punë të veçanta.
Lokalizoni operacionin e rrjetit
- Një shkarkim me URL përdor rrugën e shkarkimit të CMake.
- Një burim Git thërret një transport Git me konfigurimin e tij të mbështetur.
- Një
DOWNLOAD_COMMANDi personalizuar përdor çdo program që ka specifikuar projekti.
Mos supozoni se cilësimi i proxy-t për një program konfiguron të tre. Lexoni komandën dhe gabimin e hapit që dështon përpara se të ndryshoni URL-në e varësisë.
Nëse shkarkuesi i zgjedhur mbështet variabla mjedisi proxy, jepini ato procesit që ekzekuton vërtet atë hap. Për shkarkime publike, klienti i të cilave pranon një proxy HTTP, lista e proxy-ve HTTP ofron kandidatë pikash fundore kur kjo rrugë lejohet. Kalimi i një variabli të zakonshëm cache të CMake me emër të ngjashëm nuk është automatikisht i njëjtë me vendosjen e një variabli mjedisi të procesit fëmijë.
Mbani edhe dallimin nga FetchContent: mbushja e zakonshme e varësive të tij ndodh gjatë konfigurimit, prandaj një recetë që funksionon atje nuk vërteton mjedisin e një hapi ndërtimi të ExternalProject.
Një përgjigje e vjetër që rekomandon një shkarkues të personalizuar për të anashkaluar një kufizim historik ridrejtimi nuk është provë që çdo dështim modern kërkon një komandë të re shkarkimi. Kontrolloni nëse gabimi aktual është ridrejtim, vërtetim proxy, besim certifikate apo thjesht arritshmëri. Ruani hash-in e pritshëm të arkivit dhe validimin TLS ndërsa rregulloni rrugën përkatëse.