CMake ExternalProject 다운로드를 위한 프록시 설정
CMake 구성이 성공했다고 해서 이후 의존성 다운로드가 같은 경로를 쓴다고 단정하지 말고, ExternalProject 뒤에 있는 프로세스와 다운로드 단계를 먼저 확인하세요.
CMake는 성공적으로 구성됩니다. 빌드는 나중에 시작되고, 외부 의존성을 내려받으려다 프록시에서 실패합니다. 앞선 성공은 그 다운로드를 아예 수행하지 않았을 수도 있습니다.
ExternalProject_Add()는 빌드 중에 실행될 수 있는 단계를 만듭니다. 그 단계를 시작하는 프로세스는 메인 프로젝트를 구성한 터미널이나 IDE와 다른 환경을 가질 수 있습니다. CI에서는 구성과 컴파일이 별도 작업일 수 있어 이 차이를 놓치기 쉽습니다.
네트워크 작업을 찾아라
- URL 다운로드는 CMake의 다운로드 경로를 사용합니다.
- Git 소스는 자체 지원 구성을 가진 Git 전송을 호출합니다.
- 사용자 정의
DOWNLOAD_COMMAND는 프로젝트가 지정한 프로그램을 사용합니다.
한 프로그램의 프록시 설정이 세 가지를 모두 구성한다고 가정하지 마세요. 의존성 URL을 바꾸기 전에 실패한 단계의 명령과 오류를 읽으세요.
선택한 다운로더가 프록시 환경 변수를 지원한다면 그 단계를 실제로 실행하는 프로세스에 전달하세요. 클라이언트가 HTTP 프록시를 허용하는 공개 다운로드의 경우 해당 경로가 허용될 때 HTTP 프록시 목록이 엔드포인트 후보를 제공합니다. 비슷한 이름의 일반 CMake 캐시 변수를 넘기는 것은 자식 프로세스의 환경 변수를 설정하는 것과 자동으로 같지 않습니다.
FetchContent와의 구분도 유지하세요. 그쪽의 일반적인 의존성 채우기는 구성 중에 일어나므로, 거기서 동작하는 레시피가 ExternalProject 빌드 단계의 환경을 입증하지는 않습니다.
과거의 리다이렉트 제한을 우회하려고 사용자 정의 다운로더를 권하는 오래된 답변은 모든 현대적 실패에 새 다운로드 명령이 필요하다는 증거가 아닙니다. 현재 오류가 리다이렉트인지, 프록시 인증인지, 인증서 신뢰인지, 아니면 단순한 도달 불가인지 확인하세요. 해당 경로를 고치는 동안 기대하는 아카이브 해시와 TLS 검증을 유지하세요.