CMake 3.17.0 የግንባታ ስርዓት መለቀቅ

የቀረበው በ የመስቀል መድረክ ክፍት የግንባታ ስክሪፕት ጀነሬተር መልቀቅ ሲሜኬ 3.17, እንደ Autotools አማራጭ ሆኖ የሚያገለግል እና እንደ KDE፣ LLVM/Clang፣ MySQL፣ MariaDB፣ ReactOS እና Blender ባሉ ፕሮጀክቶች ውስጥ ጥቅም ላይ ይውላል። የCMake ኮድ በC++ ተጽፎ በ BSD ፍቃድ ተሰራጭቷል።

CMake ቀላል የስክሪፕት ቋንቋ፣ በሞጁሎች በኩል ተግባራዊነትን ለማራዘም የሚያስችል ዘዴ፣ አነስተኛ ቁጥር ያላቸው ጥገኞች (ከM4፣ Perl ወይም Python ጋር ምንም አይነት አስገዳጅነት የለም)፣ የመሸጎጫ ድጋፍ፣ የማጠቃለያ መሳሪያዎች መኖራቸውን፣ ግንባታን ለማመንጨት ድጋፍ በመስጠት ታዋቂ ነው። ለተለያዩ የግንባታ ስርዓቶች እና አቀናባሪዎች ፋይሎች፣ የሙከራ ስክሪፕቶችን እና ጥቅሎችን ለመገንባት የctest እና cpack መገልገያዎች መኖር፣ cmake-gui utility በግንባታ መለኪያዎችን በይነተገናኝ ማዋቀር።

ዋና ማሻሻያዎች:

  • በኒንጃ የመሳሪያ ኪት ላይ የተመሰረተ አዲስ የመሰብሰቢያ ስክሪፕት ጀነሬተር ታክሏል - “Ninja Multi-Config”፣ ይህም ከአሮጌው ጀነሬተር የሚለየው ብዙ የመሰብሰቢያ ውቅሮችን በአንድ ጊዜ የማካሄድ ችሎታ ነው።
  • ለእይታ ስቱዲዮ በስብሰባ ስክሪፕት ጀነሬተር ውስጥ ታየ ከእያንዳንዱ ውቅረት (በአንድ-ውቅር ምንጮች) ጋር የተቆራኙ የምንጭ ፋይሎችን የመግለጽ ችሎታ።
  • ለCUDA ("cuda_std_03", "cuda_std_14", ወዘተ.) ሜታ መለኪያዎችን የማዘጋጀት ችሎታ የማጠናከሪያ መለኪያዎችን (የስብስብ ባህሪያትን) ለማቀናበር መሳሪያዎች ላይ ተጨምሯል.
  • CUDA ሲጠቀሙ የአሂድ ቤተ-መጽሐፍትን አይነት ለመምረጥ "CMAKE_CUDA_RUNTIME_LIBRARY" እና "CUDA_RUNTIME_LIBRARY" ተለዋዋጮች ታክለዋል።
  • የCUDA ቋንቋን ሳያነቃ በሲስተሙ ላይ ያለውን የCUDA መሣሪያ ስብስብ ለማወቅ የ"FindCUDAToolkit" ሞጁሉን ታክሏል።
  • የፍለጋ ስራዎችን በሚሰሩበት ጊዜ ተጨማሪ ሊነበቡ የሚችሉ ምርመራዎችን ለማውጣት "--debug-find" ትዕዛዝ ታክሏል። ለተመሳሳይ ዓላማዎች የCMAKE_FIND_DEBUG_MODE ተለዋዋጭ ተጨምሯል።
  • በ cmake የመነጩ የውቅር ፋይሎችን "CURLCConfig.cmake" ወደ "FindCURL" ሞጁል በመጠቀም የCURL መሳሪያዎችን ለመፈለግ ድጋፍ ታክሏል። ይህን ባህሪ ለማሰናከል የCURL_NO_CURL_CMAKE ተለዋዋጭ ቀርቧል።
  • የ FindPython ሞጁል "ኮንዳ" በመጠቀም በሚተዳደሩ ምናባዊ አካባቢዎች ውስጥ የ Python ክፍሎችን የመፈለግ ችሎታ አክሏል.
  • የ ctest መገልገያ ምንም አይነት ፈተና ከሌለ ባህሪውን ለመወሰን የ"-no-tests=[ስህተት| ችላ በል]" አማራጮችን አክሏል እና "--ድገም" ለድጋሚ ሙከራዎች ሁኔታዎችን ለማዘጋጀት (እስኪያልፍ ድረስ፣ ከእረፍት ጊዜ በኋላ).
  • የ INTERFACE_LINK_OPTIONS፣ INTERFACE_LINK_DIRECTORIES እና INTERFACE_LINK_DEPENDS የግንባታ ዒላማ ባህሪያት አሁን በስታቲስቲክስ የተገነቡ ቤተ-መጻሕፍት ውስጣዊ ጥገኞች መካከል ተካትተዋል።
  • የMingW Toolkitን በሚጠቀሙበት ጊዜ የዲኤልኤል ፋይሎችን ከ find_library ትዕዛዝ ጋር መፈለግ በነባሪነት ተሰናክሏል (ይልቅ ነባሪ ሙከራው ".dll.a" ላይብረሪዎችን ማስመጣት ነው)።
  • በኒንጃ ጀነሬተር ውስጥ የኒንጃ መገልገያን የመምረጥ አመክንዮ አሁን በሚፈፀመው ፋይል ስም ላይ የተመካ አይደለም - በ PATH አካባቢ ተለዋዋጭ በተገለጹት መንገዶች ውስጥ የሚገኘው የመጀመሪያው ኒንጃ-ግንባታ ፣ ኒንጃ ወይም ሳሙ መገልገያ ጥቅም ላይ ይውላል።
  • ከተለየ "-E remove" እና "-E remove_directory" ትዕዛዞች ይልቅ ፋይሎችን እና ማውጫዎችን ለማስወገድ የሚያገለግል "-E rm" ትዕዛዝ ወደ ሴሜኬ ታክሏል።

ምንጭ: opennet.ru

አስተያየት ያክሉ