ຕັ້ງຄ່າສະພາບແວດລ້ອມພຣັອກຊີດ້ວຍ CMAKE_PROJECT_INCLUDE_BEFORE
ໃຊ້ໄຟລ໌ include ຂອງໂຄງການຕົ້ນໆ ເມື່ອ wrapper ອະນຸຍາດ argument ຂອງ CMake ແຕ່ບໍ່ເປີດເຜີຍສະພາບແວດລ້ອມການເລີ່ມຕົ້ນຂອງມັນ.
Wrapper ການສ້າງອາດຈະໃຫ້ທ່ານເພີ່ມ argument ຂອງ 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.cmakeCMAKE_PROJECT_INCLUDE_BEFORE ລວມໄຟລ໌ໄວ້ຕອນເລີ່ມຕົ້ນຂອງທຸກການເອີ້ນ project(). ດັ່ງນັ້ນມັນຈຶ່ງເຮັດວຽກກ່ອນ CMAKE_PROJECT_INCLUDE ທີ່ເຮັດວຽກຕອນທ້າຍຂອງການເອີ້ນນັ້ນ. ຄວາມແຕກຕ່າງນີ້ສຳຄັນເມື່ອການຕັ້ງພາສາ ຫຼື ໂຄງການຊ້ອນໃນຕ້ອງການເສັ້ນທາງນີ້.
ສຳລັບການດາວໂຫຼດສາທາລະນະຕອນຕັ້ງຄ່າທີ່ໄດ້ຮັບອະນຸຍາດຜ່ານຕົວກາງສາທາລະນະ ໃຫ້ເລືອກຄ່າ URL ຂອງ HTTP ຈາກ ລາຍການພຣັອກຊີ HTTP. Hook ຍັງບໍ່ສາມາດກະທົບວຽກທີ່ເຮັດກ່ອນໜ້າມັນ ລວມທັງການດາວໂຫຼດກ່ອນການເອີ້ນ project() ຄັ້ງທຳອິດ. ມັນຍັງບໍ່ຂຽນການຕັ້ງຄ່າສະພາບແວດລ້ອມຂອງລະບົບປະຕິບັດການແບບຖາວອນ.
ຂະບວນການທີ່ຂະບວນການ CMake ນີ້ເລີ່ມພາຍຫຼັງສາມາດສືບທອດຄ່າເຫຼົ່ານີ້ໄດ້ ຖ້າ client ເຄືອຂ່າຍຂອງພວກມັນຮອງຮັບ. Build ທີ່ເລີ່ມແຍກຕ່າງຫາກພາຍຫຼັງມີສະພາບແວດລ້ອມຂອງມັນເອງ. ການດາວໂຫຼດທີ່ເລື່ອນໄປຂັ້ນຕອນ build ນັ້ນກໍຕ້ອງໄດ້ຮັບພຣັອກຊີຢູ່ທີ່ນັ້ນເຊັ່ນກັນ.
ເກັບໄຟລ໌ hook ໄວ້ນອກຕົ້ນໄມ້ source ສາທາລະນະ ເມື່ອມັນມີຂໍ້ມູນການເຊື່ອມຕໍ່ສ່ວນຕົວ. argument -D ເກັບເສັ້ນທາງ hook ເປັນຕົວແປ CMake; set(ENV{...}) ປ່ຽນສະພາບແວດລ້ອມຂອງຂະບວນການທີ່ກຳລັງແລ່ນ ແທນທີ່ຈະປ່ຽນຕົວແປ cache ໃຫ້ເປັນການຕັ້ງຄ່າພຣັອກຊີ.