Proksi muhitini CMAKE_PROJECT_INCLUDE_BEFORE bilan sozlash
Wrapper CMake argumentlariga ruxsat berib, ishga tushirish muhitini oshkor qilmasa, erta loyiha include faylidan foydalaning.
Build wrapper sizga CMake argumentlarini qo'shishga ruxsat berishi mumkin, lekin CMake ishga tushadigan muhitni yashiradi. Erta loyiha hook'i konfiguratsiya jarayonining proksi qiymatlarini taqdim etish uchun bitta joy beradi.
Kichik faylni barqaror mutlaq yo'lga saqlang, masalan /home/alex/cmake/proxy-env.cmake:
set(ENV{http_proxy} "http://proxy.example:8080")
set(ENV{https_proxy} "http://proxy.example:8080")O'sha faylni konfiguratsiyaga uzating:
cmake -S . -B build -DCMAKE_PROJECT_INCLUDE_BEFORE=/home/alex/cmake/proxy-env.cmakeCMAKE_PROJECT_INCLUDE_BEFORE faylni har bir project() chaqiruvining boshida qo'shadi. Shuning uchun u o'sha chaqiruvning oxirida ishlaydigan CMAKE_PROJECT_INCLUDE'dan oldin ishlaydi. Til sozlamasi yoki ichki loyiha bu yo'lni talab qilganda bu farq muhim.
Konfiguratsiya vaqtida umumiy vositachi orqali ruxsat etilgan umumiy yuklab olishlar uchun HTTP URL qiymatlarini HTTP proksi ro'yxatidan tanlang. Hook baribir o'zidan oldin bajarilgan ishga ta'sir qila olmaydi, birinchi project() chaqiruvidan oldingi yuklab olish ham shunga kiradi. U shuningdek operatsion tizimning doimiy muhit sozlamasini yozmaydi.
Bu CMake jarayoni keyin ishga tushiradigan jarayonlar, agar tarmoq mijozlari qo'llab-quvvatlasa, qiymatlarni meros olishi mumkin. Keyinroq alohida ishga tushirilgan build o'z muhitiga ega. O'sha build bosqichiga kechiktirilgan yuklab olish ham u yerda proksisini olishi kerak.
Hook faylida shaxsiy ulanish tafsilotlari bo'lsa, uni umumiy manba daraxtidan tashqarida saqlang. -D argumenti hook yo'lini CMake o'zgaruvchisi sifatida saqlaydi; set(ENV{...}) cache o'zgaruvchisini proksi sozlamasiga aylantirish o'rniga ishlab turgan jarayon muhitini o'zgartiradi.