# xmake **Repository Path**: doris12345/xmake ## Basic Information - **Project Name**: xmake - **Description**: 轻量级跨平台C/C++构建工具,采用lua语法接口API描述项目,提供依赖检测、编译、打包、安装、运行、调试一条龙服务 - **Primary Language**: Lua - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: http://xmake.io - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 135 - **Created**: 2018-10-24 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

xmake

travis-ci appveyor-ci AUR votes Github All Releases
license Reddit Gitter Telegram QQ Donate

A cross-platform build utility based on Lua

## 简介 XMake是一个基于Lua的轻量级跨平台自动构建工具,支持在各种主流平台上构建项目 xmake的目标是开发者更加关注于项目本身开发,简化项目的描述和构建,并且提供平台无关性,使得一次编写,随处构建 它跟cmake、automake、premake有点类似,但是机制不同,它默认不会去生成IDE相关的工程文件,采用直接编译,并且更加的方便易用 采用lua的工程描述语法更简洁直观,支持在大部分常用平台上进行构建,以及交叉编译 并且xmake提供了创建、配置、编译、打包、安装、卸载、运行等一些actions,使得开发和构建更加的方便和流程化。 不仅如此,它还提供了许多更加高级的特性,例如插件扩展、脚本宏记录、批量打包、自动文档生成等等。。 如果你想要了解更多,请参考: * [在线文档](http://xmake.io/#/zh/) * [项目主页](http://www.xmake.io/cn) * [Github](https://github.com/tboox/xmake) * [Gitee](https://gitee.com/tboox/xmake) ``` _ __ ___ __ __ __ _| | ______ \ \/ / | \/ |/ _ | |/ / __ \ > < | \__/ | /_| | < ___/ /_/\_\_|_| |_|\__ \|_|\_\____| by ruki, tboox.org ``` ## 安装 #### 使用curl ```bash bash <(curl -fsSL https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh) ``` #### 使用wget ```bash bash <(wget https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh -O -) ``` #### 使用powershell ```bash Invoke-Expression (Invoke-Webrequest 'https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.ps1' -UseBasicParsing).Content ``` ## 简单的工程描述 ## 包依赖描述 官方的xmake包管理仓库: [xmake-repo](https://github.com/tboox/xmake-repo) ## 构建工程 ```bash $ xmake ``` ## 运行目标 ```bash $ xmake run console ``` ## 调试程序 ```bash $ xmake run -d console ``` ## 配置平台 ```bash $ xmake f -p [windows|linux|macosx|android|iphoneos ..] -a [x86|arm64 ..] -m [debug|release] $ xmake ``` ## 图形化菜单配置 ```bash $ xmake f --menu ``` ## 包依赖管理 ## 支持平台 * Windows (x86, x64) * Macosx (i386, x86_64) * Linux (i386, x86_64, cross-toolchains ...) * Android (armv5te, armv6, armv7-a, armv8-a, arm64-v8a) * iPhoneOS (armv7, armv7s, arm64, i386, x86_64) * WatchOS (armv7k, i386) * Mingw (i386, x86_64) ## 支持语言 * C/C++ * Objc/Objc++ * Swift * Assembly * Golang * Rust * Dlang * Cuda ## 工程类型 * 静态库程序 * 动态库类型 * 控制台程序 * Cuda程序 * Qt应用程序 * WDK驱动程序 * WinSDK应用程序 ## 内置插件 #### 宏记录脚本和回放插件 ```bash $ xmake m -b # 开始记录 $ xmake f -p iphoneos -m debug $ xmake $ xmake f -p android --ndk=~/files/android-ndk-r16b $ xmake $ xmake m -e # 结束记录 $ xmake m . # 回放命令 ``` #### 加载自定义lua脚本插件 ```bash $ xmake l ./test.lua $ xmake l -c "print('hello xmake!')" $ xmake l lib.detect.find_tool gcc ``` #### 生成IDE工程文件插件(makefile, vs2002 - vs2017, ...) ```bash $ xmake project -k vs2017 -m "debug,release" ``` #### 生成doxygen文档插件 ```bash $ xmake doxygen [srcdir] ``` ## 更多插件 请到插件仓库进行下载安装: [xmake-plugins](https://github.com/tboox/xmake-plugins). ## IDE和编辑器插件 * [xmake-vscode](https://github.com/tboox/xmake-vscode) * [xmake-sublime](https://github.com/tboox/xmake-sublime) * [xmake-idea](https://github.com/tboox/xmake-idea) * [xmake.vim](https://github.com/luzhlon/xmake.vim) (third-party, thanks [@luzhlon](https://github.com/luzhlon)) ## 更多例子 Debug和Release模式: ```lua add_rules("mode.debug", "mode.release") target("console") set_kind("binary") add_files("src/*.c") if is_plat("windows", "mingw") then add_defines("XXX") end ``` 自定义脚本: ```lua target("test") set_kind("static") add_files("src/*.cpp") after_build(function (target) print("build %s ok!", target:targetfile()) end) ``` 使用扩展模块: ```lua target("test") set_kind("shared") add_files("src/*.c") on_load(function (target) import("lib.detect.find_package") target:add(find_package("zlib")) end) ``` ## 项目例子 一些使用xmake的项目: * [tbox](https://github.com/tboox/tbox) * [gbox](https://github.com/tboox/gbox) * [vm86](https://github.com/tboox/vm86) * [更多](https://github.com/tboox/awesome-xmake) ## 演示视频 ## 联系方式 * 邮箱:[waruqi@gmail.com](mailto:waruqi@gmail.com) * 主页:[tboox.org](http://www.tboox.org/cn) * 社区:[Reddit论坛](https://www.reddit.com/r/tboox/) * 聊天:[Telegram群组](https://t.me/tbooxorg), [Gitter聊天室](https://gitter.im/tboox/tboox?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) * 源码:[Github](https://github.com/tboox/xmake), [Gitee](https://gitee.com/tboox/xmake) * QQ群:343118190 * 微信公众号:tboox-os ## 感谢 感谢所有对xmake有所[贡献](CONTRIBUTING.md)的人: * [TitanSnow](https://github.com/TitanSnow): 提供xmake [logo](https://github.com/TitanSnow/ts-xmake-logo) 和安装脚本 * [uael](https://github.com/uael): 提供语义版本跨平台c库 [sv](https://github.com/uael/sv) ## 支持项目 xmake项目属于个人开源项目,它的发展需要您的帮助,如果您愿意支持xmake项目的开发,欢迎为其捐赠,支持它的发展。 🙏 [[支持此项目](https://opencollective.com/xmake#backer)] ## 赞助项目 通过赞助支持此项目,您的logo和网站链接将显示在这里。[[赞助此项目](https://opencollective.com/xmake#sponsor)]