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
    Project() və enable_language() əmrləri vasitəsilə aktivləşdirilə bilən C++ ("OBJCXX"), bundan sonra ".m" ".mm" fayllarında olan kod əvvəllər olduğu kimi C++ kodu kimi deyil, Objective C və Objective C++ kodu kimi tərtib ediləcək;
  • Solaris platformasında Clang kompilyatoru üçün əlavə dəstək;
  • Yeni komanda xətti seçimləri əlavə edildi: 0 və 1 qaytarma kodlarını çap etmək üçün "cmake -E true|false"; "cmake --trace-redirect=" əvəzinə iz məlumatını fayla yönləndirmək üçün
    "stderr"; "cmake --loglevel" əmri digər əmrlərin adlandırılmasına uyğun olmaq üçün "--log-level" olaraq dəyişdirildi;
  • Əvvəlcədən tərtib zamanı istifadə olunan başlıq fayllarının siyahısına "target_precompile_headers()" əmri əlavə edildi (qurma vaxtını azaldır);
  • Quraşdırmanı sürətləndirmək üçün generatorlarda mənbə fayllarının işlənməsinin toplu rejimini aktivləşdirən "UNITY_BUILD" xüsusiyyəti əlavə edildi;
  • Əlavə edilmiş əmrlər "find_file()", "find_library()", "find_path()",
    "find_package()" və "find_program()" müxtəlif kateqoriyalı fayllar üçü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.
    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_PATH", "CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH" və "CMAKE_FIND_USE_PACKAGE_REGISTRY" axtarış üçün əsas yolları idarə etmək üçün istifadə olunur;
  • "file()" əmri icra olunan fayl və ya kitabxananı dinamik əlaqələndirərkən istifadə olunan kitabxanaların siyahısının rekursiv axtarışına imkan verən "file(GET_RUNTIME_DEPENDENCIES)" rejimini daxil etmək üçün yeniləndi. Bu rejim artıq köhnəlmiş GetPrerequisites() əmrini əvəz edir.
  • "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əldi və əvəzinə 'CMAKE_FIND_USE_PACKAGE_REGISTRY' istifadə edilməlidir;
  • AIX platforması üçün dəstək təkmilləşdirilmişdir. "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. CMake indi yükləmə zamanı əlaqələndirmək üçün bütün lazımi simvol məlumatlarını təmin etdiyi üçün icra vaxtı əlaqələndirilməsi AIX-də defolt olaraq qeyri-aktivdir. Dinamik kitabxanaların və ya yüklənə bilən modulların icra müddətinin əlaqələndirilməsini aktivləşdirmək üçün "CMAKE_SHARED_LINKER_FLAGS" və "CMAKE_MODULE_LINKER_FLAGS" dəyişənləri vasitəsilə müəyyən edilmiş əlaqələndirici icra bayraqları siyahısında "-Wl, -G" seçimlərini açıq şəkildə göstərin.

Mənbə: opennet.ru

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