CMAKE_PROJECT_INCLUDE_BEFORE உடன் ப்ராக்ஸி சூழலை அமைக்கவும்
ஒரு ரேப்பர் CMake அளவுருக்களை அனுமதித்தாலும் அதன் தொடக்கச் சூழலை வெளிப்படுத்தாவிட்டால், ஆரம்பகால திட்ட include கோப்பைப் பயன்படுத்தவும்.
பில்ட் ரேப்பர் 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-ஐ விட முன்னதாக இயங்குகிறது. மொழி அமைப்பு அல்லது உள்ளமைந்த திட்டம் இந்தப் பாதையைத் தேவைப்படுத்தும்போது இந்த வேறுபாடு முக்கியம்.
உள்ளமைவு நேரத்தில் பொது இடைத்தரகர் வழியாக அனுமதிக்கப்படும் பொது பதிவிறக்கங்களுக்கு, HTTP ப்ராக்ஸி பட்டியல்லிருந்து HTTP URL மதிப்புகளைத் தேர்ந்தெடுக்கவும். hook இன்னும் தனக்கு முன் நடந்த வேலையைப் பாதிக்க முடியாது, முதல் project() அழைப்புக்கு முந்தைய பதிவிறக்கம் உட்பட. மேலும் இயங்குதளத்தின் நிரந்தர சூழல் அமைப்பையும் எழுதுவதில்லை.
இந்த CMake செயல்முறை பின்னர் தொடங்கும் செயல்முறைகள், அவற்றின் வலைப்பின்னல் கிளையண்டுகள் ஆதரித்தால், மதிப்புகளை மரபுரிமையாகப் பெறலாம். பின்னர் தனித்தனியாகத் தொடங்கப்பட்ட பில்டுக்கு அதன் சொந்த சூழல் உள்ளது. அந்தப் பில்ட் நிலைக்குத் தள்ளிப்போடப்பட்ட பதிவிறக்கமும் அங்கே அதன் ப்ராக்ஸியைப் பெற வேண்டும்.
hook கோப்பில் தனிப்பட்ட இணைப்பு விவரங்கள் இருந்தால் அதைப் பொது மூல மரத்திற்கு வெளியே வைத்திருங்கள். -D அளவுரு hook பாதையை CMake மாறியாகச் சேமிக்கிறது; set(ENV{...}) இயங்கும் செயல்முறையின் சூழலை மாற்றுகிறது, தற்காலிகச் சேமிப்பு மாறியைப் ப்ராக்ஸி அமைப்பாக மாற்றுவதில்லை.