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 tillarini qo'llab-quvvatlash qo'shildi
    C++ ("OBJCXX"), uni project() va enable_language() buyruqlari orqali yoqish mumkin, shundan so'ng ".m" ".mm" fayllaridagi kod avvalgidek C++ kodi sifatida emas, balki Objective C va Objective C++ kodi sifatida kompilyatsiya qilinadi;
  • Solaris platformasida Clang kompilyatori uchun qo'llab-quvvatlash qo'shildi;
  • Yangi buyruq satri parametrlari qo'shildi: 0 va 1 kodlarini chop etish uchun "cmake -E true|false"; kuzatuv ma'lumotlarini faylga yo'naltirish uchun "cmake --trace-redirect="
    "stderr"; "cmake --loglevel" buyrug'i boshqa buyruqlarning nomlanishiga mos kelishi uchun "--log-level" ga o'zgartirildi;
  • Oldindan kompilyatsiya qilish paytida ishlatiladigan sarlavha fayllarini ro'yxatlash uchun "target_precompile_headers()" buyrug'i qo'shildi (yaratish vaqtini qisqartiradi);
  • "UNITY_BUILD" xususiyati qo'shildi, bu generatorlarda manba fayllarini qayta ishlashning ommaviy rejimini faollashtiradi va bu jarayonni tezlashtiradi;
  • "find_file()", "find_library()", "find_path()" buyruqlari qo'shildi,
    "find_package()" va "find_program()" turli toifadagi fayllar uchun qidiruv yo'llarini belgilaydigan o'zgaruvchilarga muvofiq fayllar, kutubxonalar, yo'llar, paketlar va bajariladigan fayllarni qidirish uchun.
    "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" va "CMAKE_FIND_USE_PACKAGE_REGISTRY" o'zgaruvchilari qidiruv uchun asosiy yo'llarni boshqarish uchun ishlatiladi;
  • "file()" buyrug'i bajariladigan fayl yoki kutubxonani dinamik ravishda bog'lashda ishlatiladigan kutubxonalar ro'yxatini rekursiv ravishda olish imkonini beruvchi "file(GET_RUNTIME_DEPENDENCIES)" rejimini o'z ichiga olgan holda yangilandi. Ushbu rejim endi eskirgan GetPrerequires() buyrug'ini almashtiradi.
  • "ctest(1)" buyrug'i har bir test uchun zarur bo'lgan resurslar asosida testlarni seriyalashtirish imkoniyatini amalga oshiradi;
  • 'CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY' o'zgaruvchisi eskirgan va uning o'rniga 'CMAKE_FIND_USE_PACKAGE_REGISTRY' ishlatilishi kerak;
  • AIX platformasini qo'llab-quvvatlash yaxshilandi. "ENABLE_EXPORTS" xususiyatidan foydalanganda, bajariladigan faylga qo'shimcha ravishda, endi ".imp" kengaytmasi bilan saqlanadigan havola qiluvchi uchun import fayli yaratiladi. "MODULE" opsiyasi bilan "add_library()" ni chaqirish orqali yaratilgan plaginlarda ushbu fayl "target_link_libraries()" buyrug'i yordamida havola qilishda ishlatilishi mumkin. AIX da ish vaqti havolasi sukut bo'yicha o'chirib qo'yilgan, chunki CMake endi yuklash vaqtida havola qilish uchun barcha kerakli belgilar ma'lumotlarini taqdim etadi. Dinamik kutubxonalar yoki yuklanadigan modullarning ish vaqti havolasini yoqish uchun "CMAKE_SHARED_LINKER_FLAGS" va "CMAKE_MODULE_LINKER_FLAGS" o'zgaruvchilari orqali aniqlangan havola qiluvchi ishga tushirish bayroqlari ro'yxatida "-Wl, -G" parametrlarini aniq ko'rsating.

Manba: opennet.ru

DDoS himoyasi, VPS VDS serverlari bo'lgan saytlar uchun ishonchli hosting sotib oling 🔥 DDoS himoyasi, VPS VDS serverlari bilan ishonchli veb-sayt xostingini sotib oling | ProHoster