बिल्ड रॅपर तुम्हाला CMake आर्ग्युमेंट जोडू देतो, पण ज्या वातावरणात CMake सुरू होतो ते लपवतो. लवकर प्रोजेक्ट हुक तुम्हाला कॉन्फिगर प्रक्रियेची प्रॉक्सी मूल्ये देण्यासाठी एक जागा देतो.

एक छोटी फाइल स्थिर, निरपेक्ष (absolute) मार्गावर साठवा, उदाहरणार्थ /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 प्रॉक्सी सूचीमधून HTTP URL मूल्ये निवडा. हुक अजूनही त्याआधी झालेल्या कामावर परिणाम करू शकत नाही, पहिल्या project() कॉलपूर्वीच्या डाउनलोडसह. ते ऑपरेटिंग सिस्टमची कायमस्वरूपी वातावरण सेटिंगही लिहीत नाही.

ही CMake प्रक्रिया नंतर सुरू करणाऱ्या प्रक्रिया, त्यांचे नेटवर्क क्लायंट समर्थन देत असल्यास, मूल्ये वारसा म्हणून घेऊ शकतात. नंतर वेगळे सुरू केलेले बिल्ड स्वतःचे वातावरण ठेवते. त्या बिल्ड टप्प्यावर पुढे ढकललेल्या डाउनलोडलाही तिथे त्याचा प्रॉक्सी मिळायला हवा.

हुक फाइलमध्ये खाजगी कनेक्शन तपशील असल्यास ती सार्वजनिक स्रोत वृक्षाबाहेर ठेवा. -D आर्ग्युमेंट हुक मार्ग CMake चल म्हणून साठवते; set(ENV{...}) चालू प्रक्रियेचे वातावरण बदलते, कॅश चल प्रॉक्सी सेटिंगमध्ये बदलत नाही.

संबंधित लेख