概述
此版本主要增强了vs201x工程的生成,以及支持vs2017编译环境,并且针对archlinux提供更加方便的aur安装。
项目主页
查看文档
详细更新内容如下:
新特性
添加aur打包脚本,并支持用yaourt包管理器进行安装。
添加set_basename接口,便于定制化修改生成后的目标文件名
改进
支持vs2017编译环境
支持编译android版本的rust程序
增强vs201x工程生成插件,支持同时多模式、架构编译
Bugs修复
修复编译android程序,找不到系统头文件问题
修复检测选项行为不正确问题
#57: 修复代码文件权限到0644
构建演示
继续阅读 »
Android 6.0已经推出,更新了许多新的特性,而最好的学习方法就是直接阅读源码。所以最先想到的是下载最新的源码包。
环境
系统:OS X 10.11.4
git : 2.6.4
make : 3.81
移动硬盘
继续阅读 »
MQTT简介
MQTT(Message Queue Telemetry Transport 消息队列遥测传输)是一种客户端服务端发布订阅消息传输的协议。它具有轻量级、开源、简单以及易于接入的特点。正是因为这些特点,使得其可以应用于各种使用场景,包括远程端对端的交互,物联网等。
继续阅读 »
九月除了看 H.264,还看了一本好书:《程序员的自我修养:链接、装载与库》。对这本书我只想说一句话,相见恨晚。
继续阅读 »
首先我们通过内置的工程模板创建一个空工程:
```bash
$ xmake create -P ./hello
create hello ...
create ok!👌
```
这个时候xmake将会产生一些工程文件,如下:
```bash
$ cd ./hello
$ tree .
.
├── src
│ └── main.c
└── xmake.lua
```
这个简单的程序仅仅只是为了打印输出: hello xmake!
```bash
$ cat ./src/main.c
include
int main(int argc, char** argv)
{
printf("hello xmak
继续阅读 »
在提交代码时,有许多的初学者甚至是老程序员也会犯一个错误,那就是把一些不应该提交到源代码仓库的文件也提交到仓库,比如编译后的输出bin/目录,本地工程的一些设置文件如.idea,.settings。如果一旦提交到远程仓库,那么还将影响到团队中的其他成员。每次更新的时候,都会将别人的设置更新下来,可能会导致编译不通过等诸多问题。一旦这些文件受git管控,那么想删掉它就麻烦了。如果本地删除,再commit和push,那么其他成员更新代码的时候,他本地的也会被删除。对于编译输出的文件还好,再编译一次就可以。如果是环境设置类的文件,那么对方就惨了。会导致许多莫名的错误。
继续阅读 »
为了进一步提升构建效率,减少没必要的重建,xmake新增了对头文件的依赖检测,以及自动构建仅仅需要重新编译的源文件,提升编译速度,并且完全支持windows、linux、macosx等大部分平台。。
由于检测过程本身也会有一些性能损耗,因此xmake对此进行了深度优化,实现极速依赖检测:
对依赖头文件进行过滤,如果是系统头文件,非自身项目的第三方头文件,自动忽略,这些头文件基本上不会再开发项目的时候,经常变动,所以没必要去每次检测他们,如果真有变动,手动重建下就行了
针对每个头文件的检测结果进行缓存,直接应用到下一个源文件上,减少重复检测的次数
其他一些细节优化
继续阅读 »
新特性
增加smallest参数配置选项,实现一键配置最小化编译,禁用所有扩展模块和依赖库
增加进程创建和控制接口
改进
增强环境变量设置接口
修改xmake.lua支持最新版xmake v2.x, 简化编译配置
Bugs修复
修复ltimer定时器不准问题
修复asio部分内存泄露问题
修复asio/httpd在linux下keepalive模式,响应很慢问题
修复windows下路径处理的一些bug
继续阅读 »
内建变量
内置在字符串中,例如:
lua
set_objectdir("$(buildir)/.objs")
其中的$(buildir)就是内建变量,这些是随着每次xmake config的配置改变而自动改变的。
目前支持的一些变量如下:
$(buildir): 编译输出目录,可通过:xmake f -o /tmp 修改
$(projectdir): 工程主目录,可通过:xmake f -P ./project 修改
$(os): 编译目标的操作系统
$(plat): 编译目标的所在的平台,可通过:xmake f -p android修改
$(mode): 编译模式:debug、release、profile,可
继续阅读 »