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
- 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