Chinaunix

标题: xmake新版本即将发布,大量新特性来袭,欢迎试用和内测。。 [打印本页]

作者: waruqi    时间: 2017-07-31 14:30
标题: xmake新版本即将发布,大量新特性来袭,欢迎试用和内测。。
本帖最后由 waruqi 于 2017-07-31 14:39 编辑

2.1.5版本现已进入收尾阶段,此版本加入了一大波新特性,目前正在进行稳定性测试和修复,在这里,先来介绍下新版本中引入了哪些些新特性和改进。

1. 提供类似cmake的find_*系列接口,实现各种查找,例如:find_package, find_library, find_file, ...2. 提供模块接口,实现编译器的各种检测,例如:has_features, has_flags, has_cincludes, has_cfuncs, ...
3. 实现大量扩展模块,提供文件下载、解压缩、git操作等接口4. 支持预编译头文件支持,改进c++编译效率
5. 支持在工程中自定义模块进行扩展
6. 提供代码片段检测接口,实现更加灵活定制化的检测需求
7. 改进option和target,提供更加动态化的配置
8. 通过find_package实现包依赖管理2.0版本
9. 改进root权限问题,实现更加安全的root下运行
10. 提供compile_commands.json导出插件
11. 改进vs201x工程生成插件,支持多模式、多架构同时构建和自由切换不干扰

利用find_package查找依赖包
    此接口参考了cmake对于find_*系列接口的设计,实现在项目中动态的查找和添加包依赖。

  1. <blockquote>target("test")
复制代码

上述描述代码,通过lib.detect.find_package来查找包,如果找到zlib包,则将links, includedirs和linkdirs等信息添加到target中去。

实现包管理2.0
2.1.4版本之前,xmake对于包管理,是通过在项目内置pkg/zlib.pkg方式,来检测链接的,虽然也支持自动检测,但是查找功能有限,并且内置的各个架构的二进制库到项目,对git并不是很友好。

现在通过find_package和option,我们可以实现更好的包管理:

  1. <blockquote><blockquote>target("test")
复制代码

通过定义一个名为zlib的选项作为包,关联到target,在选项被检测之前,先从系统中查找zlib包,如果存在,则添加对应的links, linkdirs等配置信息,然后进行选项检测,如果选项检测通过,这个target在编译的时候就会启用zlib。

如果要手动禁用这个zlib包,使其不参与自动检测和链接,只需要:
  1. <blockquote>$ xmake f --zlib=n
复制代码

完整内容见:http://tboox.org/cn/2017/07/29/new-features-v2.1.5/

实在是扛不住这编辑器了,就不能支持下markdown么,= =





作者: qianguozheng    时间: 2017-07-31 18:51
不得不说你的毅力还是很大的,坚持这个搞了这么久
作者: fender0107401    时间: 2017-07-31 22:04
lz自己开发的?佩服佩服。
作者: waruqi    时间: 2017-08-07 11:01
虽然搞了这么久,也没多少人用,不过我还是会继续搞下去,毕竟只要我自己受用,那么这个项目就是有价值的。。

后续我还会继续支持更多实用的新特性,敬请期待。。。
作者: cokeboL    时间: 2017-08-07 20:40
有这功力和这时间真不如搞点真正用得上的。。。
作者: fender0107401    时间: 2017-08-07 21:30
waruqi 发表于 2017-08-07 11:01
虽然搞了这么久,也没多少人用,不过我还是会继续搞下去,毕竟只要我自己受用,那么这个项目就是有价值的。 ...

我也有一套自己的全自动编译系统,不过是基于Perl和CMake的,主要用于管理我自己的CPP项目,用着特别方便。

作者: waruqi    时间: 2017-08-08 10:14
回复 5# cokeboL

我自己用的上就行了,一直在用。。
作者: waruqi    时间: 2017-08-08 10:15
本帖最后由 waruqi 于 2017-08-08 10:32 编辑

回复 6# fender0107401

恩,用自己的就是方便,我也是为了方便维护自己的项目才写的,因为自己不太喜欢cmake的语法。。
xmake的工程描述更加简洁,可读性好,也更加的灵活。这里有个 给libuv写的xmake.lua 例子,可以看看哦:xmake.lua

作者: waruqi    时间: 2017-08-17 15:17
我新做了一个 xmake的 演示视频,可以看下哦:http://tboox.org/2017/08/16/update-v2.1.6/




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2