การตั้งค่าพร็อกซีสำหรับการดาวน์โหลด CMake ExternalProject
ระบุกระบวนการและขั้นตอนการดาวน์โหลดที่อยู่เบื้องหลัง ExternalProject ก่อนสันนิษฐานว่าการกำหนดค่า CMake ที่สำเร็จพิสูจน์ว่าการดาวน์โหลดไฟล์ขึ้นต่อกันในภายหลังใช้เส้นทางเดียวกัน
CMake กำหนดค่าสำเร็จ การสร้างเริ่มภายหลัง พยายามดาวน์โหลดไฟล์ขึ้นต่อกันภายนอก และล้มเหลวที่พร็อกซี ความสำเร็จก่อนหน้านั้นอาจไม่ได้ทดสอบการดาวน์โหลดนั้นเลย
ExternalProject_Add() สร้างขั้นตอนที่สามารถทำงานระหว่างการสร้าง กระบวนการที่เริ่มขั้นตอนเหล่านั้นอาจมีสภาพแวดล้อมต่างจากเทอร์มินัลหรือ IDE ที่กำหนดค่าโปรเจกต์หลัก ความแตกต่างนี้มองข้ามได้ง่ายใน CI ซึ่งการกำหนดค่าและการคอมไพล์อาจเป็นงานแยกกัน
ระบุการดำเนินการเครือข่าย
- การดาวน์โหลดผ่าน URL ใช้เส้นทางการดาวน์โหลดของ CMake
- แหล่ง Git เรียก การขนส่ง Git ที่มีการกำหนดค่าที่รองรับของตัวเอง
DOWNLOAD_COMMANDแบบกำหนดเองใช้โปรแกรมใดก็ตามที่โปรเจกต์ระบุ
อย่าสันนิษฐานว่าการตั้งค่าพร็อกซีสำหรับโปรแกรมเดียวกำหนดค่าทั้งสาม อ่านคำสั่งและข้อผิดพลาดของขั้นตอนที่ล้มเหลวก่อนเปลี่ยน URL ของไฟล์ขึ้นต่อกัน
หากตัวดาวน์โหลดที่เลือกรองรับตัวแปรสภาพแวดล้อมพร็อกซี ให้ส่งไปยังกระบวนการที่รันขั้นตอนนั้นจริง ๆ สำหรับการดาวน์โหลดสาธารณะที่ไคลเอนต์ยอมรับพร็อกซี HTTP รายการพร็อกซี HTTP เสนอผู้สมัครปลายทางเมื่อเส้นทางนั้นได้รับอนุญาต การส่งตัวแปรแคช CMake ทั่วไปที่มีชื่อคล้ายกันไม่ใช่สิ่งเดียวกับการตั้งค่าตัวแปรสภาพแวดล้อมของกระบวนการลูกโดยอัตโนมัติ
รักษาความแตกต่างจาก FetchContent ไว้ด้วย: การเติมไฟล์ขึ้นต่อกันตามปกติเกิดขึ้นระหว่างการกำหนดค่า ดังนั้นสูตรที่ใช้ได้ที่นั่นไม่ได้พิสูจน์สภาพแวดล้อมของขั้นตอนการสร้าง ExternalProject
คำตอบเก่าที่แนะนำให้ใช้ตัวดาวน์โหลดแบบกำหนดเองเพื่อเลี่ยงข้อจำกัดการเปลี่ยนเส้นทางในอดีตไม่ใช่หลักฐานว่าทุกความล้มเหลวในปัจจุบันต้องใช้คำสั่งดาวน์โหลดใหม่ ตรวจสอบว่าข้อผิดพลาดปัจจุบันเป็นการเปลี่ยนเส้นทาง การพิสูจน์ตัวตนพร็อกซี ความเชื่อถือใบรับรอง หรือเพียงการเข้าถึงได้ รักษาแฮชของไฟล์เก็บถาวรที่คาดไว้และการตรวจสอบ TLS ขณะแก้ไขเส้นทางที่เกี่ยวข้อง