CMake 3.15 build სისტემის გამოშვება

შედგა ჯვარედინი პლატფორმის ღია აშენების სკრიპტების გენერატორის გამოშვება CMake 3.15, რომელიც მოქმედებს როგორც Autotools-ის ალტერნატივა და გამოიყენება პროექტებში, როგორიცაა KDE, LLVM/Clang, MySQL, MariaDB, ReactOS და Blender. CMake კოდი იწერება C++-ში და ნაწილდება BSD ლიცენზიით.

CMake გამოირჩევა მარტივი სკრიპტირების ენის მიწოდებით, მოდულების საშუალებით ფუნქციონირების გაფართოების საშუალებით, დამოკიდებულებების მინიმალური რაოდენობით (არ არის მიბმული M4-თან, Perl-თან ან Python-თან), ქეშირების მხარდაჭერით, ჯვარედინი კომპილაციის ინსტრუმენტების არსებობით, კონსტრუქციის გენერირების მხარდაჭერით. ფაილები build სისტემებისა და შემდგენელების ფართო სპექტრისთვის, ყოფნა ctest და cpack უტილიტები ტესტის სკრიპტებისა და შენობის პაკეტების განსაზღვრისთვის, cmake-gui უტილიტა build-ის პარამეტრების ინტერაქტიულად დასაყენებლად.

მთავარი გაუმჯობესებები:

  • საწყისი ენის მხარდაჭერა დაემატა Ninja-ზე დაფუძნებულ build სკრიპტების გენერატორს SwiftApple-ის მიერ შემუშავებული;
  • დამატებულია მხარდაჭერა Windows-ისთვის Clang შემდგენელის ვარიანტისთვის, რომელიც აშენებულია MSVC ABI-ით, მაგრამ იყენებს GNU-ის სტილის ბრძანების სტრიქონის ვარიანტებს;
  • დამატებულია CMAKE_MSVC_RUNTIME_LIBRARY და MSVC_RUNTIME_LIBRARY ცვლადები MSVC ABI-ზე (MS Visual Studio) შემდგენლების მიერ გამოყენებული გაშვების ბიბლიოთეკების შესარჩევად;
  • შემდგენელებისთვის, როგორიცაა MSVC, CMAKE__FLAGS ნაგულისხმევად წყვეტს გამაფრთხილებელი კონტროლის დროშების ჩამონათვალს, როგორიცაა "/W3";
  • დაამატა გენერატორის გამოთქმა „COMPILE_LANG_AND_ID:“ სამიზნე ფაილებისთვის შემდგენელის ვარიანტების დასადგენად, CMAKE__COMPILER_ID და LANGUAGE ცვლადების გამოყენებით თითოეული კოდის ფაილისთვის;
  • გენერატორის გამონათქვამებში 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 თვისებების დასაყენებლად, რომლითაც სათაურების დაყენება შესაძლებელია install(TARGETS) ბრძანების გამოყენებით PUBLIC_HEADER და PRIVATE_HEADER არგუმენტების გადაცემით;
  • დამატებულია CMAKE_VS_JUST_MY_CODE_DEBUGGING ცვლადი და სამიზნე თვისება VS_JUST_MY_CODE_DEBUGGING, რათა ჩართოთ "Just My Code" რეჟიმი Visual Studio-ის გამართვისას MSVC cl 19.05 და უფრო ახალი ვერსიების გამოყენებით შედგენისას;
  • განახლდა FindBoost მოდული, რომელიც ახლა უფრო ჰოლისტურად მუშაობს Config და Module რეჟიმებში სხვა საძიებო მოდულების თანდასწრებით;
  • message() ბრძანება ახლა მხარს უჭერს ტიპებს NOTICE, VERBOSE,
    გამართვა და TRACE;

  • "ექსპორტი(PACKAGE)" ბრძანება ახლა არაფერს აკეთებს, თუ ცალსახად არ არის ჩართული CMAKE_EXPORT_PACKAGE_REGISTRY ცვლადის მეშვეობით.

წყარო: opennet.ru

ახალი კომენტარის დამატება