Meson ビルド システム リリース 0.52

公開済み ビルドシステムのリリース 中間子0.52、X.Org Server、Mesa、Lighttpd、systemd、GStreamer、Wayland、GNOME、GTK+ などのプロジェクトを構築するために使用されます。 Meson コードは Python で書かれており、 供給された Apache 2.0 に基づいてライセンスされています。

Meson 開発の主な目標は、利便性と使いやすさを組み合わせた高速な組み立てプロセスを提供することです。 デフォルトのビルドでは、make ユーティリティの代わりにツールキットが使用されます。 忍者, ただし、xcode や VisualStudio などの他のバックエンドを使用することもできます。 このシステムには、Meson を使用してディストリビューション用のパッケージを構築できるマルチプラットフォーム依存関係ハンドラーが組み込まれています。 アセンブリ ルールは、簡略化されたドメイン固有の言語で指定されており、ユーザーにとって非常に読みやすく、理解しやすいものになっています (作成者の意図どおり、開発者はルールの作成に最小限の時間を費やす必要があります)。

による支援 GCC、Clang、Visual Studio およびその他のコンパイラーを使用して、Linux、Illumos/Solaris、FreeBSD、NetBSD、DragonFly BSD、Haiku、macOS、および Windows 上でクロスコンパイルおよびビルドします。 C、C++、Fortran、Java、Rust など、さまざまなプログラミング言語でプロジェクトを構築できます。 インクリメンタル ビルド モードがサポートされており、最後のビルド以降に行われた変更に直接関連するコンポーネントのみが再ビルドされます。 Meson を使用すると、反復可能なビルドを生成できます。このビルドでは、異なる環境でビルドを実行すると、完全に同一の実行可能ファイルが生成されます。

メイン イノベーション 中間子 0.52:

  • Emscripten をコンパイラとして使用する Webassembly の実験的サポートを追加しました。
  • Illumos および Solaris プラットフォームのサポートが大幅に改善され、動作する状態になりました。
  • システムに gettext ツールキットがインストールされていない場合、gettext ベースの国際化スクリプトが無視されるようにします (以前は、gettext のないシステムで i18n モジュールを使用するとエラーが表示されていました)。
  • 静的ライブラリのサポートが改善されました。 アンインストールされた静的ライブラリを使用する場合の多くの問題は解決されました。
  • 辞書を使用して環境変数を割り当てる機能が追加されました。 environment() を呼び出すときに、最初の要素を、環境変数がキー/値形式で定義されているディクショナリとして指定できるようになりました。 これらの変数は、set() メソッドを介して個別に設定されたかのように、environment_object に転送されます。 「env」引数をサポートするさまざまな関数に辞書を渡すこともできるようになりました。
  • 選択したビルド バックエンド (例: 「ninja target_name」) で呼び出すことができる新しい第 1 レベルのビルド ターゲットを作成する関数「runtarget alias_target(target_name, depXNUMX, ...)」を追加しました。 このビルド ターゲットはコマンドを実行しませんが、すべての依存関係が確実にビルドされるようにします。
  • 「[properties]」セクションに sys_root 設定がある場合、クロスコンパイル中の PKG_CONFIG_SYSROOT_DIR 環境変数の自動設定を有効にしました。
  • 指定されたテスト スクリプトで GDB を実行するために「--gdb testname」オプションを指定するときに、GDB デバッガーへのパスを決定する「--gdb-path」オプションを追加しました。
  • すべてのソース ファイルでこのリンターを実行するための Clang-Tidy ビルド ターゲットの自動検出が追加されました。 Clang-tidy がシステムで利用可能で、「.clang-tidy」(または「_clang-tidy」)ファイルがプロジェクト ルートで定義されている場合、ターゲットが作成されます。
  • Clang 拡張機能で使用するための dependency('blocks') を追加しました ブロック;
  • リンカー ビューとコンパイラ ビューは分離されているため、コンパイラとリンカーのさまざまな組み合わせを使用できます。
  • all_sources() メソッドに加えて、all_dependency() メソッドを SourceSet オブジェクトに追加しました。
  • run_project_tests.py では、テストを選択的に実行するために「--only」オプションが追加されました (たとえば、「python run_project_tests.py —only fortran python3」)。
  • find_program() 関数には、プログラムの必要なバージョンのみを検索する機能が追加されました (バージョンは、「-version」オプションを使用してプログラムを実行することによって決定されます)。
  • シンボルのエクスポートを制御するために、shared_library() と同様に、vs_module_defs オプションがshared_module() 関数に追加されました。
  • kconfig モジュールは、入力ファイルを指定するための configure_file() をサポートするように拡張されました。
  • 「command:」ハンドラーに複数の入力ファイルを指定する機能をconfigure_file()に追加しました。
  • アーカイブを作成するための「dist」コマンドは、第 XNUMX レベルのコマンドのカテゴリに移動されました (以前は、このコマンドは ninja に関連付けられていました)。 作成するアーカイブのタイプを定義するための「--formats」オプションを追加しました (例:
    "meson dist -formats=xztar,zip")。

出所: オープンネット.ru

コメントを追加します