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

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

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

ዋና ማሻሻያዎች:

  • በኒንጃ ላይ የተመሰረተ የግንባታ ስክሪፕት ጀነሬተር ላይ የመጀመሪያ ቋንቋ ድጋፍ ታክሏል። ስዊፍት, በአፕል የተሰራ;
  • ከMSVC ABI ጋር ለሚገነባው የክላንግ ማጠናከሪያ ለዊንዶውስ ተለዋጭ ድጋፍ ታክሏል፣ ነገር ግን የጂኤንዩ አይነት የትዕዛዝ መስመር አማራጮችን ይጠቀማል።
  • በ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() መደወል የጥቅሉን ውቅር ፋይል መጀመሪያ ይፈልጋል፣ ምንም እንኳን አግኚው ቢኖርም።
  • በበይነገጽ ላይብረሪዎች የPUBLIC_HEADER እና PRIVATE_HEADER ንብረቶችን ለማዘጋጀት ድጋፍ ታክሏል፣በዚህም ራስጌዎች የPUBLIC_HEADER እና PRIVATE_HEADER ነጋሪ እሴቶችን በማለፍ የመጫኛ(TARGETS) ትእዛዝን በመጠቀም ማስተካከል ይችላሉ።
  • MSVC cl 19.05 እና አዳዲስ ስሪቶችን በመጠቀም ሲያጠናቅር በ Visual Studio Debugger ውስጥ "የእኔ ኮድ ብቻ" ሁነታን ለማንቃት CMAKE_VS_JUST_MY_CODE_DEBUGGING ተለዋዋጭ እና የታለመ ንብረት VS_JUST_MY_CODE_DEBUGGING ታክሏል፤
  • የ FindBoost ሞጁል በአዲስ መልክ ተዘጋጅቷል፣ ይህም አሁን በ Config እና Module ሁነታዎች ውስጥ ሌሎች የፍለጋ ሞጁሎች ባሉበት በይበልጥ ይሰራል።
  • የመልእክት() ትዕዛዙ አሁን ማስታወቂያ፣ VERBOSE፣ አይነቶችን ይደግፋል።
    ማረም እና ፈለግ;

  • በCMAKE_EXPORT_PACKAGE_REGISTRY ተለዋዋጭ በኩል በግልፅ ካልነቃ በስተቀር የ"መላክ(PACKAGE)" ትዕዛዝ አሁን ምንም አይሰራም።

ምንጭ: opennet.ru

አስተያየት ያክሉ