Mga setting ng proxy para sa mga download ng CMake ExternalProject
Tukuyin ang proseso at hakbang ng pag-download sa likod ng ExternalProject bago ipagpalagay na ang matagumpay na configure ng CMake ay nagpapatunay na ang mga susunod na download ng dependency ay sumusunod sa parehong ruta.
Matagumpay na nagko-configure ang CMake. Magsisimula ang build mamaya, susubukang mag-download ng panlabas na dependency, at mabibigo sa proxy. Maaaring hindi man lang sinubukan ng naunang tagumpay ang download na iyon.
ExternalProject_Add() ay lumilikha ng mga hakbang na maaaring tumakbo habang nagbubuild. Ang prosesong naglulunsad ng mga hakbang na iyon ay maaaring may ibang kapaligiran kaysa sa terminal o IDE na nag-configure ng pangunahing proyekto. Madaling makaligtaan ang pagkakaibang ito sa CI, kung saan ang pag-configure at pag-compile ay maaaring magkahiwalay na trabaho.
Hanapin ang operasyon ng network
- Ang download sa URL ay gumagamit ng landas ng pag-download ng CMake.
- Ang pinagmulang Git ay tumatawag ng transportasyong Git na may sariling sinusuportahang configuration.
- Ang custom na
DOWNLOAD_COMMANDay gumagamit ng anumang programang tinukoy ng proyekto.
Huwag ipagpalagay na ang setting ng proxy para sa isang programa ay nagko-configure sa lahat ng tatlo. Basahin ang command at error ng nabigong hakbang bago baguhin ang URL ng dependency.
Kung sinusuportahan ng napiling downloader ang mga variable ng kapaligiran ng proxy, ibigay ang mga ito sa prosesong aktwal na nagpapatakbo ng hakbang na iyon. Para sa mga pampublikong download na tumatanggap ng HTTP proxy ang client, ang listahan ng HTTP proxy ay nag-aalok ng mga kandidatong endpoint kapag pinapayagan ang rutang iyon. Ang pagpasa ng ordinaryong variable ng cache ng CMake na may katulad na pangalan ay hindi awtomatikong kapareho ng pagtatakda ng variable ng kapaligiran ng child process.
Panatilihin din ang pagkakaiba sa FetchContent: ang karaniwang pagpuno ng dependency nito ay nangyayari sa panahon ng pag-configure, kaya ang recipe na gumagana doon ay hindi nagpapatunay ng kapaligiran ng hakbang ng build ng ExternalProject.
Ang lumang sagot na nagrerekomenda ng custom na downloader upang iwasan ang makasaysayang limitasyon sa redirect ay hindi patunay na ang bawat modernong pagkabigo ay nangangailangan ng bagong command sa pag-download. Suriin kung ang kasalukuyang error ay redirect, proxy authentication, pagtitiwala sa certificate, o simpleng maabot. Panatilihin ang inaasahang hash ng archive at pagpapatunay ng TLS habang inaayos ang kaugnay na ruta.