CMAKE_PROJECT_INCLUDE_BEFORE प्रयोग गरी प्रक्सी वातावरण सेट गर्नुहोस्
र्यापरले CMake आर्गुमेन्ट अनुमति दिन्छ तर यसको लन्च वातावरण खुलासा गर्दैन भने प्रारम्भिक प्रोजेक्ट include फाइल प्रयोग गर्नुहोस्।
बिल्ड र्यापरले तपाईंलाई 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.cmakeCMAKE_PROJECT_INCLUDE_BEFORE ले प्रत्येक project() कलको सुरुमा फाइल समावेश गर्छ। त्यसैले यो त्यो कलको अन्त्यमा चल्ने CMAKE_PROJECT_INCLUDE भन्दा पहिले चल्छ। भाषा सेटअप वा नेस्टेड प्रोजेक्टलाई यो मार्ग चाहिँदा यो भिन्नता महत्त्वपूर्ण हुन्छ।
कन्फिगरको समयमा सार्वजनिक मध्यस्थकर्तामार्फत अनुमति दिइएका सार्वजनिक डाउनलोडका लागि, HTTP प्रक्सी सूचीबाट HTTP URL मानहरू छान्नुहोस्। हुकले अझै आफ्नो अघि भएको कामलाई असर गर्न सक्दैन, पहिलो project() कल अघिको डाउनलोड पनि समावेश गरी। यसले अपरेटिङ सिस्टमको स्थायी वातावरण सेटिङ पनि लेख्दैन।
यो CMake प्रक्रियाले पछि सुरु गर्ने प्रक्रियाहरूले, तिनका नेटवर्क क्लाइन्टहरूले समर्थन गरेमा, मानहरू वंशाणुगत रूपमा लिन सक्छन्। पछि छुट्टै सुरु गरिएको बिल्डको आफ्नै वातावरण हुन्छ। त्यो बिल्ड चरणमा सारिएको डाउनलोडले पनि त्यहाँ आफ्नो प्रक्सी पाउनुपर्छ।
हुक फाइलमा निजी जडान विवरण छ भने यसलाई सार्वजनिक स्रोत रूखबाहिर राख्नुहोस्। -D आर्गुमेन्टले हुक मार्गलाई CMake चरका रूपमा भण्डारण गर्छ; set(ENV{...}) ले चलिरहेको प्रक्रियाको वातावरण परिवर्तन गर्छ, क्यास चरलाई प्रक्सी सेटिङमा बदल्दैन।