Ṣètò àyíká proxy pẹ̀lẹ́ CMAKE_PROJECT_INCLUDE_BEFORE
Lo fáìlì include iṣẹ́ àkọ́kọ́ nígbà tí wrapper gba àwọn àríyànjiyàn CMake láàyè ṣùgbọ́n kò ṣí àyíká ìbẹ̀rẹ̀ rẹ̀ payá.
Build wrapper lè gbà ọ́ láàyè láti fi àwọn àríyànjiyàn CMake kún un nígbà tí ó ń fi àyíká tí wọ́n ń fi bẹ̀rẹ̀ CMake pamọ́. Hook iṣẹ́ àkọ́kọ́ fún ọ ní ibi kan ṣoṣo láti pèsè àwọn iye proxy ti ìlànà ìṣètò.
Fi fáìlì kékeré pamọ́ sí ọ̀nà pípé tí kò yí padà, bí àpẹẹrẹ /home/alex/cmake/proxy-env.cmake:
set(ENV{http_proxy} "http://proxy.example:8080")
set(ENV{https_proxy} "http://proxy.example:8080")Fi fáìlì yẹn ránṣẹ́ sí ìṣètò:
cmake -S . -B build -DCMAKE_PROJECT_INCLUDE_BEFORE=/home/alex/cmake/proxy-env.cmakeCMAKE_PROJECT_INCLUDE_BEFORE ń fi fáìlì náà kún ìbẹ̀rẹ̀ gbogbo ìpè project(). Nítorí náà ó ń ṣiṣẹ́ kí ó tó CMAKE_PROJECT_INCLUDE, tí ó ń ṣiṣẹ́ ní ìparí ìpè yẹn. Ìyàtọ̀ yìí ṣe pàtàkì nígbà tí ìṣètò èdè tàbí iṣẹ́ tí ó wà nínú ẹlòmíràn nílò ọ̀nà yìí.
Fún àwọn ìgbàsílẹ̀ gbangba ní àkókò ìṣètò tí a gbà láàyè nípasẹ̀ alárinà gbangba, yan àwọn iye HTTP URL láti àkójọ proxy HTTP. Hook kò tíì lè ní ipa lórí iṣẹ́ tí ó ṣẹlẹ̀ ṣáájú rẹ̀, pẹ̀lú ìgbàsílẹ̀ kan ṣáájú ìpè project() àkọ́kọ́. Kò tún kọ ètò àyíká ẹ̀rọ ìṣiṣẹ́ tí ó wà pẹ́ títí.
Àwọn ìlànà tí ìlànà CMake yìí bẹ̀rẹ̀ lẹ́yìn náà lè jogún àwọn iye náà, níwọ̀n bí àwọn oníbàárà nẹ́tíwọ́kì wọn bá ṣe àtìlẹ́yìn wọ́n. Ìkọ́ tí a bẹ̀rẹ̀ lọ́nà ọ̀tọ̀ lẹ́yìn náà ní àyíká tirẹ̀. Ìgbàsílẹ̀ tí a fi dádúró sí ìpele ìkọ́ yẹn gbọ́dọ̀ gba proxy rẹ̀ níbẹ̀ pẹ̀lú.
Pa fáìlì hook mọ́ ní ìta igi orísun gbangba nígbà tí ó bá ní àwọn àlàyé ìsopọ̀ àdáni. Àríyànjiyàn -D ń fi ọ̀nà hook pamọ́ gẹ́gẹ́ bí oníyipada CMake; set(ENV{...}) ń yí àyíká ìlànà tí ń ṣiṣẹ́ padà dípò yí oníyipada cache padà sí ètò proxy.