CMake 3.16 बिल्ड सिस्टमचे प्रकाशन

सादर करणारा क्रॉस-प्लॅटफॉर्म ओपन बिल्ड स्क्रिप्ट जनरेटरचे प्रकाशन सीएमके 3.16, जे Autotools ला पर्याय म्हणून काम करते आणि KDE, LLVM/Clang, MySQL, MariaDB, ReactOS आणि ब्लेंडर सारख्या प्रकल्पांमध्ये वापरले जाते. CMake कोड C++ मध्ये लिहिलेला आहे आणि BSD परवान्याअंतर्गत वितरित केला जातो.

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_SYSTEM_ENVIRONMENT_PATH» и «CMAKE_FIND_USE_PACKAGE_REGISTRY»;

  • В команду «file()» добавлен режим «file(GET_RUNTIME_DEPENDENCIES)», позволяющий рекурсивно извлечь список библиотек, задействованных при динамическом связывании исполняемого файла или библиотеки. Режим пришёл на смену команде GetPrerequisites(), которая теперь объявлена устаревшей;
  • В команде «ctest(1)» реализована возможность сериализации тестов, отталкиваясь от ресурсов, требуемых для каждого теста;
  • Объявлена устаревшей переменная «CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY», вместо которой следует использовать «CMAKE_FIND_USE_PACKAGE_REGISTRY»;
  • Улучшена поддержка платформы AIX. При использовании свойства «ENABLE_EXPORTS», помимо исполняемого файла, теперь формируется файл импорта для компоновщика, сохраняемый с расширением «.imp». В плагинах, создаваемых при помощи вызова «add_library()» с опцией «MODULE», данный файл может применяться при компоновке с использованием команды «target_link_libraries()». Runtime-компоновка в AIX по умолчанию отключена, так как CMake теперь предоставляет всю необходимую информацию о символах для связывания во время загрузки. Для применения runtime-компоновки динамических библиотек или загружаемых модулей следует явно указывать опции «-Wl,-G» в списки флагов запуска компоновщика, определяемых через переменные «CMAKE_SHARED_LINKER_FLAGS» и «CMAKE_MODULE_LINKER_FLAGS».

स्त्रोत: opennet.ru

एक टिप्पणी जोडा