Прокси настройки за изтегляния на CMake ExternalProject
Открийте процеса и стъпката за изтегляне зад ExternalProject, преди да приемете, че успешната конфигурация на CMake доказва, че следващите изтегляния на зависимости минават по същия път.
CMake се конфигурира успешно. Компилацията започва по-късно, опитва се да изтегли външна зависимост и се проваля на проксито. По-ранният успех не е задължително да е упражнил това изтегляне изобщо.
ExternalProject_Add() създава стъпки, които могат да се изпълняват по време на компилацията. Процесът, който стартира тези стъпки, може да има различна среда от терминала или IDE, които са конфигурирали основния проект. Тази разлика лесно се пропуска в CI, където конфигурацията и компилацията може да са отделни задачи.
Открийте мрежовата операция
- Изтеглянето по URL използва пътя за изтегляне на CMake.
- Източникът Git извиква Git транспорт със собствена поддържана конфигурация.
- Персонализираната
DOWNLOAD_COMMANDизползва програмата, която проектът е указал.
Не предполагайте, че прокси настройката за една програма конфигурира и трите. Прочетете командата и грешката на неуспешната стъпка, преди да промените URL адреса на зависимостта.
Ако избраният изтеглящ инструмент поддържа променливи на средата за прокси, подайте ги на процеса, който действително изпълнява тази стъпка. За публични изтегляния, чийто клиент приема HTTP прокси, списъкът с HTTP проксита предлага кандидати за крайни точки, когато този път е разрешен. Подаването на обикновена кеш променлива на CMake с подобно име не е автоматично същото като задаване на променлива на средата на дъщерен процес.
Пазете и разликата с FetchContent: обичайното му попълване на зависимости става по време на конфигурацията, така че рецепта, която работи там, не установява средата на стъпка за компилация на ExternalProject.
Стар отговор, който препоръчва персонализиран изтеглящ инструмент за заобикаляне на историческо ограничение за пренасочване, не е доказателство, че всеки съвременен провал се нуждае от нова команда за изтегляне. Проверете дали текущата грешка е пренасочване, удостоверяване на прокси, доверие към сертификат или просто достъпност. Запазете очаквания хеш на архива и TLS валидацията, докато поправяте съответния път.