Build wrapper sizə CMake arqumentləri əlavə etməyə imkan verə, lakin CMake-ın işə salındığı mühiti gizlədə bilər. Erkən layihə hook-u konfiqurasiya prosesinin proxy dəyərlərini təqdim etmək üçün bir yer verir.

Kiçik bir faylı sabit, mütləq yolda saxlayın, məsələn /home/alex/cmake/proxy-env.cmake:

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

Həmin faylı konfiqurasiyaya ötürün:

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

CMAKE_PROJECT_INCLUDE_BEFORE faylı hər project() çağırışının əvvəlində daxil edir. Buna görə də o, həmin çağırışın sonunda işləyən CMAKE_PROJECT_INCLUDE-dan daha erkən işləyir. Dil quraşdırması və ya iç-içə layihə marşruta ehtiyac duyduqda bu fərq vacibdir.

Konfiqurasiya zamanı ictimai vasitəçi ilə icazə verilən ictimai yükləmələr üçün HTTP URL dəyərlərini HTTP proxy siyahısından seçin. Hook yenə də ondan əvvəl görülən işlərə təsir edə bilməz, o cümlədən ilk project() çağırışından əvvəlki yükləməyə. O, həmçinin davamlı əməliyyat sistemi mühit parametri yazmır.

Bu CMake prosesinin sonradan başlatdığı proseslər, şəbəkə müştəriləri dəstəkləyirsə, dəyərləri miras ala bilər. Sonradan ayrıca başladılan build öz mühitinə malikdir. Həmin build mərhələsinə təxirə salınmış yükləmə də proxy-ni orada almalıdır.

Hook faylı şəxsi bağlantı detalları ehtiva edirsə, onu ictimai mənbə ağacından kənarda saxlayın. -D arqumenti hook yolunu CMake dəyişəni kimi saxlayır; set(ENV{...}) cache dəyişənini proxy parametrinə çevirmək əvəzinə işləyən prosesin mühitini dəyişir.

Əlaqəli məqalələr