免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2895 | 回复: 8
打印 上一主题 下一主题

[C++] xmake新版本即将发布,大量新特性来袭,欢迎试用和内测。。 [复制链接]

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-07-31 14:30 |只看该作者 |倒序浏览
本帖最后由 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
复制代码


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




论坛徽章:
7
IT运维版块每日发帖之星
日期:2016-05-27 06:20:00IT运维版块每日发帖之星
日期:2016-06-09 06:20:00操作系统版块每日发帖之星
日期:2016-06-12 06:20:00程序设计版块每日发帖之星
日期:2016-06-12 06:20:00操作系统版块每日发帖之星
日期:2016-06-13 06:20:00IT运维版块每日发帖之星
日期:2016-06-17 06:20:002015-2016NBA季后赛纪念章
日期:2016-06-28 17:42:27
2 [报告]
发表于 2017-07-31 18:51 |只看该作者
不得不说你的毅力还是很大的,坚持这个搞了这么久

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
3 [报告]
发表于 2017-07-31 22:04 |只看该作者
lz自己开发的?佩服佩服。

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
4 [报告]
发表于 2017-08-07 11:01 |只看该作者
虽然搞了这么久,也没多少人用,不过我还是会继续搞下去,毕竟只要我自己受用,那么这个项目就是有价值的。。

后续我还会继续支持更多实用的新特性,敬请期待。。。

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
5 [报告]
发表于 2017-08-07 20:40 |只看该作者
有这功力和这时间真不如搞点真正用得上的。。。

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
6 [报告]
发表于 2017-08-07 21:30 |只看该作者
waruqi 发表于 2017-08-07 11:01
虽然搞了这么久,也没多少人用,不过我还是会继续搞下去,毕竟只要我自己受用,那么这个项目就是有价值的。 ...

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

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
7 [报告]
发表于 2017-08-08 10:14 |只看该作者
回复 5# cokeboL

我自己用的上就行了,一直在用。。

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
8 [报告]
发表于 2017-08-08 10:15 |只看该作者
本帖最后由 waruqi 于 2017-08-08 10:32 编辑

回复 6# fender0107401

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

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
9 [报告]
发表于 2017-08-17 15:17 |只看该作者
我新做了一个 xmake的 演示视频,可以看下哦:http://tboox.org/2017/08/16/update-v2.1.6/
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP