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{...}) കാഷെ വേരിയബിളിനെ പ്രോക്സി ക്രമീകരണമാക്കി മാറ്റുന്നതിനു പകരം പ്രവർത്തിക്കുന്ന പ്രക്രിയയുടെ പരിസ്ഥിതി മാറ്റുന്നു.