CMake ExternalProject yükləmələri üçün proxy parametrləri
CMake konfiqurasiyasının uğurunun sonrakı asılılıq yükləmələrinin də eyni marşrutu istifadə etdiyini sübut etdiyini güman etməzdən əvvəl ExternalProject arxasındakı prosesi və yükləmə addımını müəyyən edin.
CMake uğurla konfiqurasiya edir. Build sonra başlayır, xarici asılılığı yükləməyə çalışır və proxydə uğursuz olur. Əvvəlki uğur həmin yükləməni heç sınaqdan keçirməmiş ola bilər.
ExternalProject_Add() build zamanı işləyə bilən addımlar yaradır. Həmin addımları başladan proses əsas layihəni konfiqurasiya edən terminaldan və ya IDE-dən fərqli mühitə malik ola bilər. Bu fərqi CI-də asanlıqla qaçırmaq olar, çünki orada konfiqurasiya və kompilyasiya ayrı işlər ola bilər.
Şəbəkə əməliyyatını müəyyənləşdirin
- URL yükləməsi CMake-in yükləmə yolundan istifadə edir.
- Git mənbəyi özünün dəstəklənən konfiqurasiyası olan Git nəqliyyatını çağırır.
- Fərdi
DOWNLOAD_COMMANDlayihənin göstərdiyi proqramdan istifadə edir.
Bir proqram üçün proxy parametrinin hər üçünü konfiqurasiya etdiyini güman etməyin. Asılılığın URL-ni dəyişməzdən əvvəl uğursuz addımın əmrini və xətasını oxuyun.
Seçilmiş yükləyici proxy mühit dəyişənlərini dəstəkləyirsə, onları o addımı həqiqətən icra edən prosesə verin. Müştərisi HTTP proxy qəbul edən ictimai yükləmələr üçün, bu marşruta icazə verildikdə HTTP proxy siyahısı son nöqtə namizədləri təqdim edir. Bənzər adlı adi CMake keş dəyişənini ötürmək avtomatik olaraq uşaq prosesinin mühit dəyişənini təyin etməklə eyni deyil.
FetchContent ilə fərqi də qoruyun: onun adi asılılıq doldurulması konfiqurasiya zamanı baş verir, ona görə də orada işləyən resept ExternalProject build addımının mühitini təsdiqləmir.
Tarixi yönləndirmə məhdudiyyətini aşmaq üçün fərdi yükləyici tövsiyə edən köhnə cavab, hər müasir uğursuzluğun yeni yükləmə əmri tələb etdiyinə dəlil deyil. Cari xətanın yönləndirmə, proxy autentifikasiyası, sertifikat etimadı yoxsa sadəcə əlçatanlıq olduğunu yoxlayın. Müvafiq marşrutu düzəldərkən gözlənilən arxiv heşini və TLS yoxlamasını qoruyun.