CMake به دلیل ارائه یک زبان اسکریپت نویسی ساده، ابزاری برای گسترش عملکرد از طریق ماژول ها، حداقل تعداد وابستگی ها (بدون اتصال به M4، Perl یا Python)، پشتیبانی از کش، وجود ابزار برای کامپایل متقابل، پشتیبانی از تولید ساخت، قابل توجه است. فایلها برای طیف گستردهای از سیستمهای ساخت و کامپایلرها، ابزار حضور ctest و cpack برای تعریف اسکریپتهای تست و ساخت بستهها، ابزار cmake-gui برای تنظیم تعاملی پارامترهای ساخت.
اصلی
- پشتیبانی از Objective C ("OBJC") و زبان های Objective اضافه شده است
C++ ("OBJCXX")، که می تواند از طریق دستورات ()project () و enable_language() فعال شود، پس از آن کد موجود در فایل های ".m" ".mm" به جای کدهای Objective C و Objective C++ کامپایل می شود. C++، همانطور که قبلا بود. - پشتیبانی از کامپایلر Clang در پلتفرم Solaris اضافه شده است.
- گزینه های جدید خط فرمان اضافه شد: "cmake -E true|false" برای چاپ کدهای بازگشتی 0 و 1. "cmake --trace-redirect=" برای تغییر مسیر اطلاعات ردیابی به یک فایل به جای آن
"stderr"؛ دستور "cmake --loglevel" به "--log-level" تغییر نام داده است تا با نام سایر دستورات مطابقت داشته باشد. - دستور “target_precompile_headers()” را برای فهرست کردن لیست فایلهای هدر مورد استفاده در طول پیشکامپایل اضافه کرد (زمان ساخت را کاهش میدهد).
- ویژگی "UNITY_BUILD" را اضافه کرد که حالت دسته ای را برای پردازش فایل های منبع در ژنراتورها فعال می کند تا سرعت ساخت را افزایش دهد.
- دستورات "find_file()"، "find_library()"، "find_path()" اضافه شده است.
"find_package()" و "find_program()" برای جستجوی فایلها، کتابخانهها، مسیرها، بستهها و فایلهای اجرایی با توجه به متغیرهایی که مسیرهای جستجو را برای دستههای مختلف فایلها تعریف میکنند.
متغیرهای "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_CMAKE_PATH"، "CMAKE_FIND_USE_PACKAGE_ROOT_PATH"، "CMAKETHEN_FIND" ND_USE_PACKAGE_RE" برای کنترل مسیرهای جستجوی پایه GISTRY" استفاده می شود. - حالت "file(GET_RUNTIME_DEPENDENCIES)" را به دستور "file()" اضافه کرد، که به شما امکان می دهد به صورت بازگشتی لیست کتابخانه های مورد استفاده در هنگام پیوند دادن پویا یک فایل اجرایی یا کتابخانه را بازیابی کنید. حالت جایگزین دستور GetPrerequisites() شد که اکنون منسوخ شده است.
- دستور "ctest(1)" توانایی سریالسازی تستها را بر اساس منابع مورد نیاز برای هر تست پیادهسازی میکند.
- متغیر "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" منسوخ شده است و باید با "CMAKE_FIND_USE_PACKAGE_REGISTRY" جایگزین شود.
- پشتیبانی از پلتفرم AIX بهبود یافته است. هنگام استفاده از ویژگی "ENABLE_EXPORTS"، علاوه بر فایل اجرایی، اکنون یک فایل import برای پیوند دهنده تولید می شود که با پسوند ".imp" ذخیره می شود. در افزونههایی که با فراخوانی «add_library()» با گزینه «MODULE» ایجاد میشوند، میتوان از این فایل هنگام پیوند با استفاده از دستور «target_link_libraries()» استفاده کرد. پیوند زمان اجرا در AIX به طور پیش فرض غیرفعال است زیرا CMake اکنون تمام اطلاعات نمادهای لازم را برای پیوند در زمان بارگذاری ارائه می دهد. برای استفاده از پیوند زمان اجرا کتابخانههای پویا یا ماژولهای قابل بارگیری، باید به صراحت گزینههای «-Wl, -G» را در لیست پرچمهای راهاندازی پیونددهنده، که از طریق متغیرهای «CMAKE_SHARED_LINKER_FLAGS» و «CMAKE_MODULE_LINKER_FLAGS» تعریف شدهاند، مشخص کنید.
منبع: opennet.ru