Cài đặt proxy cho các bản tải xuống CMake ExternalProject
Xác định tiến trình và bước tải xuống đằng sau ExternalProject trước khi cho rằng một cấu hình CMake thành công chứng minh các lần tải xuống phụ thuộc sau đó đi cùng một đường.
CMake cấu hình thành công. Việc build bắt đầu muộn hơn, cố tải một phụ thuộc bên ngoài và thất bại ở proxy. Thành công trước đó có thể chưa hề chạy thử lần tải xuống ấy.
ExternalProject_Add() tạo ra các bước có thể chạy trong lúc build. Tiến trình khởi chạy các bước đó có thể có môi trường khác với terminal hoặc IDE đã cấu hình dự án chính. Sự khác biệt này dễ bị bỏ qua trong CI, nơi cấu hình và biên dịch có thể là những công việc riêng.
Xác định thao tác mạng
- Tải xuống qua URL dùng đường tải xuống của CMake.
- Nguồn Git gọi một phương thức truyền Git với cấu hình được hỗ trợ riêng.
- Một
DOWNLOAD_COMMANDtùy chỉnh dùng bất kỳ chương trình nào dự án đã chỉ định.
Đừng cho rằng cài đặt proxy cho một chương trình sẽ cấu hình cả ba. Đọc lệnh và lỗi của bước thất bại trước khi thay đổi URL của phụ thuộc.
Nếu trình tải xuống đã chọn hỗ trợ biến môi trường proxy, hãy cung cấp chúng cho tiến trình thực sự chạy bước đó. Với các bản tải xuống công khai mà ứng dụng khách chấp nhận proxy HTTP, danh sách proxy HTTP cung cấp các điểm cuối ứng viên khi đường đó được phép. Truyền một biến cache CMake thông thường có tên tương tự không tự động giống với việc đặt biến môi trường của tiến trình con.
Cũng giữ sự phân biệt với FetchContent: việc điền phụ thuộc thông thường của nó diễn ra trong lúc cấu hình, nên một công thức chạy được ở đó không chứng minh môi trường của bước build ExternalProject.
Một câu trả lời cũ khuyên dùng trình tải xuống tùy chỉnh để lách giới hạn chuyển hướng trong quá khứ không phải bằng chứng rằng mọi lỗi hiện đại đều cần một lệnh tải xuống mới. Kiểm tra xem lỗi hiện tại là chuyển hướng, xác thực proxy, tin cậy chứng chỉ hay chỉ đơn giản là khả năng kết nối. Giữ nguyên mã băm lưu trữ mong đợi và kiểm tra TLS trong khi sửa đường liên quan.