Tetapan proksi untuk muat turun CMake ExternalProject
Kenal pasti proses dan langkah muat turun di sebalik ExternalProject sebelum menganggap konfigurasi CMake yang berjaya membuktikan muat turun kebergantungan kemudian menggunakan laluan yang sama.
CMake berjaya dikonfigurasikan. Binaan bermula kemudian, cuba memuat turun kebergantungan luaran dan gagal pada proksi. Kejayaan terdahulu mungkin tidak pernah menjalankan muat turun itu langsung.
ExternalProject_Add() mencipta langkah yang boleh berjalan semasa binaan. Proses yang melancarkan langkah tersebut mungkin mempunyai persekitaran berbeza daripada terminal atau IDE yang mengkonfigurasi projek utama. Perbezaan ini mudah terlepas dalam CI, di mana konfigurasi dan pengkompilasian mungkin kerja berasingan.
Kenal pasti operasi rangkaian
- Muat turun URL menggunakan laluan muat turun CMake.
- Sumber Git memanggil pengangkutan Git dengan konfigurasinya sendiri yang disokong.
DOWNLOAD_COMMANDtersuai menggunakan mana-mana program yang dinyatakan projek.
Jangan anggap tetapan proksi untuk satu program mengkonfigurasi ketiga-tiganya. Baca arahan dan ralat langkah yang gagal sebelum menukar URL kebergantungan.
Jika pemuat turun yang dipilih menyokong pemboleh ubah persekitaran proksi, berikannya kepada proses yang benar-benar menjalankan langkah itu. Untuk muat turun awam yang kliennya menerima proksi HTTP, senarai proksi HTTP menawarkan calon titik akhir apabila laluan itu dibenarkan. Menghantar pemboleh ubah cache CMake biasa dengan nama serupa tidak semestinya sama dengan menetapkan pemboleh ubah persekitaran proses anak.
Kekalkan juga perbezaan daripada FetchContent: pengisian kebergantungan biasanya berlaku semasa konfigurasi, jadi resipi yang berfungsi di sana tidak membuktikan persekitaran langkah binaan ExternalProject.
Jawapan lama yang mengesyorkan pemuat turun tersuai untuk mengelak had pengalihan sejarah bukan bukti bahawa setiap kegagalan moden memerlukan arahan muat turun baharu. Periksa sama ada ralat semasa ialah pengalihan, pengesahan proksi, kepercayaan sijil atau sekadar kebolehcapaian. Kekalkan hash arkib yang dijangka dan pengesahan TLS semasa membaiki laluan berkenaan.