ಬಿಲ್ಡ್ ರ್ಯಾಪರ್ ನಿಮಗೆ CMake ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಸೇರಿಸಲು ಅವಕಾಶ ನೀಡಬಹುದು, ಆದರೆ CMake ಪ್ರಾರಂಭವಾಗುವ ಪರಿಸರವನ್ನು ಮರೆಮಾಡುತ್ತದೆ. ಆರಂಭಿಕ ಪ್ರಾಜೆಕ್ಟ್ hook ಕಾನ್ಫಿಗರ್ ಪ್ರಕ್ರಿಯೆಯ ಪ್ರಾಕ್ಸಿ ಮೌಲ್ಯಗಳನ್ನು ಒದಗಿಸಲು ಒಂದು ಸ್ಥಳ ನೀಡುತ್ತದೆ.

ಸಣ್ಣ ಫೈಲ್ ಅನ್ನು ಸ್ಥಿರವಾದ ಸಂಪೂರ್ಣ (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 ಮೌಲ್ಯಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ. hook ಇನ್ನೂ ತನಗಿಂತ ಮೊದಲು ನಡೆದ ಕೆಲಸವನ್ನು ಪ್ರಭಾವಿಸಲಾರದು, ಮೊದಲ project() ಕರೆಗಿಂತ ಮೊದಲಿನ ಡೌನ್‌ಲೋಡ್ ಸೇರಿದಂತೆ. ಅದು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂನ ಶಾಶ್ವತ ಪರಿಸರ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನೂ ಬರೆಯುವುದಿಲ್ಲ.

ಈ CMake ಪ್ರಕ್ರಿಯೆಯು ನಂತರ ಪ್ರಾರಂಭಿಸುವ ಪ್ರಕ್ರಿಯೆಗಳು, ಅವುಗಳ ನೆಟ್‌ವರ್ಕ್ ಕ್ಲೈಂಟ್‌ಗಳು ಬೆಂಬಲಿಸಿದರೆ, ಮೌಲ್ಯಗಳನ್ನು ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯಬಹುದು. ನಂತರ ಪ್ರತ್ಯೇಕವಾಗಿ ಪ್ರಾರಂಭಿಸಿದ build ತನ್ನದೇ ಪರಿಸರವನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಆ build ಹಂತಕ್ಕೆ ಮುಂದೂಡಿದ ಡೌನ್‌ಲೋಡ್ ಕೂಡ ಅಲ್ಲಿ ತನ್ನ ಪ್ರಾಕ್ಸಿ ಪಡೆಯಬೇಕು.

hook ಫೈಲ್ ಖಾಸಗಿ ಸಂಪರ್ಕ ವಿವರಗಳನ್ನು ಹೊಂದಿದ್ದರೆ ಅದನ್ನು ಸಾರ್ವಜನಿಕ ಮೂಲ ವೃಕ್ಷದ ಹೊರಗೆ ಇರಿಸಿ. -D ಆರ್ಗ್ಯುಮೆಂಟ್ hook ಪಥವನ್ನು CMake ವೇರಿಯಬಲ್ ಆಗಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ; set(ENV{...}) ಚಾಲನೆಯಲ್ಲಿರುವ ಪ್ರಕ್ರಿಯೆಯ ಪರಿಸರವನ್ನು ಬದಲಿಸುತ್ತದೆ, cache ವೇರಿಯಬಲ್ ಅನ್ನು ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್ ಆಗಿ ಪರಿವರ್ತಿಸುವುದಿಲ್ಲ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು