Build қаптамасы CMake аргументтерін қосуға мүмкіндік беруі мүмкін, бірақ CMake іске қосылатын ортаны жасырады. Ертерек жоба hook-ы конфигурациялау процесінің прокси мәндерін ұсынатын бір орын береді.

Кішкентай файлды тұрақты абсолютті жолға сақтаңыз, мысалы /home/alex/cmake/proxy-env.cmake:

set(ENV{http_proxy} "http://proxy.example:8080")
set(ENV{https_proxy} "http://proxy.example:8080")

Осы файлды конфигурацияға беріңіз:

cmake -S . -B build -DCMAKE_PROJECT_INCLUDE_BEFORE=/home/alex/cmake/proxy-env.cmake

CMAKE_PROJECT_INCLUDE_BEFORE файлды әр project() шақыруының басында қосады. Сондықтан ол сол шақырудың соңында орындалатын CMAKE_PROJECT_INCLUDE-тен ертерек орындалады. Бұл айырмашылық тіл параметрлері немесе кірістірілген жоба осы жолды қажет еткенде маңызды.

Конфигурация кезінде жалпыға ортақ делдал арқылы рұқсат етілген жалпыға ортақ жүктеулер үшін HTTP URL мәндерін HTTP прокси тізімінен таңдаңыз. Hook өзіне дейін орындалған жұмысқа әсер ете алмайды, оның ішінде бірінші project() шақыруына дейінгі жүктеу де бар. Ол сондай-ақ операциялық жүйенің тұрақты орта параметрін жазбайды.

Осы CMake процесі кейін іске қосатын процестер мәндерді мұралай алады, егер олардың желілік клиенттері оны қолдаса. Кейінірек бөлек іске қосылған build өз ортасына ие. Сол build кезеңіне кейінге қалдырылған жүктеу сол жерде де проксиін алуы керек.

Hook файлында жеке қосылым мәліметтері болса, оны жалпыға ортақ source tree-ден тыс ұстаңыз. -D аргументі hook жолын CMake айнымалысы ретінде сақтайды; set(ENV{...}) cache айнымалысын прокси параметріне айналдырмай, жұмыс істеп тұрған процестің ортасын өзгертеді.

Қатысты мақалалар