Axustes de proxy para descargas de CMake ExternalProject
Identifique o proceso e o paso de descarga detrás de ExternalProject antes de supoñer que unha configuración correcta de CMake demostra que as descargas posteriores de dependencias seguen a mesma ruta.
CMake configúrase correctamente. A compilación comeza máis tarde, tenta descargar unha dependencia externa e falla no proxy. O éxito anterior non necesariamente exercitara esa descarga en absoluto.
ExternalProject_Add() crea pasos que poden executarse durante a compilación. O proceso que lanza eses pasos pode ter un contorno distinto do terminal ou do IDE que configurou o proxecto principal. Esa diferenza é doada de pasar por alto en CI, onde a configuración e a compilación poden ser traballos separados.
Localice a operación de rede
- Unha descarga por URL usa a ruta de descarga de CMake.
- Unha fonte Git invoca un transporte Git coa súa propia configuración admitida.
- Un
DOWNLOAD_COMMANDpersonalizado usa o programa que indique o proxecto.
Non supoña que o axuste de proxy dun programa configura os tres. Lea a orde e o erro do paso que falla antes de cambiar o URL da dependencia.
Se o descargador elixido admite variables de contorno de proxy, proporcióneas ao proceso que realmente executa ese paso. Para descargas públicas cuxo cliente acepta un proxy HTTP, a lista de proxies HTTP ofrece candidatos de extremo cando esa ruta está permitida. Pasar unha variable de caché corrente de CMake cun nome semellante non é automaticamente o mesmo que definir unha variable de contorno do proceso fillo.
Manteña tamén a distinción con FetchContent: a súa habitual poboación de dependencias ocorre durante a configuración, así que unha receita que funciona alí non establece o contorno dun paso de compilación de ExternalProject.
Unha resposta antiga que recomenda un descargador personalizado para sortear unha limitación histórica de redireccións non é proba de que cada fallo moderno necesite unha orde de descarga nova. Comprobe se o erro actual é unha redirección, autenticación de proxy, confianza no certificado ou simple accesibilidade. Conserve o hash esperado do arquivo e a validación TLS mentres corrixe a ruta correspondente.