የመስቀል መድረክ ክፍት የግንባታ ስክሪፕት ጀነሬተር መልቀቅ , እንደ Autotools አማራጭ ሆኖ የሚያገለግል እና እንደ KDE፣ LLVM/Clang፣ MySQL፣ MariaDB፣ ReactOS እና Blender ባሉ ፕሮጀክቶች ውስጥ ጥቅም ላይ ይውላል። የCMake ኮድ በC++ ተጽፎ በ BSD ፍቃድ ተሰራጭቷል።
CMake ቀላል የስክሪፕት ቋንቋ፣ በሞጁሎች በኩል ተግባራዊነትን ለማራዘም የሚያስችል ዘዴ፣ አነስተኛ ቁጥር ያላቸው ጥገኞች (ከM4፣ Perl ወይም Python ጋር ምንም አይነት አስገዳጅነት የለም)፣ የመሸጎጫ ድጋፍ፣ የማጠቃለያ መሳሪያዎች መኖራቸውን፣ ግንባታን ለማመንጨት ድጋፍ በመስጠት ታዋቂ ነው። ለተለያዩ የግንባታ ስርዓቶች እና አቀናባሪዎች ፋይሎች፣ የሙከራ ስክሪፕቶችን እና ጥቅሎችን ለመገንባት የctest እና cpack መገልገያዎች መኖር፣ cmake-gui utility በግንባታ መለኪያዎችን በይነተገናኝ ማዋቀር።
ዋና :
- የመጀመሪያ ቋንቋ ድጋፍ በኒንጃ ላይ የተመሠረተ የግንባታ ስክሪፕት ጀነሬተር ላይ ተጨምሯል። , በአፕል የተዘጋጀ;
- ለዊንዶውስ የክላንግ ኮምፒውለር ተለዋጭ ድጋፍ ታክሏል፣ ይህም ከ MSVC ABI ጋር የሚቃረን ነገር ግን የ GNU አይነት የትዕዛዝ መስመር አማራጮችን የሚጠቀም ነው፤
- በMSVC ABI (MS Visual Studio) ላይ ተመስርተው ኮምፒውተሮች የሚጠቀሙባቸውን የሩጫ ጊዜ ቤተ-መጻሕፍት ለመምረጥ CMAKE_MSVC_RUNTIME_LIBRARY እና MSVC_RUNTIME_LIBRARY ተለዋዋጮችን አክለዋል፤
- እንደ MSVC ላሉ ኮምፓይለሮች፣ CMAKE__FLAGS እንደ "/W3" ያሉ የማስጠንቀቂያ መቆጣጠሪያ ባንዲራዎችን በነባሪነት አይዘረዝርም፤
- ለእያንዳንዱ የኮድ ፋይል የCMAKE__COMPILER_ID እና የLANGUAGE ተለዋዋጮችን በመጠቀም ለዒላማ ፋይሎች የኮምፓይለር አማራጮችን ለመግለጽ "COMPILE_LANG_AND_ID:" የተጨመረ የጄነሬተር አገላለጽ፤
- በጄነሬተር አገላለጾች C_COMPILER_ID፣ CXX_COMPILER_ID ውስጥ፣
CUDA_COMPILER_ID፣ Fortran_COMPILER_ID፣ COMPILE_LANGUAGE፣
COMPILE_LANG_AND_ID እና PLATFORM_ID አንድን እሴት በኮማ የተለየ ዝርዝር ለማዛመድ ድጋፍ አክለዋል፤ - የCMAKE_FIND_PACKAGE_PREFER_CONFIG ተለዋዋጭ ታክሏል፣ ይህም የFind_package() መጀመሪያ የጥቅል ውቅር ፋይል እንዲፈልግ ያደርጋል፣ ምንም እንኳን የFind_module ቢኖርም፤
- ለበይነገጽ ቤተ-መጻሕፍት፣ የPUBLIC_HEADER እና PRIVATE_HEADER ባህሪያትን ለማዋቀር ድጋፍ ታክሏል፣ እነዚህም የተገለጹት ራስጌዎች የPUBLIC_HEADER እና PRIVATE_HEADER ክርክሮችን በማለፍ የinstall(TARGETS) ትዕዛዝን በመጠቀም ሊጫኑ የሚችሉባቸው ናቸው፤
- ከ MSVC cl 19.05 እና ከዚያ በኋላ ሲጠናቀቅ በ Visual Studio Debugger ውስጥ "Just My Code" ሁነታን ለማንቃት የ CMAKE_VS_JUST_MY_CODE_DEBUGGING ተለዋዋጭ እና የ VS_JUST_MY_CODE_DEBUGGING ኢላማ ባህሪን አክሏል፤
- የFindBoost ሞጁል እንደገና ተቀይሯል፣ አሁን ሌሎች የፍለጋ ሞጁሎች ሲኖሩ በConfig እና Module ሁነታዎች ውስጥ የበለጠ ወጥነት ባለው መልኩ ይሰራል፤
- የmessage() ትዕዛዝ አሁን የNOTICE እና የVERBOSE አይነቶችን ይደግፋል።
አርም እና ትራሴ፤ - የ"export(PACKAGE)" ትዕዛዝ አሁን በCMAKE_EXPORT_PACKAGE_REGISTRY ተለዋዋጭ በኩል በግልጽ ካልነቃ በስተቀር ምንም አያደርግም።
ምንጭ: opennet.ru
