CMake 3.16 qurma sistemi buraxılışı

Tərəfindən təqdim edildi platformalararası açıq quruluş skript generatorunun buraxılması CMake 3.16, Autotools-a alternativ kimi çıxış edir və KDE, LLVM/Clang, MySQL, MariaDB, ReactOS və Blender kimi layihələrdə istifadə olunur. CMake kodu C++ dilində yazılmışdır və BSD lisenziyası altında paylanmışdır.

CMake sadə skript dili, modullar vasitəsilə funksionallığı genişləndirmək vasitəsi, minimal sayda asılılıq (M4, Perl və ya Python ilə əlaqə yoxdur), keşləmə dəstəyi, çarpaz kompilyasiya üçün alətlərin mövcudluğu, quruluş yaratmaq üçün dəstək ilə diqqəti çəkir. geniş çeşidli qurma sistemləri və kompilyatorları üçün fayllar, test skriptlərini və tikinti paketlərini təyin etmək üçün mövcud ctest və cpack utilitləri, qurma parametrlərini interaktiv şəkildə təyin etmək üçün cmake-gui yardım proqramı.

Əsas irəliləyişlər:

  • Objective C (“OBJC”) və Objective dilləri üçün əlavə dəstək
    Layihə() və enable_language() əmrləri vasitəsilə aktivləşdirilə bilən C++ ("OBJCXX"), bundan sonra ".m" ".mm" fayllarındakı kod kimi deyil, Objective C və Objective C++ kodu kimi tərtib ediləcək. C++, əvvəllər olduğu kimi;

  • Solaris platformasında Clang kompilyatoru üçün əlavə dəstək;
  • Yeni əmr xətti seçimləri əlavə edildi: 0 və 1 qaytarma kodlarını çap etmək üçün “cmake -E true|false”; İz məlumatını fayla yönləndirmək üçün "cmake --trace-redirect="
    "stderr"; "cmake --loglevel" əmri digər əmrlərin adlarına uyğunlaşdırmaq üçün "--log-level" olaraq dəyişdirildi;

  • Əvvəlcədən tərtib zamanı istifadə olunan başlıq fayllarının siyahısını göstərmək üçün “target_precompile_headers()” əmri əlavə edildi (quraşdırma vaxtını azaldır);
  • Quraşdırmanı sürətləndirmək üçün generatorlarda mənbə fayllarının işlənməsi üçün toplu rejimi aktivləşdirən “UNITY_BUILD” xüsusiyyəti əlavə edildi;
  • Əlavə edilmiş əmrlər “find_file()”, “find_library()”, “find_path()”,
    Faylların müxtəlif kateqoriyaları üçün axtarış yollarını təyin edən dəyişənlərə uyğun olaraq faylları, kitabxanaları, yolları, paketləri və icra olunanları axtarmaq üçün "find_package()" və "find_program()".
    Dəyişənlər "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH", "CMAKE_FIND_USE_CMAKE_PATH", "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH", "CMAKE_FIND_USE_PACKAGE_ROOT_PATHENCOENT_PATHINE_MAKE_PATH_USE_"", və "CMAKE_FIND_USE_PACKAGE_RE" əsas axtarış yollarını idarə etmək üçün istifadə olunur GISTRY";

  • İcra olunan fayl və ya kitabxananı dinamik əlaqələndirərkən istifadə olunan kitabxanaların siyahısını rekursiv şəkildə əldə etməyə imkan verən “file()” əmrinə “file(GET_RUNTIME_DEPENDENCIES)” rejimi əlavə edildi. Rejim indi köhnəlmiş GetPrerequisites() əmrini əvəz etdi;
  • “ctest(1)” əmri hər bir test üçün tələb olunan resurslar əsasında testləri seriallaşdırmaq qabiliyyətini həyata keçirir;
  • "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" dəyişəni köhnəlib və "CMAKE_FIND_USE_PACKAGE_REGISTRY" ilə əvəz edilməlidir;
  • Təkmilləşdirilmiş AIX platforma dəstəyi. "ENABLE_EXPORTS" xassəsindən istifadə edərkən, icra olunan fayla əlavə olaraq, ".imp" uzantısı ilə yadda saxlanılan linker üçün idxal faylı yaradılır. "MODULE" seçimi ilə "add_library()" çağırılaraq yaradılan plaginlərdə bu fayl "target_link_libraries()" əmrindən istifadə etməklə əlaqələndirilərkən istifadə edilə bilər. AIX-də işləmə vaxtı əlaqələndirilməsi defolt olaraq qeyri-aktivdir, çünki CMake indi yükləmə zamanı əlaqə üçün bütün lazımi simvol məlumatını təmin edir. Dinamik kitabxanaların və ya yüklənə bilən modulların iş vaxtı əlaqələndirilməsindən istifadə etmək üçün siz “CMAKE_SHARED_LINKER_FLAGS” və “CMAKE_MODULE_LINKER_FLAGS” dəyişənləri vasitəsilə təyin olunan əlaqələndirici başlanğıc bayraqları siyahısında “-Wl, -G” seçimlərini açıq şəkildə göstərməlisiniz.

Mənbə: opennet.ru

Добавить комментарий