CMake 3.16 qurish tizimining chiqarilishi

Tanishtirdi platformalararo ochiq skript generatorini chiqarish CMake 3.16, bu Autotools-ga muqobil bo'lib, KDE, LLVM/Clang, MySQL, MariaDB, ReactOS va Blender kabi loyihalarda qo'llaniladi. CMake kodi C++ da yozilgan va BSD litsenziyasi ostida tarqatiladi.

CMake oddiy skript tilini, modullar orqali funksionallikni kengaytirish vositasini, minimal miqdordagi bog'liqlikni (M4, Perl yoki Python bilan bog'lanmaydi), keshlashni qo'llab-quvvatlashni, o'zaro kompilyatsiya qilish vositalarining mavjudligini, qurilishni yaratishni qo'llab-quvvatlashi bilan ajralib turadi. keng assortimentdagi qurish tizimlari va kompilyatorlari uchun fayllar, test skriptlari va qurish paketlarini aniqlash uchun ctest va cpack yordam dasturlari, qurish parametrlarini interaktiv sozlash uchun cmake-gui yordam dasturi.

asosiy yaxshilanishlar:

  • Objective C (“OBJC”) va Objective tillari uchun qo‘shimcha qo‘llab-quvvatlash
    Project() va enable_language() buyruqlari orqali yoqilishi mumkin bo'lgan C++ ("OBJCXX"), shundan so'ng ".m" ".mm" fayllaridagi kodlar sifatida emas, balki Objective C va Objective C++ kodi sifatida kompilyatsiya qilinadi. C++, avvalgidek;

  • Solaris platformasida Clang kompilyatori uchun qo'shimcha yordam;
  • Yangi buyruq qatori opsiyalari qo'shildi: 0 va 1 qaytarish kodlarini chop etish uchun “cmake -E true|false”; "cmake --trace-redirect=" o'rniga kuzatuv ma'lumotlarini faylga yo'naltirish uchun
    "stderr"; "cmake --loglevel" buyrug'i boshqa buyruqlar nomlariga mos kelishi uchun "--log-level" deb o'zgartirildi;

  • Oldindan kompilyatsiya paytida foydalaniladigan sarlavha fayllari ro'yxatini ro'yxatga olish uchun "target_precompile_headers()" buyrug'i qo'shildi (qurilish vaqtini qisqartiradi);
  • Qurilishni tezlashtirish uchun generatorlarda manba fayllarni qayta ishlash uchun ommaviy rejimni faollashtiradigan “UNITY_BUILD” xususiyati qo‘shildi;
  • “Find_file()”, “find_library()”, “find_path()”, buyruqlar qo‘shildi.
    "find_package()" va "find_program()" fayllar, kutubxonalar, yo'llar, paketlar va bajariladigan fayllarni turli toifadagi fayllar uchun qidiruv yo'llarini belgilaydigan o'zgaruvchilarga muvofiq qidirish uchun.
    O'zgaruvchilar "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH", "CMAKE_FIND_USE_CMAKE_PATH", "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH", "CMAKE_FIND_USE_PACKAGE_ROOT_PATHINCOENT_PATHIN_PATHIN_USE_" va "CMAKE_FIND_USE_PACKAGE_RE" GISTRY asosiy qidiruv yo'llarini boshqarish uchun ishlatiladi";

  • “file()” buyrug‘iga “file(GET_RUNTIME_DEPENDENCIES)” rejimi qo‘shildi, bu sizga bajariladigan fayl yoki kutubxonani dinamik bog‘lashda foydalaniladigan kutubxonalar ro‘yxatini rekursiv ravishda olish imkonini beradi. Tartib endi eskirgan GetPrerequisites() buyrug'ini almashtirdi;
  • "ctest (1)" buyrug'i har bir test uchun zarur bo'lgan resurslar asosida testlarni ketma-ketlashtirish qobiliyatini amalga oshiradi;
  • “CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY” o‘zgaruvchisi eskirgan va “CMAKE_FIND_USE_PACKAGE_REGISTRY” bilan almashtirilishi kerak;
  • Yaxshilangan AIX platformasini qo'llab-quvvatlash. “ENABLE_EXPORTS” xususiyatidan foydalanilganda, bajariladigan faylga qo‘shimcha ravishda “.imp” kengaytmasi bilan saqlangan bog‘lovchi uchun import fayli yaratiladi. "MODULE" opsiyasi bilan "add_library()" chaqiruvi orqali yaratilgan plaginlarda ushbu fayldan "target_link_libraries()" buyrug'i yordamida ulanishda foydalanish mumkin. AIX-da ish vaqtini bog'lash sukut bo'yicha o'chirilgan, chunki CMake endi yuklash vaqtida ulanish uchun barcha kerakli belgilar ma'lumotlarini taqdim etadi. Dinamik kutubxonalar yoki yuklanadigan modullarning ish vaqtini bogʻlashdan foydalanish uchun “CMAKE_SHARED_LINKER_FLAGS” va “CMAKE_MODULE_LINKER_FLAGS” oʻzgaruvchilari orqali aniqlangan bogʻlovchi ishga tushirish bayroqlari roʻyxatida “-Wl, -G” parametrlarini aniq belgilashingiz kerak.

Manba: opennet.ru

a Izoh qo'shish