CLIツール
xmake-io/xmake avatar
xmake-io/xmake

xmake.luaでビルド、生成、依存関係を一つの定義に寄せる

プロジェクト概要:Lua に基づくクロスプラットフォームのビルド ユーティリティ。 Xmake は、Lua スクリプト言語に基づくクロスプラットフォームのビルド ユーティリティです。

スター 12,217フォーク 952LuaApache-2.0

ひと目でわかる

これは何?
xmake-io/xmakeのLuaベースのビルド記述、パッケージ管理、クロスプラットフォーム対応、分散ビルドをREADMEのコマンドから読む。
誰に向いている?
xmakeはLuaを使うcross-platform build utilityで、READMEはbuild backend、project generator、package manager、remoteまたはdistributed build、cacheを一つの道具として示す。MakeやNinjaの代替だけでなく、CMakeやMesonの生成役も含む点が特徴になる。
商用利用できる?
できます。Apache-2.0 は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。最後のコミットは 1 日前です。
何の言語で書かれている?
主に Lua です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

xmakeが束ねるビルドと生成の責務

リポジトリ名はxmake-io/xmakeで、説明はLuaベースのクロスプラットフォームビルドユーティリティです。READMEは冒頭で、xmakeは軽量で標準ライブラリ以外に依存関係がなく、xmake.luaファイルを使ってプロジェクトのビルドを管理すると述べています。READMEによれば、xmakeはソースコードを直接ビルドでき、CMakeやMesonのようにプロジェクトファイルを生成でき、内蔵パッケージシステムでC/C++の依存関係を管理できます。READMEはこれを、ビルドバックエンド+プロジェクトジェネレーター+パッケージマネージャー+リモートまたは分散ビルド+キャッシュと要約し、Make/Ninja、CMake/Meson、Vcpkg/Conan、distcc、ccache/sccacheと比較しています。この比較はREADME自身の枠組みであり、独立した評価ではありません。

xmakeはLuaを使うcross-platform build utilityで、READMEはbuild backend、project generator、package manager、remoteまたはdistributed build、cacheを一つの道具として示す。MakeやNinjaの代替だけでなく、CMakeやMesonの生成役も含む点が特徴になる。 xmake-io/xmakeのREADMEとメタデータに基づく判断であり、実行結果や性能測定を意味しない。導入範囲はここで挙げた形式、コマンド、設定ファイルに限って確認する。

xmake.luaのtargetと依存宣言

READMEはxmake.luaの構文が単純で読みやすいと述べています。最小の例は、consoleという名前のバイナリターゲットを作成し、srcディレクトリのすべての.cファイルを追加します。別の例ではadd_requiresを使って依存関係を宣言します。たとえばtbox 1.6.*、zlib、libpng ~1.6です。READMEはまた、debugとreleaseのプロファイル、出力とコマンド実行を行うカスタムafter_buildスクリプト、Qt QuickApp、CUDA、WDK/UMDFドライバー、Darwinアプリケーション、フレームワーク、OpenMP、Zigの例を示しています。構文はLuaなので、プロジェクトファイルに関数や条件分岐を含められますが、READMEが示すのは少数のパターンだけです。完全なAPIは文書化されておらず、ドキュメントサイトにあります。

target("console")、set_kind("binary")、add_files("src/*.c")というxmake.lua例は、成果物の種類と入力ファイルを短く宣言する。add_requires("tbox 1.6.*", "zlib", "libpng ~1.6")では依存の版指定も書ける。 xmake-io/xmakeのREADMEとメタデータに基づく判断であり、実行結果や性能測定を意味しない。導入範囲はここで挙げた形式、コマンド、設定ファイルに限って確認する。

xmake fからxmake testまでの操作列

READMEは3つの一行インストール方法を示しています。curlスクリプト、wgetスクリプト、PowerShellスクリプトです。他の方法についてはインストールガイドにリンクしています。コマンドラインリファレンスは、プロジェクトのルートディレクトリにいることを前提としています。xmakeコマンドは現在のプロジェクトをビルドし、xmake run consoleはターゲットを実行し、xmake run -d consoleはデバッガーで実行し、xmake testはテストを実行し、xmake fはプラットフォーム、アーキテクチャ、モードを設定し、xmake f --menuは対話式の設定メニューを開きます。READMEは、どのデバッガーが接続されるか、インストールスクリプトがダウンロードファイルをどう検証するか、リストにないプラットフォームで何が起きるかについては述べていません。

READMEの操作列はxmakeでbuild、xmake run consoleで実行、xmake run -d consoleでdebug、xmake testでテストだ。xmake f -p、-a、-mでplatform、architecture、modeを設定し、xmake f --menuで対話設定を開く。 xmake-io/xmakeのREADMEとメタデータに基づく判断であり、実行結果や性能測定を意味しない。導入範囲はここで挙げた形式、コマンド、設定ファイルに限って確認する。

OSとtoolchainの組み合わせ

READMEには、Windows、macOS、Linux、FreeBSD、NetBSD、OpenBSD、DragonflyBSD、Solaris、Android、iOS、WatchOS、AppleTVOS、AppleXROS、MSYS、MinGW、Cygwin、Wasm、Haiku、Harmony、および汎用クロスツールチェーンがリストされています。ツールチェーン一覧には、Xcode、MSVC、Clang、GCC、Rust、Swift、CUDA、Zig、Intelコンパイラー、および多くの組み込み・シミュレーターツールチェーンが含まれます。対応言語には、CとC++、Objective-C、Swift、アセンブリ、Golang、Rust、Dlang、Fortran、Cuda、Zig、Vala、Pascal、Nim、Verilog、複数のアセンブラ、Cppfront、Kotlin、C#、Ascend Cがあります。プロジェクトタイプの節では、静的ライブラリ、共有ライブラリ、コンソールアプリケーション、CUDAプログラム、Qtアプリケーション、WDKドライバー、WinSDK、MFC、Darwinアプリケーション、フレームワーク、SWIGモジュール、LuaRocksモジュール、Protobufプログラム、Lex/Yaccプログラム、Linuxカーネルモジュールを扱っています。READMEは各組み合わせの完全性やテスト状況については述べていません。

Windows、macOS、LinuxからAndroid、iOS、FreeBSD、Wasmなど多数のplatformと、MSVC、Clang、GCC、Rust、Swift、CUDA、Zigなどのtoolchainが列挙される。全組み合わせの検証済み範囲をREADMEは約束していない。 xmake-io/xmakeのREADMEとメタデータに基づく判断であり、実行結果や性能測定を意味しない。導入範囲はここで挙げた形式、コマンド、設定ファイルに限って確認する。

xmake-repoと外部パッケージ

内蔵パッケージマネージャーは依存関係を自動的に取得してインストールできます。READMEは、公式のxmake-repoパッケージリポジトリ、Xrepoコマンド、ユーザー構築リポジトリ、およびConan、Conda、Vcpkg、Homebrew、Pacman、Apt、Clib、Dub、Portage、Nimble、Cargo、Zypper、NuGetなどのサードパーティソースを挙げています。公式リポジトリは500以上のパッケージを提供し、クロスコンパイルされた依存パッケージをサポートし、xrepo env shellによるパッケージ仮想環境を提供し、Windows NT向けのプリコンパイルパッケージ高速化があり、リモートツールチェーンを取得できると述べています。また依存関係のバージョンロックもサポートしています。READMEはパッケージの正確な数を定義しておらず、どのサードパーティリポジトリがxmakeプロジェクトによって保守されているかも挙げていません。

公式xmake-repoは500以上のpackageを提供するとREADMEにあり、Xrepoやpackage virtual environment、version lockも説明される。Conan、Conda、Vcpkg、Homebrew、Aptなど外部sourceも挙がるが、依存の供給元を固定する設計が必要だ。 xmake-io/xmakeのREADMEとメタデータに基づく判断であり、実行結果や性能測定を意味しない。導入範囲はここで挙げた形式、コマンド、設定ファイルに限って確認する。

分散コンパイルと測定値の読み方

READMEの分散コンパイルの節には、クロスプラットフォーム対応、MSVC・Clang・GCCおよび他のツールチェーン対応、Android・Linux・Windows NT・Darwinホスト対応、コンパイルツールチェーン以外に依存関係がないこと、ビルドサーバーの負荷分散、大きなファイルのリアルタイムlz4圧縮転送、共有ファイルシステムが不要であることが列挙されています。リモートコンパイルとローカルまたはリモートビルドキャッシュは、別のドキュメントページへのリンクで説明されています。READMEにはxmake-coreプロジェクトを使ったベンチマークがあり、TermuxとmacOSの表があります。並列コンパイル表では、xmakeはTermuxで24.890秒、macOSで12.264秒、ninjaは25.682秒と11.327秒です。READMEはxmakeがNinjaと同等だと述べていますが、ハードウェア、ウォームアップ、測定方法については説明していません。

分散コンパイルはMSVC、Clang、GCCやAndroid、Linux、Windows NT、Darwin hostに触れ、大きなファイルをlz4圧縮して転送し共有filesystemを不要にすると説明される。READMEのxmake-core表はTermux 24.890秒、macOS 12.264秒で、測定条件は記載されない。 xmake-io/xmakeのREADMEとメタデータに基づく判断であり、実行結果や性能測定を意味しない。導入範囲はここで挙げた形式、コマンド、設定ファイルに限って確認する。

IDE連携、Apache-2.0、devブランチ

プラグインの節では、Visual Studio、CMake、Ninja、compile_commands.json用のプロジェクトジェネレーターと、ファイル、コマンド、またはREPLを実行できるLuaスクリプトプラグインを示しています。READMEはVS Code、Sublime、IntelliJ、Zed、Vim、Visual Studio、Qt Creator用のエディター統合と、JNIビルド用のGradleプラグインにリンクしています。CIについてはGitHub Actionセットアッププラグインに言及しています。リポジトリはApache-2.0でライセンスされています。ライセンスの抜粋は、著作権ライセンスと特許ライセンスを付与し、再配布の条件を定めています。保証、サポート、セキュリティについては何も述べていません。READMEはまたxmakeを使用しているプロジェクトを一覧にするページを指していますが、そのページの内容はリポジトリにありません。

Visual Studio、CMake、Ninja、compile_commands.jsonのgenerator、各種editor integration、Gradle plugin、GitHub Action pluginが案内される。Apache-2.0で直近版はv3.1.1だが、devブランチを採る場合はtoolchainとpackage lockを同時に固定したい。 xmake-io/xmakeのREADMEとメタデータに基づく判断であり、実行結果や性能測定を意味しない。導入範囲はここで挙げた形式、コマンド、設定ファイルに限って確認する。

編集部の結論

xmakeはLuaを使うcross-platform build utilityで、READMEはbuild backend、project generator、package manager、remoteまたはdistributed build、cacheを一つの道具として示す。MakeやNinjaの代替だけでなく、CMakeやMesonの生成役も含む点が特徴になる。 分散コンパイルはMSVC、Clang、GCCやAndroid、Linux、Windows NT、Darwin hostに触れ、大きなファイルをlz4圧縮して転送し共有filesystemを不要にすると説明される。READMEのxmake-core表はTermux 24.890秒、macOS 12.264秒で、測定条件は記載されない。 Visual Studio、CMake、Ninja、compile_commands.jsonのgenerator、各種editor integration、Gradle plugin、GitHub Action pluginが案内される。Apache-2.0で直近版はv3.1.1だが、devブランチを採る場合はtoolchainとpackage lockを同時に固定したい。 採用するのはこの条件を受け入れられる利用者で、資料にない保証や別用途を求める利用者には向かない。最初に確認する対象はxmake-io/xmakeのREADMEに記載された具体的な入力、コマンド、設定、リリース番号である。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
コミュニティノート

コミュニティノート