ビルドシステム CMake 3.21 および Meson 0.59 のリリース

クロスプラットフォームのオープン ビルド スクリプト ジェネレーター CMake 3.21 のリリースが発表されました。これは Autotools の代替として機能し、KDE、LLVM/Clang、MySQL、MariaDB、ReactOS、Blender などのプロジェクトで使用されます。 CMake コードは C++ で記述され、BSD ライセンスに基づいて配布されます。

CMake は、シンプルなスクリプト言語、モジュールを介して機能を拡張する手段、最小限の依存関係 (M4、Perl、または Python へのバインドなし)、キャッシュのサポート、クロスコンパイル用のツールの存在、ビルドの生成のサポートを提供することで有名です。幅広いビルド システムとコンパイラ用のファイル、テスト スクリプトを定義してパッケージを構築するための ctest ユーティリティと cpack ユーティリティ、ビルド パラメータを対話的に設定するための cmake-gui ユーティリティ。

主な改善点:

  • Heterogeneous-Computing Interface for Portability (HIP) プログラミング言語の完全サポートが追加されました。これは、CUDA アプリケーションを移植可能な C++ コードに変換しやすくすることを目的とした C++ 言語の方言です。
  • Visual Studio 17 Preview 2022 に基づいた Visual Studio 2022 1.1 のビルド スクリプト ジェネレーターを追加しました。
  • Makefile および Ninja ビルド スクリプト ジェネレーターには、C_LINKER_LAUNCHER プロパティと CXX_LINKER_LAUNCHER プロパティが追加されており、静的アナライザーなど、リンカーを起動する補助ユーティリティを起動するために使用できます。 ジェネレーターは、リンカーの名前とその引数を渡して、指定されたユーティリティを実行します。
  • プロパティ「C_STANDARD」および「OBJC_STANDARD」およびコンパイラパラメータ設定ツール(コンパイル機能)において、C17仕様およびC23仕様のサポートが追加されました。
  • オプション「-toolchain」が cmake ユーティリティに追加されました> ツールキットへのパスを決定します。
  • 端末に表示されるメッセージの種類が強調表示されます。
  • 富士通コンパイラのサポートを追加しました。
  • 「foreach()」コマンドは、ループ変数がループ内で確実に分離されるようにします。

さらに、X.Org Server、Mesa、Lighttpd、systemd、GStreamer、Wayland、GNOME、GTK などのプロジェクトのビルドに使用される Meson 0.59 ビルド システムのリリースにも注目してください。 Meson のコードは Python で書かれており、Apache 2.0 ライセンスに基づいてライセンスされています。 GCC、Clang、Visual Studio およびその他のコンパイラを使用した、Linux、Illumos/Solaris、FreeBSD、NetBSD、DragonFly BSD、Haiku、macOS、および Windows でのクロス コンパイルとビルドをサポートします。 C、C++、Fortran、Java、Rust など、さまざまなプログラミング言語でプロジェクトを構築できます。 ビルド時に make ユーティリティの代わりに Ninja ツールキットがデフォルトで使用されますが、xcode や VisualStudio などの他のバックエンドも使用できます。

このシステムには、Meson を使用してディストリビューション用のパッケージを構築できるマルチプラットフォーム依存関係ハンドラーが組み込まれています。 アセンブリ ルールは、簡略化されたドメイン固有の言語で指定されており、ユーザーにとって非常に読みやすく、理解しやすいものになっています (作成者の意図どおり、開発者はルールの作成に最小限の時間を費やす必要があります)。 インクリメンタル ビルド モードがサポートされており、最後のビルド以降に行われた変更に直接関連するコンポーネントのみが再ビルドされます。 Meson を使用すると、反復可能なビルドを生成できます。このビルドでは、異なる環境でビルドを実行すると、完全に同一の実行可能ファイルが生成されます。

Meson 0.59 の主な革新:

  • Cython 言語 (C コードとの統合を簡素化することを目的とした Python の高度なバージョン) のサポートが追加されました。
  • 「\」文字でスペースをエスケープせずに pkgconfig で変数を定義するためのキーワード「unescaped_variables」および「unescaped_uninstalled_variables」を追加しました。
  • wrc (Wine Resource Compiler) のサポートが追加されました。
  • Visual Studio 2012 および Visual Studio 2013 用のプロジェクトを生成する機能が実装されました。
  • サブプロジェクト関連のすべてのコマンドは、デフォルトで各サブプロジェクトを並行して実行するようになりました。 並列プロセスの数は、「--num-processes」パラメータによって決定されます。

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

コメントを追加します