O CMake configura com sucesso. A compilação começa mais tarde, tenta baixar uma dependência externa e falha no proxy. O sucesso anterior talvez nem tenha exercitado esse download.

ExternalProject_Add() cria etapas que podem ser executadas durante a compilação. O processo que inicia essas etapas pode ter um ambiente diferente do terminal ou da IDE que configurou o projeto principal. Essa diferença passa fácil despercebida em CI, onde configuração e compilação podem ser tarefas separadas.

Localize a operação de rede

Não presuma que a configuração de proxy de um programa configure os três. Leia o comando e o erro da etapa que falhou antes de alterar a URL da dependência.

Se o downloader escolhido aceitar variáveis de ambiente de proxy, forneça-as ao processo que realmente executa essa etapa. Para downloads públicos cujo cliente aceita um proxy HTTP, a lista de proxies HTTP oferece candidatos de endpoint quando essa rota é permitida. Passar uma variável de cache comum do CMake com nome semelhante não é automaticamente o mesmo que definir uma variável de ambiente do processo filho.

Mantenha também a distinção em relação ao FetchContent: seu preenchimento habitual de dependências ocorre durante a configuração, então uma receita que funciona ali não estabelece o ambiente de uma etapa de compilação do ExternalProject.

Uma resposta antiga que recomenda um downloader personalizado para contornar uma limitação histórica de redirecionamento não é prova de que toda falha moderna precise de um novo comando de download. Verifique se o erro atual é redirecionamento, autenticação de proxy, confiança no certificado ou simples alcançabilidade. Preserve o hash esperado do arquivo e a validação TLS ao corrigir a rota pertinente.

Artigos relacionados