Impostazioni del proxy per i download di CMake ExternalProject
Individua il processo e il passaggio di download dietro ExternalProject prima di presumere che una configurazione CMake riuscita dimostri che i successivi download delle dipendenze seguono la stessa rotta.
CMake si configura correttamente. La build inizia più tardi, tenta di scaricare una dipendenza esterna e fallisce sul proxy. Il successo precedente non necessariamente aveva esercitato quel download.
ExternalProject_Add() crea passaggi che possono essere eseguiti durante la build. Il processo che avvia tali passaggi può avere un ambiente diverso dal terminale o dall'IDE che ha configurato il progetto principale. Questa differenza è facile da trascurare in CI, dove configurazione e compilazione possono essere job separati.
Individua l'operazione di rete
- Un download via URL usa il percorso di download di CMake.
- Un'origine Git richiama un trasporto Git con la propria configurazione supportata.
- Un
DOWNLOAD_COMMANDpersonalizzato usa il programma indicato dal progetto.
Non presumere che l'impostazione del proxy per un programma configuri tutti e tre. Leggi il comando e l'errore del passaggio fallito prima di cambiare l'URL della dipendenza.
Se il downloader scelto supporta variabili d'ambiente del proxy, forniscile al processo che esegue realmente quel passaggio. Per i download pubblici il cui client accetta un proxy HTTP, la lista di proxy HTTP offre candidati endpoint quando quella rotta è consentita. Passare una normale variabile di cache CMake con un nome simile non è automaticamente lo stesso che impostare una variabile d'ambiente del processo figlio.
Mantieni anche la distinzione da FetchContent: il suo solito popolamento delle dipendenze avviene durante la configurazione, quindi una ricetta che funziona lì non stabilisce l'ambiente di un passaggio di build ExternalProject.
Una vecchia risposta che consiglia un downloader personalizzato per aggirare un limite storico di reindirizzamento non è prova che ogni errore moderno richieda un nuovo comando di download. Verifica se l'errore attuale è un reindirizzamento, un'autenticazione proxy, una fiducia nel certificato o una semplice raggiungibilità. Conserva l'hash atteso dell'archivio e la validazione TLS mentre correggi la rotta pertinente.