Pembungkus build dapat memungkinkan Anda menambahkan argumen CMake sambil menyembunyikan lingkungan yang dipakai untuk meluncurkan CMake. Hook proyek awal memberi Anda satu tempat untuk menyediakan nilai proksi proses konfigurasi.

Simpan berkas kecil pada jalur absolut yang stabil, misalnya /home/alex/cmake/proxy-env.cmake:

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

Teruskan berkas itu ke konfigurasi:

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

CMAKE_PROJECT_INCLUDE_BEFORE menyertakan berkas itu di awal setiap pemanggilan project(). Karena itu ia berjalan lebih awal daripada CMAKE_PROJECT_INCLUDE, yang berjalan di akhir pemanggilan tersebut. Perbedaan ini penting ketika penyiapan bahasa atau proyek bersarang membutuhkan rute tersebut.

Untuk unduhan publik saat konfigurasi yang diizinkan melalui perantara publik, pilih nilai URL HTTP dari daftar proksi HTTP. Hook tetap tidak dapat memengaruhi pekerjaan yang berjalan sebelumnya, termasuk unduhan sebelum pemanggilan project() pertama. Ia juga tidak menulis setelan lingkungan sistem operasi yang persisten.

Proses yang dimulai setelahnya oleh proses CMake ini dapat mewarisi nilai tersebut, asalkan klien jaringannya mendukungnya. Build yang diluncurkan terpisah di kemudian hari memiliki lingkungannya sendiri. Unduhan yang ditunda ke tahap build itu juga harus menerima proksinya di sana.

Simpan berkas hook di luar pohon sumber publik bila berisi detail koneksi privat. Argumen -D menyimpan jalur hook sebagai variabel CMake; set(ENV{...}) mengubah lingkungan proses yang berjalan alih-alih mengubah variabel cache menjadi setelan proksi.

Artikel terkait