CMake se configure correctement. La compilation démarre plus tard, tente de télécharger une dépendance externe et échoue au proxy. Le succès précédent n'avait pas nécessairement exercé ce téléchargement du tout.

ExternalProject_Add() crée des étapes qui peuvent s'exécuter pendant la compilation. Le processus qui lance ces étapes peut avoir un environnement différent du terminal ou de l'IDE qui a configuré le projet principal. Cette différence est facile à manquer en CI, où la configuration et la compilation peuvent être des tâches distinctes.

Localisez l'opération réseau

Ne supposez pas que le réglage de proxy d'un programme configure les trois. Lisez la commande et l'erreur de l'étape qui échoue avant de modifier l'URL de la dépendance.

Si le téléchargeur choisi prend en charge les variables d'environnement de proxy, fournissez-les au processus qui exécute réellement cette étape. Pour les téléchargements publics dont le client accepte un proxy HTTP, la liste de proxys HTTP propose des candidats de point de terminaison lorsque cette route est autorisée. Passer une variable de cache CMake ordinaire au nom similaire n'est pas automatiquement la même chose que définir une variable d'environnement du processus enfant.

Conservez aussi la distinction avec FetchContent : son peuplement habituel des dépendances a lieu pendant la configuration, donc une recette qui y fonctionne n'établit pas l'environnement d'une étape de compilation ExternalProject.

Une ancienne réponse recommandant un téléchargeur personnalisé pour contourner une limitation historique de redirection ne prouve pas que chaque échec moderne nécessite une nouvelle commande de téléchargement. Vérifiez si l'erreur actuelle est une redirection, une authentification de proxy, une confiance de certificat ou une simple accessibilité. Préservez le hachage attendu de l'archive et la validation TLS pendant que vous corrigez la route concernée.

Articles similaires