$ xmake show -l toolchains
xcode Xcode IDE
msvc Microsoft Visual C/C++ Compiler
clang-cl LLVM Clang C/C++ Compiler compatible with msvc
yasm The Yasm Modular Assembler
clang A C language family frontend for LLVM
go Go Programming Language Compiler
dlang D Programming Language Compiler (Auto)
dmd D Programming Language Compiler
ldc The LLVM-based D Compiler
gdc The GNU D Compiler (GDC)
gfortran GNU Fortran Programming Language Compiler
zig Zig Programming Language Compiler
sdcc Small Device C Compiler
cuda CUDA Toolkit (nvcc, nvc, nvc++, nvfortran)
ndk Android NDK
rust Rust Programming Language Compiler
swift Swift Programming Language Compiler
llvm A collection of modular and reusable compiler and toolchain technologies
cross Common cross compilation toolchain
nasm NASM Assembler
gcc GNU Compiler Collection
mingw Minimalist GNU for Windows
gnu-rm GNU Arm Embedded Toolchain
envs Environment variables toolchain
fasm Flat Assembler
tinycc Tiny C Compiler
emcc A toolchain for compiling to asm.js and WebAssembly
icc Intel C/C++ Compiler
ifort Intel Fortran Compiler
ifx Intel LLVM Fortran Compiler
muslcc The musl-based cross-compilation toolchain
fpc Free Pascal Programming Language Compiler
wasi WASI-enabled WebAssembly C/C++ toolchain
nim Nim Programming Language Compiler
circle A new C++20 compiler
armcc ARM Compiler Version 5 of Keil MDK
armclang ARM Compiler Version 6 of Keil MDK
c51 Keil development tools for the 8051 Microcontroller Architecture
icx Intel LLVM C/C++ Compiler
dpcpp Intel LLVM C++ Compiler for data parallel programming model based on Khronos SYCL
masm32 The MASM32 SDK
iverilog Icarus Verilog
verilator Verilator open-source SystemVerilog simulator and lint system
cosmocc build-once run-anywhere
hdk Harmony SDK
xmake
A cross-platform build utility based on Lua
Modern C/C++ build tools, Simple, Fast, Powerful dependency package integration
项目支持
通过成为赞助者来支持该项目。您的logo将显示在此处,并带有指向您网站的链接。🙏
技术支持
你也可以考虑通过 Github 的赞助计划 赞助我们来获取额外的技术支持服务,然后你就能获取 xmake-io/technical-support 仓库的访问权限,获取更多技术咨询相关的信息。
简介
Xmake 是一个基于 Lua 的轻量级跨平台构建工具。
它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。
它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。
我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。
目前,Xmake 主要用于 C/C++ 项目的构建,但是同时也支持其他 native 语言的构建,可以实现跟 C/C++ 进行混合编译,同时编译速度也是非常的快,可以跟 Ninja 持平。
尽管不是很准确,但我们还是可以把 Xmake 按下面的方式来理解:
如果你想要了解更多,请参考:在线文档, Github以及Gitee 和 GitCode,同时也欢迎加入我们的 社区.
课程
xmake 官方也推出了一些入门课程,带你一步步快速上手 xmake,课程列表如下:
安装
使用curl
使用wget
使用powershell
其他安装方式
如果不想使用脚本安装,也可以点击查看 安装文档,了解其他安装方法。
简单的工程描述
包依赖描述
官方的xmake包管理仓库: xmake-repo
命令行使用
创建工程
构建工程
运行目标
调试程序
运行测试
配置平台
图形化菜单配置
跟ninja一样快的构建速度
测试工程: xmake-core
多任务并行编译测试
单任务编译测试
包依赖管理
架构和流程
支持的包管理仓库
包管理特性
xrepo env shell
支持平台
支持工具链
支持语言
支持特性
工程类型
分布式编译和缓存
关于分布式编译和缓存,可以见下面的文档。
远程编译
更多详情见:远程编译
更多例子
Debug 和 Release 模式
自定义脚本
依赖包自动集成
下载和使用在 xmake-repo 和第三方包仓库的依赖包:
另外,我们也可以使用 xrepo 命令来快速安装依赖包。
Qt QuickApp 应用程序
Cuda 程序
WDK/UMDF 驱动程序
更多WDK驱动程序例子(umdf/kmdf/wdm),见:WDK工程例子
iOS/MacOS 应用程序
Framework 和 Bundle 程序(iOS/MacOS)
OpenMP 程序
Zig 程序
自动拉取远程工具链
拉取指定版本的 llvm 工具链
我们使用 llvm-10 中的 clang 来编译项目。
拉取交叉编译工具链
我们也可以拉取指定的交叉编译工具链来编译项目。
拉取工具链并且集成对应工具链编译的依赖包
我们也可以使用指定的muslcc交叉编译工具链去编译和集成所有的依赖包。
插件
生成IDE工程文件插件(makefile, vs2002 - vs2022, …)
加载自定义lua脚本插件
更多内置插件见相关文档:内置插件文档
其他扩展插件,请到插件仓库进行下载安装: xmake-plugins.
IDE和编辑器插件
xmake.vim (third-party, thanks @luzhlon)
xmake-visualstudio (third-party, thanks @HelloWorld886)
xmake-qtcreator (third-party, thanks @Arthapz)
XMake Gradle插件 (JNI)
我们也可以在Gradle中使用xmake-gradle插件来集成编译JNI库
当
gradle-xmake-plugin
插件被应用生效后,xmakeBuild
任务会自动注入到现有的assemble
任务中去,自动执行jni库编译和集成。CI 集成
GitHub Action
我们可以使用 github-action-setup-xmake 在 Github Action 上实现跨平台安装集成 Xmake。
谁在使用 Xmake?
请点击 用户列表 查看完整用户使用列表。
如果您在使用 xmake,也欢迎通过 PR 将信息提交至上面的列表,让更多的用户了解有多少用户在使用 xmake,也能让用户更加安心使用 xmake。
我们也会有更多的动力去持续投入,让 xmake 项目和社区更加繁荣。
联系方式
感谢
感谢所有对xmake有所贡献的人:
xrepo env shell
,并贡献大量包到 xmake-repo 仓库。