CMAKE_PROJECT_INCLUDE_BEFORE ဖြင့် ပရောက်စီ ပတ်ဝန်းကျင် သတ်မှတ်ခြင်း
wrapper က CMake အငြင်းပွားချက်များကို ခွင့်ပြုသော်လည်း ၎င်း၏ စတင်သည့် ပတ်ဝန်းကျင်ကို မဖော်ပြသောအခါ အစောပိုင်း ပရောဂျက် include ဖိုင်ကို အသုံးပြုပါ။
build wrapper သည် သင့်အား 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 လုပ်ငန်းစဉ်က နောက်ပိုင်း စတင်သော လုပ်ငန်းစဉ်များသည် ၎င်းတို့၏ ကွန်ရက် client များ ပံ့ပိုးပါက တန်ဖိုးများကို အမွေဆက်ခံနိုင်သည်။ နောက်ပိုင်း သီးခြား စတင်သော build သည် ၎င်း၏ ကိုယ်ပိုင် ပတ်ဝန်းကျင် ရှိသည်။ ထို build အဆင့်သို့ ရွှေ့ဆိုင်းထားသော ဒေါင်းလုဒ်သည်လည်း ထိုနေရာတွင် ၎င်း၏ ပရောက်စီကို ရရမည်။
hook ဖိုင်တွင် ကိုယ်ပိုင် ချိတ်ဆက်မှု အသေးစိတ်များ ပါဝင်ပါက ၎င်းကို အများသူငှာ ရင်းမြစ် သစ်ပင်ပြင်ပတွင် ထားပါ။ -D အငြင်းပွားချက်သည် hook လမ်းကြောင်းကို CMake ကိန်းရှင်အဖြစ် သိမ်းဆည်းသည်; set(ENV{...}) သည် cache ကိန်းရှင်ကို ပရောက်စီ သတ်မှတ်ချက်အဖြစ် ပြောင်းလဲခြင်းမဟုတ်ဘဲ လည်ပတ်နေသော လုပ်ငန်းစဉ်၏ ပတ်ဝန်းကျင်ကို ပြောင်းလဲသည်။