xmake新增智能代码扫描编译模式

2017-01-10 10:01:40来源:oschina作者:ruki人点击

第七城市


最近给[xmake](http://xmake.io/cn)增加了一个新特性,对于一份工程源码,可以不用编写makefile,也不用编写各种make相关的工程描述文件(例如:xmake.lua,makefile.am, cmakelist.txt等)
xmake就可以直接编译他们,这是如何做到的呢,简单来说下实现原理:
1. 首先扫描当前目录下,xmake所以支持的所有源代码文件
2. 分析代码,检测哪些代码拥有main入口函数
3. 所有没有main入口的代码编译成静态库
4. 带有main入口的代码,编译成可执行程序,同时链接其他静态库程序
这种代码扫描和智能编译,非常简单,目前xmake还不支持多级目录扫描,只对单级目录的代码进行扫描编译。。
#### 开源代码的移植和编译
虽然这种方式,并不是非常智能,限制也不少,但是对于想临时写些代码进行编译运行,或者临时想交叉编译一些简单的开源库代码
这种方式已经足够使用了,下面看下一个实际的例子:
我下载了一份zlib-1.2.10的源码,想要编译它,只需要进入zlib的源码目录执行:
```bash
$ cd zlib-1.2.10
$ xmake
```
就行了,输出结果如下:```
xmake.lua not found, scanning files ..
target(zlib-1.2): static
[+]: ./adler32.c
[+]: ./compress.c
[+]: ./crc32.c
[+]: ./deflate.c
[+]: ./gzclose.c
[+]: ./gzlib.c
[+]: ./gzread.c
[+]: ./gzwrite.c
[+]: ./infback.c
[+]: ./inffast.c
[+]: ./inflate.c
[+]: ./inftrees.c
[+]: ./trees.c
[+]: ./uncompr.c
[+]: ./zutil.c
xmake.lua generated, scan ok!
第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台