मेसन बिल्ड सिस्टम रिलीज 0.51

प्रकाशित प्रणाली प्रकाशन तयार करा मेसन 0.51, ज्याचा वापर X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME आणि GTK+ सारखे प्रकल्प तयार करण्यासाठी केला जातो. मेसन कोड Python मध्ये लिहिलेला आहे आणि पुरवठा Apache 2.0 अंतर्गत परवानाकृत.

मेसन डेव्हलपमेंटचे मुख्य उद्दिष्ट हे असेंब्ली प्रक्रियेची उच्च गती प्रदान करणे आणि सोयी आणि वापर सुलभतेसह आहे. मेक युटिलिटी ऐवजी, डीफॉल्ट बिल्ड टूलकिट वापरते निन्जा, परंतु इतर बॅकएंड वापरणे देखील शक्य आहे, जसे की xcode आणि VisualStudio. सिस्टममध्ये एक अंगभूत मल्टी-प्लॅटफॉर्म अवलंबन हँडलर आहे जो तुम्हाला वितरणासाठी पॅकेजेस तयार करण्यासाठी मेसन वापरण्याची परवानगी देतो. असेंबली नियम एका सरलीकृत डोमेन-विशिष्ट भाषेत निर्दिष्ट केले आहेत, ते वापरकर्त्यासाठी अत्यंत वाचनीय आणि समजण्यायोग्य आहेत (लेखकाच्या हेतूनुसार, विकसकाने नियम लिहिण्यासाठी कमीतकमी वेळ घालवला पाहिजे).

Поддерживается кросс-компиляция и сборка в Linux, macOS и Windows с использованием GCC, Clang, Visual Studio и других компиляторов. Возможна сборка проектов на различных языках программирования, включая C, C++, Fortran, Java и Rust. Поддерживается инкрементальный режим сборки, при котором пересобираются только компоненты, напрямую связанные с изменениями, внесёнными с момента прошлой сборки. Meson можно использовать для формирования повторяемых сборок, при которых запуск сборки в разных окружениях приводит к генерации полностью идентичных исполняемых файлов.

मुख्य नवकल्पना मेसन ०.५२:

  • Добавлена поддержка прозрачной сборки существующих проектов, в которых используются сборочные сценарии CMake. Meson теперь напрямую может собирать простые субпроекты (такие как одиночные библиотеки) с использованием модуля CMake по аналогии со штатными субпроектами (в том числе субпроекты на CMake могут размещаться в каталоге subprojects );
  • Для всех применяемых компиляторов включено предварительное тестирование через сборку и исполнение простейших тестовых файлов (sanity check), не ограничиваясь тестированием указанных пользователем флагов для кросс-компиляторов (отныне проверяются и родные для текущей платформы компиляторы).
  • Добавлена возможность определения опций командной строки, применяемых при кросс-компиляции, с привязкой через задание префикса платформы перед опцией. Ранее опции командной строки охватывали только сборку для родной платформы и не могли указываться для кросс-компиляции. Теперь опции командной строки применяются независимо от того осуществляется нативная сборка или кросс-компиляция, гарантируя, что для нативных и кросс-сборок будет получен идентичный результат;
  • Добавлена возможность указания флага «—cross-file» более одного раза в командной строке для перечисления нескольких cross-файлов;
  • Добавлена поддержка компилятора ICL (Intel C/C++ Compiler) для платформы Windows (ICL.EXE и ifort);
  • Добавлена начальная поддержка инструментария для CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • В объект «dependency» добавлен метод «get_variable», позволяющий получить значение переменной без учёта типа текущей зависимости (например, dep.get_variable(pkg-config : ‘var-name’, cmake : ‘COP_VAR_NAME));
  • Добавлен новый аргумент параметров целевой сборки — «link_language» для явного определения языка, используемого при вызове компоновщика. Например, основная программа на Fortran, может вызывать код на C/C++, что приведёт к автоматическому выбору C/C++, в том время как нужно использовать компоновщик от Fortran;
  • Изменена обработка флагов препроцессора CPPFLAGS. Если раньше Meson отдельно сохранял CPPFLAGS и специфичные для языков флаги компиляции (CFLAGS, CXXFLAGS), то теперь они обрабатываются нераздельно и перечисленные в CPPFLAGS флаги применяются как ещё один источник флагов компиляции для языков, которые их поддерживают;
  • Вывод custom_target и custom_target[i] теперь может использоваться в качестве аргументов в операциях link_with и link_whole;
  • В генераторах добавлена возможность задания дополнительных зависимостей при помощи опции «depends» (например, generator(program_runner, output: [‘@[ईमेल संरक्षित]’], depends: exe));
  • В find_library добавлена опция static для охвата поиском только статически связанных библиотек;
  • Для python.find_installation добавлена возможность определения наличия заданного Python-модуля для конкретной версии Python;
  • Добавлен новый модуль unstable-kconfig для разбора файлов kconfig;
  • Добавлена новая команда «subprojects foreach», принимающая команду с аргументами и запускающая её во всех каталогах субпроектов;

स्त्रोत: opennet.ru

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