Tetapkan persekitaran proksi dengan CMAKE_PROJECT_INCLUDE_BEFORE
Gunakan fail include projek awal apabila pembalut membenarkan argumen CMake tetapi tidak mendedahkan persekitaran pelancarannya.
Pembalut binaan mungkin membenarkan anda menambah argumen CMake sambil menyembunyikan persekitaran yang digunakan untuk melancarkan CMake. Hook projek awal memberi anda satu tempat untuk membekalkan nilai proksi proses konfigurasi.
Simpan fail kecil pada laluan mutlak yang stabil, contohnya /home/alex/cmake/proxy-env.cmake:
set(ENV{http_proxy} "http://proxy.example:8080")
set(ENV{https_proxy} "http://proxy.example:8080")Serahkan fail itu kepada konfigurasi:
cmake -S . -B build -DCMAKE_PROJECT_INCLUDE_BEFORE=/home/alex/cmake/proxy-env.cmakeCMAKE_PROJECT_INCLUDE_BEFORE menyertakan fail itu pada permulaan setiap panggilan project(). Oleh itu ia berjalan lebih awal daripada CMAKE_PROJECT_INCLUDE, yang berjalan pada penghujung panggilan tersebut. Perbezaan ini penting apabila persediaan bahasa atau projek bersarang memerlukan laluan itu.
Untuk muat turun awam semasa konfigurasi yang dibenarkan melalui perantara awam, pilih nilai URL HTTP daripada senarai proksi HTTP. Hook itu masih tidak boleh mempengaruhi kerja yang berjalan sebelum itu, termasuk muat turun sebelum panggilan project() pertama. Ia juga tidak menulis tetapan persekitaran sistem pengendalian yang kekal.
Proses yang dimulakan selepas itu oleh proses CMake ini boleh mewarisi nilai tersebut, dengan syarat klien rangkaian mereka menyokongnya. Binaan kemudian yang dilancarkan secara berasingan mempunyai persekitarannya sendiri. Muat turun yang ditangguhkan ke peringkat binaan itu juga mesti menerima proksinya di sana.
Simpan fail hook di luar pepohon sumber awam apabila ia mengandungi butiran sambungan peribadi. Argumen -D menyimpan laluan hook sebagai pemboleh ubah CMake; set(ENV{...}) mengubah persekitaran proses yang sedang berjalan dan bukannya menjadikan pemboleh ubah cache sebagai tetapan proksi.