简介

XMake 是一个跨平台自动构建工具,支持在各种主流平台上构建项目,类似 CMake、autoMake、premake,但是更加的方便易用,工程描述语法更简洁直观,支持平台更多,并且集创建、配置、编译、打包、安装、卸载、运行于一体。

支持特性

  1. 支持Windows、mac、LinuxiOSAndroid等平台,自动检测不同平台上的编译工具链(也可手动配置) 编译windows项目采用原生vs的工具链,不需要使用CygwinMinGw(当然这些也支持)

  2. 支持自定义平台编译配置,可以很方便的扩展第三方平台支持

  3. 采用Lua脚本语法描述项目,描述规则简单高效,逻辑规则可灵活修改,并且不会生成相关平台的工程文件,是工程更加简单明了

  4. 支持创建模板工程、配置项目、编译项目、运行、打包、安装和卸载等常用功能(后续还会增加:自动生成文档、调试等模块)

  5. 支持编译c/c++/objc成静态库、动态库、命令行可执行程序(后续还会增加:mac、ios、android的app的生成规则)

  6. 提供丰富的工程描述api,使用简单灵活,例如添加编译文件只需(还支持过滤排除):

    add_files("src/*.c", "src/ASM/**.S", "src/*.m")

  7. 支持头文件、接口、链接库依赖、类型的自动检测,并可自动生成配置头文件config.h

  8. 支持自定义编译配置开关,例如如果在工程描述文件中增加了enable_xxx的开关,那么配置编译的时候就可以手动进行配置来启用它:

    xmake config --enable_xxx=true

  9. 提供一键打包功能,不管在哪个平台上进行打包,都只需要执行一条相同的命令,非常的方便

  10. 支持自定义编译工具和规则,例如想要增加对masm/yasm的编译规则,只需将自己写的masm.lua/yasm.lua规则文件,放到当前项目目录下即可。。

  11. 支持全局配置,一些常用的项目配置,例如工具链、规则描述等等,都可以进行全局配置,这样就不需要每次编译不同工程,都去配置一遍

  12. 除了可以自动检测依赖模块,也支持手动强制配置模块,还有各种编译flags。

简单例子

创建一个c++ console项目:

xmake create -l c++ -t 1 console
 or xmake create --language=c++ --template=1 console

工程描述文件:xmake.lua

add_target("console")
    set_kind("binary")
    add_files("src/*.c")

配置工程:

这个是可选的步骤,如果只想编译当前主机平台的项目,是可以不用配置的,默认编译release版本。   当然每次配置都会被缓存,不需要每次全部重新配置。

xmake f -p iPhoneos -m debug
or xmake f --ldflags="-Lxxx -lxxx" or xmake f --plat=maCOSx --arch=x86_64
or xmake config --plat=iphoneos --mode=debug
or xmake config --plat=iphonesimulaTor
or xmake config --plat=android --arch=armv7-a --ndk=xxxxx
or xmake config --cross=i386-mingw32- --toolchains=/xxx/bin
or xmake config --cxflags="-Dxxx -Ixxx" or xmake config --help

编译工程:

xmake
or xmake -r
or xmake --rebuild

运行目标:

xmake r console
or xmake run console

打包所有:

xmake p
or xmake p --archs="armv7, arm64" or xmake package
or xmake package console
or xmake package -o /tmp
or xmake package --output=/tmp

安装目标:

xmake i
or xmake install
or xmake install console
or xmake install -o /tmp
or xmake install --output=/tmp

详细使用方式和参数说明,请参考文档 或者运行:

xmake -h
or xmake --help
or xmake config --help
or xmake package --help
...

也可以参考使用xmake的实际项目:TBOX

后续工作

  1. 完善打包模块,支持对ios、mac、android的app进行一键打包和签名,生成.ipa、.apk、.app的应用程序文件

  2. 完善安装功能,支持对ios、android的app进行安装到设备

  3. 实现调试功能

  4. 实现自动生成Doxygen文档功能

  5. 增加一些实用的工程描述api,例如:下载api,可以自动下载缺少的依赖库等等。。

  6. 解析automake、cmake的工程,并自动生成xmake的描述文件,实现无缝编译(如果这个实现成功的话,以后移植编译一些开源代码就更方便了)

xmake v2.1.8发布,改进对 IDE 和编辑器插件的支持
xmake v2.1.8 发布了。此版本主要改进对IDE和编辑器插件的支持,目前xmake提供以下编辑器和IDE插件:Vim 编辑器插件xmake.vim (第三方插件,感谢@luzhlon提供)Visual Studio Code 编辑器插件 (xmake-vscode)Sublime Text 编辑器插件 (xmake-sublime)IntelliJ 系列IDE插件 (xmake-idea) IntelliJ-IDEA CLionA

发布于 2017-11-09 02:17:26 | 141 次阅读

XMake v2.1.7 版本发布,稳定性修复和细节改进
此版本主要修复一些稳定性问题,并且对一些细节进行改进优化,并且提供xmake-vscode插件深度集成vscode编辑器环境。更多使用说明,请阅读:文档手册。项目源码:Github, Gitee.新特性添加add_imports去为target,option和package的自定义脚本批量导入模块,简化自定义脚本添加xmake -y/--yes去确认用户输入添加xmake l

发布于 2017-10-16 02:56:49 | 161 次阅读

xmake v2.1.6 发布,稳定性修复和编译改进
此版本主要修复一些稳定性问题。更多使用说明,请阅读:文档手册。项目源码:Github, Gitee.改进改进add_files,支持对files粒度进行编译选项的各种配置,更加灵活。从依赖的target和option中继承links和linkdirs。改进target.add_deps接口,添加继承配置,允许手动禁止依赖继承,例如:add_deps("test", {i

发布于 2017-08-17 03:50:02 | 107 次阅读

xmake v2.1.5 版本正式发布,大量新特性更新
xmake v2.1.5 已发布,此版本带来了大量新特性更新,具体详见:xmake v2.1.5版本新特性介绍。更多使用说明,请阅读:文档手册。项目源码:Github, Gitee.新特性#83: 添加 add_csnippet,add_cxxsnippet到option来检测一些编译器特性#83: 添加用户扩展模块去探测程序,库文件以及其他主机环境添加find_program,&nb

发布于 2017-08-06 23:50:07 | 184 次阅读

XMake v2.1.4 发布,增加交互式命令执行(REPL)
概述此次更新,主要增强xmake lua插件,支持交互式命令执行(read-eval-print, REPL)以及一些稳定性问题修复。有时候在交互模式下,运行命令更方便测试和验证一些模块和api,也更加的灵活,不需要再去额外写一个脚本文件来加载。我们先看下,如何进入交互模式:# 不带任何参数执行,就可以进入 $ xmake lua

发布于 2017-05-10 03:28:47 | 153 次阅读

XMake v2.1.3 版本更新,修复安全和稳定性问题
XMake v2.1.3 发布了。此次更新主要修复xmake的一些稳定性问题,并且对安装和卸载提供更加安全的权限处理,相关更新细节见:改进权限问题,提升操作安全性并且此版本还对用户使用上的体验进行了一些优化,例如:减少冗余检测和提示信息,提升检测效率在非xmake工程自动生成xmake.lua时提供更加友好的提示,避免误操作在任意

发布于 2017-04-05 03:02:52 | 104 次阅读

xmake v2.1.2 版本更新,增强 Visual Studio 工程支持
概述 此版本主要增强了vs201x工程的生成,以及支持vs2017编译环境,并且针对archlinux提供更加方便的aur安装。项目主页查看文档 详细更新内容如下: 新特性 添加aur打包脚本,并支持用yaourt包管理器进行安装。 添加set_basename接口,便于定制化修改生成后的目标文件名 改进 支持vs2017编译环境

发布于 2017-03-24 02:55:56 | 175 次阅读

xmake v2.1.1 发布,基于 Lua 的跨平台构建工具
xmake v2.1.1 发布了。概述此版本重构了整个xmake,使得xmake更加方便地进行多语言扩展,并且在之前原有的构建语言支持上,新增了对golang, dlang 和 rust 程序构建支持。并且重写了所有文档,提供更加详细完整的接口手册和文档支持:新版文档License也从之前的LGPLv2.1改为Apache License 2.0,更加详

发布于 2017-03-06 00:28:30 | 129 次阅读

xmake v2.0.5,基于 Lua 的跨平台自动构建工具
新特性为解释器作用域增加一些内建模块支持针对windows x64平台,支持ml64汇编器改进增强ipairs和pairs接口,支持过滤器模式,简化脚本代码为vs201x工程生成增加文件filter移除core/tools目录以及msys工具链,在windows上使用xmake自编译core源码进行安装,优化xmake源码磁盘空间移除xmake/packages,默认模板安装不再内置

发布于 2016-10-31 02:51:06 | 129 次阅读

基于Lua的跨平台构建工具:xmake v2.0.4 发布
    更新内容    新特性            在xmake.lua中添加原生shell支持,例如:add_ldflags("$(shell pkg-config --libs sqlite3)")            编译windows目标程序,默认默认启用pdb符号文件       

发布于 2016-08-30 00:31:22 | 217 次阅读

xmake v2.0.3 发布,基于 Lua 的跨平台构建工具
xmake v2.0.3 发布了,此版本主要修复一些bugs,以及部分功能性增强,并且增加一些新特性。新特性增加头文件依赖自动检测和增量编译,提高编译速度在终端中进行颜色高亮提示添加调试器支持,xmake run -d program ...改进增强运行shell的系列接口更新luajit到v2.0.4版本改进makefile生成插件,移除对xmake的依赖,并且支持w

发布于 2016-07-18 03:54:47 | 341 次阅读

xmake v2.0.2 更新,基于 lua 的跨平台构建工具
xmake v2.0.2 发布,更新内容如下:此版本主要修复v2.0.1大版本更新后的一些 bug 和兼容性问题改进修改安装和卸载的 action 处理更新工程模板增强函数检测Bugs 修复#7: 修复用模板创建工程后, target 名不对问题:'[targetname]'#9: 修复 clang 不支持 c++11 的问题修复 api 作用域泄露问题修复在 windows 上的一

发布于 2016-07-07 03:17:17 | 148 次阅读

xmake v2.0.1 发布,跨平台自动构建工具
xmake v2.0.1 发布,更新内容(此版本重构了90%的代码):重构整个xmake.lua描述文件的解释器,更加的灵活可扩展更加严格的语法检测机制更加严格的作用域管理,实现沙盒引擎,对xmake.lua中脚本进行沙盒化处理,使得xmake.lua更加的安全简化模板的开发,简单几行描述就可以扩展一个新的自定义工程模板增加task任务机制,可运

发布于 2016-06-20 03:24:46 | 149 次阅读

xmake v1.0.4 发布,轻量级跨平台自动构建工具
xmake现在已经被homebrew收录,macosx/linux上可以通过homebrew/linuxbrew进行快速安装。。 v1.0.4更新: 增加对windows汇编器的支持 增强add_files接口,支持直接添加*.o/obj/a/lib文件,并且支持静态库的合并 为xmake create增加一些新的工程模板,支持tbox版本 支持swift代码 修复和增强工具链检测

发布于 2016-01-12 02:55:47 | 190 次阅读

轻量级跨平台自动构建工具发布:xmake v1.0.3
简介 XMake是一个跨平台自动构建工具,支持在各种主流平台上构建项目,类似cmake、automake、premake,但是更加的方便易用,工程描述语法更简洁直观,支持平台更多,并且集创建、配置、编译、打包、安装、卸载、运行于一体。在线文档在线源码支持特性 支持windows、mac、linux、ios、android等平台,自动检测不同平台

发布于 2015-12-02 02:27:48 | 202 次阅读

使用xmake编译工程
本篇内容为大家讲解的是使用xmake编译工程,感兴趣的同学参考学习下,本文内容如下:

发布于 2016-01-12 12:38:31 | 239 次阅读

xmake高级特性之自定义脚本使用
本篇内容为大家讲解的是xmake高级特性之自定义脚本使用,感兴趣的同学参考学习下,本文内容如下:

发布于 2016-01-11 23:14:06 | 201 次阅读

xmake高级特性之批量检测库函数
本篇内容为大家讲解的是xmake高级特性之批量检测库函数,感兴趣的同学参考学习下,本文内容如下:

发布于 2016-01-11 23:46:48 | 203 次阅读

xmake依赖包的添加和自动检测机制
本篇内容为大家讲解的是xmake依赖包的添加和自动检测机制,感兴趣的同学参考学习下,本文内容如下:

发布于 2016-01-15 06:13:39 | 231 次阅读

xmake高级特性之合并静态库
本篇内容为大家讲解的是xmake高级特性之合并静态库,感兴趣的同学参考学习下,本文内容如下:

发布于 2016-01-05 08:53:53 | 176 次阅读

xmake高级特性之自定义选项
本篇内容为大家讲解的是xmake高级特性之自定义选项,感兴趣的同学参考学习下,本文内容如下:

发布于 2016-01-04 02:05:49 | 196 次阅读


Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务