انتشار سیستم ساخت CMake 3.18

ارسال شده توسط انتشار یک تولید کننده اسکریپت ساخت باز کراس پلتفرم CMake 3.18، که به عنوان جایگزینی برای Autotools عمل می کند و در پروژه هایی مانند KDE، LLVM/Clang، MySQL، MariaDB، ReactOS و Blender استفاده می شود. کد CMake به زبان C++ نوشته شده است و تحت مجوز BSD توزیع می شود.

CMake به دلیل ارائه یک زبان اسکریپت نویسی ساده، ابزاری برای گسترش عملکرد از طریق ماژول ها، حداقل تعداد وابستگی ها (بدون اتصال به M4، Perl یا Python)، پشتیبانی از کش، وجود ابزار برای کامپایل متقابل، پشتیبانی از تولید ساخت، قابل توجه است. فایل‌ها برای طیف گسترده‌ای از سیستم‌های ساخت و کامپایلرها، ابزار حضور ctest و cpack برای تعریف اسکریپت‌های تست و ساخت بسته‌ها، ابزار cmake-gui برای تنظیم تعاملی پارامترهای ساخت.

اصلی پیشرفت ها:

  • زبان CUDA را می توان با استفاده از Clang در پلتفرم هایی غیر از ویندوز ساخت. کامپایل جداگانه CUDA هنوز در هیچ پلتفرمی پشتیبانی نمی شود.
  • پشتیبانی برای پروفایل کردن اسکریپت های CMake با استفاده از گزینه های "--profiling-output" و "--profiling-format" اضافه شده است.
  • دستورات add_library() و add_executable() اکنون از ایجاد اهداف مستعار که به اهداف وارداتی غیرجهانی اشاره می کنند پشتیبانی می کنند.
  • دستور cmake_language() برای متا عملیات روی دستورات اسکریپت شده یا داخلی اضافه شد.
  • دستور فرعی file(CONFIGURE) اضافه شد که از نظر عملکرد مشابه configure_file() بود، اما محتویات را به عنوان یک رشته به جای مرجع فایل ارسال می کند.
  • یک گزینه REQUIRED به دستورات find_program()، find_library()، find_path() و find_file() اضافه کرد تا در صورت یافت نشدن چیزی، پردازش با خطا متوقف شود.
  • متغیر "CMAKE_CUDA_ARCHITECTURES" برای نشان دادن معماری CUDA اضافه شد (اگر متغیر "CMAKE_CUDA_COMPILER_ID" روی "NVIDIA" تنظیم شود، به طور خودکار تنظیم شود).
  • ویژگی "UNITY_BUILD_MODE" را برای انتخاب الگوریتم گروه بندی برای فایل های منبع گنجانده شده (BATCH، GROUP) در ژنراتورها اضافه کرد.
  • اضافه شدن ماژول CheckLinkerFlag برای بررسی صحت پرچم های پیوند.
  • عبارات مولد $ اضافه شد ، دلار ، دلار و دلار .
  • متغیر CTEST_RESOURCE_SPEC_FILE به ابزار ctest اضافه شده است تا فایل مشخصات منبع را مشخص کند.

منبع: opennet.ru

اضافه کردن نظر