CMake 3.16 yığın sistemi versiyası təqdim edildi.

Təqdim olunur zalım kross-platform açıq yığma ssenari generatoru CMake 3.16, Autotools-un alternativi kimi çıxış edir və KDE, LLVM/Clang, MySQL, MariaDB, ReactOS və Blender kimi layihələrdə istifadə olunur. CMake kodu C++ dilində yazılıb və BSD lisenziyası altında paylanılır.

CMake, sadə ssenari dili təqdim etməsi, modullar vasitəsilə funksionallığın genişləndirilməsi, minimal asılılıqlar (M4, Perl və ya Python-a bağlanma yoxdur), keşləmə dəstəyi, geniş yığma sistemləri və kompilatorlar üçün yığma fayllarının yaradılması üçün alətlər, test ssenariləri və paket yığımı üçün ctest və cpack utilitləri, yığma parametrlərinin interaktiv tənzimlənməsi üçün cmake-gui utilitinin olması ilə diqqət çəkir.

Əsas təkmilləşdirmələr:

  • Objective C («OBJC») və Objective C++ («OBJCXX») dillərinin dəstəyi əlavə edilib, hansılar ki, project() və enable_language() komandaları vasitəsilə aktivləşdirilə bilər, bundan sonra «.m» və «.mm» fayllarındakı kod Objective C və Objective C++ kodu kimi, əvvəllər olduğu kimi C++ kodu kimi deyil, tərtib ediləcək;
    Solaris platformasında Clang kompilyatorunun dəstəyi əlavə edilib;
  • Yeni əmr sətiri parametrləri əlavə edilib: «cmake -E true|false» 0 və 1 dönüş kodlarını çıxarmaq üçün; «cmake —trace-redirect=» izləmə məlumatlarını fayla yönləndirmək üçün, «stderr» yerinə;
  • «cmake —loglevel» komandası «—log-level» olaraq adlandırılıb ki, digər komandalarla uyğunlaşdırılsın;
    «target_precompile_headers()» komandası əlavə edilib, bu da öncədən tərtib edilən başlıq fayllarını siyahıya almağa imkan tanıyır (yığma vaxtını azaldır);
  • Yığma sürətləndirmək üçün generatorda orijinal faylların paket rejimini aktivləşdirən «UNITY_BUILD» xüsusiyyəti əlavə edilib;
  • Faylları, kitabxanaları, yolları, paketləri və icra olunabilir faylları müxtəlif kateqoriya axtarış yollarını müəyyən edən dəyişənlərə görə tapmaq üçün «find_file()», «find_library()», «find_path()», «find_package()» və «find_program()» komandaları əlavə edilib;
  • Axtarış yollarının əsas yollarını idarə etmək üçün «CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH», «CMAKE_FIND_USE_CMAKE_PATH», «CMAKE_FIND_USE_CMAKE_SYSTEM_PATH», «CMAKE_FIND_USE_PACKAGE_ROOT_PATH», «CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH» və «CMAKE_FIND_USE_PACKAGE_REGISTRY» dəyişənlərindən istifadə edilir;
    «file()» komandasında «file(GET_RUNTIME_DEPENDENCIES)» rejimi əlavə edilib ki, bu da icra olunabilir fayl və ya kitabxana zamanı dinamik bağlılıqda iştirak edən kitabxanaların siyahısını rekurziv olaraq çıxarmağa imkan tanıyır. Bu rejim, indi köhnəlmiş elan olunmuş GetPrerequisites() komandasını əvəz edib;
    «ctest(1)» komandasında hər test üçün tələb olunan resurslardan asılı olaraq testlərin serializasiyası imkanı həyata keçirilib;
  • Köhnəlmiş elan olunmuş «CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY» dəyişəni əvəzinə «CMAKE_FIND_USE_PACKAGE_REGISTRY» istifadə edilməlidir.
  • Köhnəlmiş elan olunmuş «CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY» dəyişəni əvəzinə «CMAKE_FIND_USE_PACKAGE_REGISTRY» istifadə edilməlidir.
  • Köhnəlmiş elan olunmuş «CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY» dəyişəni əvəzinə «CMAKE_FIND_USE_PACKAGE_REGISTRY» istifadə edilməlidir.
  • AIX platform support has been enhanced. When using the "ENABLE_EXPORTS" property, in addition to the executable file, an import file for the linker is now created and saved with the extension ".imp". In plugins created using the "add_library()" call with the "MODULE" option, this file can be used when linking with the command "target_link_libraries()". Runtime linking on AIX is disabled by default, as CMake now provides all necessary symbol information for binding at load time. To enable runtime linking of dynamic libraries or loadable modules, you should explicitly specify the "-Wl,-G" options in the linker flags list defined by the variables "CMAKE_SHARED_LINKER_FLAGS" and "CMAKE_MODULE_LINKER_FLAGS."

Mənbə: opennet.ru

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster