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.cmake

CMAKE_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.

Àwọn àpilẹ̀kọ tó jọra