Välityspalvelinasetukset CMake ExternalProject -latauksille
Tunnista ExternalProjectin takana oleva prosessi ja latausvaihe ennen kuin oletat onnistuneen CMake-konfiguroinnin todistavan, että myöhemmät riippuvuuksien lataukset kulkevat samaa reittiä.
CMake konfiguroituu onnistuneesti. Koonti alkaa myöhemmin, yrittää ladata ulkoisen riippuvuuden ja epäonnistuu välityspalvelimessa. Aiempi onnistuminen ei välttämättä ollut harjoittanut tuota latausta lainkaan.
ExternalProject_Add() luo vaiheita, jotka voivat käynnistyä koonnin aikana. Ne käynnistävä prosessi voi toimia eri ympäristössä kuin pääprojektin konfiguroinut pääte tai IDE. Ero on helppo jättää huomaamatta CI:ssä, jossa konfigurointi ja kääntäminen voivat olla erillisiä töitä.
Paikanna verkkotoiminto
- URL-lataus käyttää CMaken latauspolkua.
- Git-lähde kutsuu Git-siirtoa, jolla on oma tuettu konfigurointinsa.
- Mukautettu
DOWNLOAD_COMMANDkäyttää sitä ohjelmaa, jonka projekti määritti.
Älä oleta, että yhden ohjelman välityspalvelinasetus konfiguroi kaikki kolme. Lue epäonnistuneen vaiheen komento ja virhe ennen riippuvuuden URL-osoitteen muuttamista.
Jos valittu lataaja tukee välityspalvelimen ympäristömuuttujia, anna ne prosessille, joka todella suorittaa vaiheen. Julkisille latauksille, joiden asiakas hyväksyy HTTP-välityspalvelimen, HTTP-välityspalvelinluettelo tarjoaa päätepiste-ehdokkaita, kun tämä reitti on sallittu. Tavallisen samannimisen CMake-välimuistimuuttujan välittäminen ei ole automaattisesti sama kuin lapsiprosessin ympäristömuuttujan asettaminen.
Säilytä myös ero FetchContentiin: sen tavallinen riippuvuuksien täyttö tapahtuu konfiguroinnin aikana, joten siellä toimiva resepti ei todista ExternalProject-koontivaiheen ympäristöä.
Vanha vastaus, joka suosittaa mukautettua lataajaa historiallisen uudelleenohjausrajoituksen kiertämiseksi, ei ole todiste siitä, että jokainen nykyaikainen epäonnistuminen tarvitsee uuden latauskomennon. Tarkista, onko nykyinen virhe uudelleenohjaus, välityspalvelimen todennus, varmenteen luottamus vai pelkkä tavoitettavuus. Säilytä odotettu arkiston tiiviste ja TLS-vahvistus korjatessasi asianmukaista reittiä.