CMake 3.17.0 တည်ဆောက်မှုစနစ်ကို ဖြန့်ချိသည်။

မိတ်ဆက်ပေးသည်။ cross-platform တွင် open build script generator ကို ထုတ်ပေးသည်။ CMake ၃.၁၇Autotools ၏ အခြားရွေးချယ်စရာအဖြစ် လုပ်ဆောင်ပြီး KDE၊ LLVM/Clang၊ MySQL၊ MariaDB၊ ReactOS နှင့် Blender ကဲ့သို့သော ပရောဂျက်များတွင် အသုံးပြုပါသည်။ CMake ကုဒ်ကို C++ ဖြင့် ရေးသားထားပြီး BSD လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။

CMake သည် ရိုးရှင်းသော scripting language၊ modules များမှတဆင့်လုပ်ဆောင်နိုင်စွမ်းကိုတိုးချဲ့ခြင်းနည်းလမ်းများ၊ အနည်းငယ်မျှသောမှီခိုမှုအရေအတွက် (M4၊ Perl သို့မဟုတ် Python နှင့်ဆက်စပ်မှုမရှိသော)၊ caching ပံ့ပိုးမှု၊ cross-compilation အတွက် tools များပါဝင်မှု၊ တည်ဆောက်မှုဖန်တီးရန်ပံ့ပိုးမှုတို့အတွက် မှတ်သားဖွယ်ကောင်းပါသည်။ တည်ဆောက်မှုစနစ်များနှင့် စုစည်းမှုများစွာအတွက် ဖိုင်များ၊ စမ်းသပ် script များနှင့် တည်ဆောက်မှုပက်ကေ့ချ်များကို သတ်မှတ်ခြင်းအတွက် တည်ရှိမှု ctest နှင့် cpack utilities၊ တည်ဆောက်မှုဘောင်များကို အပြန်အလှန်တုံ့ပြန်ရန်အတွက် cmake-gui utility။

အဓိက တိုးတက်မှုများ:

  • Ninja ကိရိယာအစုံအလင်ကိုအခြေခံ၍ ကွန်ပြူတာ Script ဂျင်နရေတာအသစ်ကို ထည့်သွင်းလိုက်သည် - “Ninja Multi-Config” သည် ပရိဘောဂအများအပြားကို တစ်ပြိုင်နက်တည်း လုပ်ဆောင်နိုင်စွမ်းရှိသည့် ဂျင်နရေတာဟောင်းနှင့် ကွဲပြားသည်။
  • Visual Studio အတွက် assembly script generator တွင် သည်ထင်ရှား ဖွဲ့စည်းမှုတစ်ခုစီနှင့်ဆက်စပ်နေသော အရင်းအမြစ်ဖိုင်များကို သတ်မှတ်နိုင်မှု (per-config အရင်းအမြစ်များ)။
  • CUDA အတွက် meta parameters များ (“cuda_std_03”၊ “cuda_std_14” စသည်ဖြင့်) ကို compiler parameters များသတ်မှတ်ခြင်း (Compile Features) အတွက် tools များသို့ ပေါင်းထည့်ထားပါသည်။
  • CUDA ကိုအသုံးပြုသည့်အခါ runtime စာကြည့်တိုက်အမျိုးအစားကိုရွေးချယ်ရန် "CMAKE_CUDA_RUNTIME_LIBRARY" နှင့် "CUDA_RUNTIME_LIBRARY" တို့ကို ထည့်သွင်းထားပါသည်။
  • CUDA ဘာသာစကားကို မဖွင့်ဘဲ စနစ်တွင် ရရှိနိုင်သော CUDA ကိရိယာအစုံကို ဆုံးဖြတ်ရန် "FindCUDAToolkit" မော်ဂျူးကို ပေါင်းထည့်ခဲ့သည်။
  • ရှာဖွေမှုလုပ်ငန်းများလုပ်ဆောင်သောအခါတွင် ထပ်လောင်းဖတ်ရှုနိုင်သော အမှားရှာဖွေခြင်းများကို ထုတ်ပေးရန်အတွက် "--debug-find" ကွန်မန်းကို ထည့်သွင်းခဲ့သည်။ အလားတူရည်ရွယ်ချက်များအတွက်၊ CMAKE_FIND_DEBUG_MODE ကိန်းရှင်ကို ပေါင်းထည့်ထားပါသည်။
  • “CURLConfig.cmake” ကို “FindCURL” မော်ဂျူးသို့ cmake မှထုတ်လုပ်ထားသော ဖွဲ့စည်းမှုပုံစံဖိုင်များ အသုံးပြု၍ CURL ကိရိယာများကို ရှာဖွေခြင်းအတွက် ပံ့ပိုးမှု ပေါင်းထည့်ထားသည်။ ဤအပြုအမူကို ပိတ်ရန်၊ CURL_NO_CURL_CMAKE ကိန်းရှင်ကို ပေးထားသည်။
  • FindPython module သည် “conda” ကို အသုံးပြု၍ စီမံခန့်ခွဲသည့် virtual ပတ်၀န်းကျင်တွင် Python အစိတ်အပိုင်းများကို ရှာဖွေရန် စွမ်းရည်ကို ထည့်သွင်းထားသည်။
  • ctest utility တွင် “--no-tests=[error|ignore]” ရွေးချယ်စရာများကို စစ်ဆေးမှုမရှိသည့်အခါ အပြုအမူကို သတ်မှတ်ရန်နှင့် “--repeat” ပြန်လည်လုပ်ဆောင်ခြင်းအတွက် အခြေအနေများကို သတ်မှတ်ရန် (မလွန်မီအထိ၊ အချိန်လွန်ပြီးနောက်)။
  • စုဝေးမှုပစ်မှတ်ဂုဏ်သတ္တိများ INTERFACE_LINK_OPTIONS၊ INTERFACE_LINK_DIRECTORIES နှင့် INTERFACE_LINK_DEPENDS တို့ကို တည်ငြိမ်စွာစုစည်းထားသော စာကြည့်တိုက်များ၏ အတွင်းပိုင်းမှီခိုမှုများကြားသို့ လွှဲပြောင်းလိုက်ပါပြီ။
  • MinGW ကိရိယာအစုံကို အသုံးပြုသောအခါ၊ find_library အမိန့်ဖြင့် DLL ဖိုင်များကို ရှာဖွေခြင်းကို မူရင်းအားဖြင့် ပိတ်ထားသည် (ထိုအစား၊ မူရင်းကြိုးပမ်းမှုမှာ ".dll.a" စာကြည့်တိုက်များကို တင်သွင်းရန်ဖြစ်သည်)။
  • Ninja generator ရှိ နင်ဂျာ ဆော့ဖ်ဝဲလ်ကို ရွေးချယ်ခြင်းအတွက် ယုတ္တိဗေဒသည် ယခု လုပ်ဆောင်နိုင်သော ဖိုင်၏ အမည်ပေါ်တွင် မမူတည်ပါ - PATH ပတ်၀န်းကျင် ကိန်းရှင်မှ သတ်မှတ်ထားသော လမ်းကြောင်းများတွင် တွေ့ရသော ပထမဆုံး ninja-build၊ ninja သို့မဟုတ် samu utility ကို အသုံးပြုပါသည်။
  • သီးခြား "-E ဖယ်ရှားရန်" နှင့် "-E remove_directory" ညွှန်ကြားချက်များအစား ဖိုင်များနှင့် လမ်းညွှန်ချက်များကို ဖယ်ရှားရန် အသုံးပြုနိုင်သည့် cmake တွင် "-E rm" ညွှန်ကြားချက်ကို ပေါင်းထည့်ခဲ့သည်။

source: opennet.ru

မှတ်ချက် Add