xmake v2.2.8 发布, 新版vs工程生成插件
这个版本提供了全新的vs工程生成插件(非常感谢@OpportunityLiu的贡献),跟之前的生成vs的插件处理模式上有很大的不同,原先生成的vs工程是把所有源文件展开后,转交给vs来处理编译。
此外,我们重写了整个luajit的io runtime,使其更好的支持unicode字符集,尤其是windows上对中文字符的支持。
最后新版本开始尝试直接安装lua bitcode脚本,来减少安装包的大小(控制在2.4M以内),提高xmake启动加载的效率。
不过,需要注意的事,此版本的源码结构改成了git submodule来维护,所以老版本的xmake update
无法完整支持对新版本的更新,请参考安装文档进行完整安装。
新特性介绍
使用新版vsxmake集成编译
原先的vs生成插件对xmake的rules是没法支持的。因为xmake的rules里面用了很多的on_build
此类自定义脚本,无法展开,所以像qt, wdk此类的项目就没法支持导出到vs里面进行编译了。
因此,为了解决这个问题,新版本的vs生成插件通过在vs下直接调用xmake命令,去执行编译操作,并且对intellsence和定义跳转,还有断点调试也做了支持。
具体使用方式跟老版本类似:
$ xmake project -k [vsxmake2010|vsxmake2013|vsxmake2015|..] -m "debug;release"
如果没指明版本,那么xmake会自动探测当前已有的vs版本来生成:
$ xmake project -k vsxmake -m "debug;release"
另外,vsxmake插件还会额外生成一个自定义的配置属性页,用于在vs里面,方便灵活的修改和追加一些xmake编译配置,甚至可以在里面配置切换到其他交叉工具链,实现在vs中对android, linux等其他平台的交叉编译。
顺便提下,这个vsxmake插件生成的工程,也是支持选择指定一批源文件来快速编译的。
Unicode编码支持
原先的版本在某些windows环境下,并不能很好的处理unicode编码,显示的中文编译错误信息也可能出现乱码的情况,新版本中xmake多内置的luajit/io完全进行了重写,在win下对unicode编码提供更好的支持,哪怕是在xmake.lua或者源文件路径中存在emoji等字符都可以很好的处理。
target("程序") set_kind("binary") add_files("源文件🎆/*.c") add_includedirs("头文件✨") before_build(function() print("开始编译😊") end) after_build(function() print("结束编译🎉") end)
Protobuf c/c++构建支持
xmake-repo官方仓库新增了protobuf-c/cpp依赖包,用户可以很方便的在xmake.lua中集成使用protobuf了,配合内置的protobuf.c
/protobuf.cpp
构建规则, 我们可以在项目直接添加*.proto
文件来开发基于protobuf的程序,例如:
使用c库
add_requires("protobuf-c") target("console_c") set_kind("binary") add_packages("protobuf-c") add_files("src/*.c") add_files("src/*.proto", {rules = "protobuf.c"})
使用c++库
add_requires("protobuf-cpp") target("console_c++") set_kind("binary") set_languages("c++11") add_packages("protobuf-cpp") add_files("src/*.cpp") add_files("src/*.proto", {rules = "protobuf.cpp"})
Termux/Android支持
新版本xmake对android/termux进行了很好的支持,使用户可以随时随地在android手机上进行编码和编译,配合vim效果非常好。
更新内容
新特性
- 添加protobuf c/c++构建规则
- #468: 添加对 Windows 的 UTF-8 支持
- #472: 添加
xmake project -k vsxmake
去更好的支持vs工程的生成,内部直接调用xmake来编译 - #487: 通过
xmake --files="src/*.c"
支持指定一批文件进行编译。 - 针对io模块增加文件锁接口
- #513: 增加对android/termux终端的支持,可在android设备上执行xmake来构建项目
- #517: 为target增加
add_cleanfiles
接口,实现快速定制化清理文件 - #537: 添加
set_runenv
接口去覆盖写入系统envs
改进
- #257: 锁定当前正在构建的工程,避免其他xmake进程同时对其操作
- 尝试采用/dev/shm作为os.tmpdir去改善构建过程中临时文件的读写效率
- #542: 改进vs系列工具链的unicode输出问题
- 对于安装的lua脚本,启用lua字节码存储,减少安装包大小(<2.4M),提高运行加载效率。
Bugs修复
- #549: 修复新版vs2019下检测环境会卡死的问题
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Keycloak 7.0.0 发布,身份和访问管理系统
Keycloak 7.0.0 发布了。Keycloak 是一个针对现代应用和服务的开源身份和访问管理系统,为应用程序和安全服务添加最小化身份验证。无需处理存储用户或验证用户,支持单点登录和权限控制功能,开箱即用。 此版本亮点: Keycloak 服务器升级到 WildFly 17。 支持 Apache Tomcat 9 的 Java 适配器。 新的帐户控制台和帐户 REST API 上有一些改进。 Keycloak 可以支持根据 Json Web Encryption(JWE)规范签名和加密的 ID 令牌。 测试和发布自动化改进。 其它更新内容包括: JavaScript 适配器添加 PKCE 支持。 Keycloak 容器镜像添加 Oracle 数据库支持。 SAML 适配器支持 Clock Skew。 Node.js 适配器支持 TypeScript。 Gatekeeper 现在允许在 header 中提供未加密的令牌,在 cookie 中加密。 管理控制台中的新选项卡,用于显示客户端角色的用户列表 详情查看更新说明: https://www.keycloak.org/docs/l...
- 下一篇
巡云轻论坛系统 3.4 发布,增加会员权限功能
v3.4 主要更新: 1.增加会员权限功能 2.私信界面修改为聊天气泡对话模式 3.修复修改密码成功后刷新页面出现的错误 4.增加特权用户免审核设置项 5.调整前台页面,让内容少时不再出现滚动条 6.调整前台表格界面 轻论坛系统简介 巡云轻论坛系统采用JAVA+MYSQL架构,自适应手机端和电脑端,界面简洁,性能高效。 数据库表结构设计使用分表方案,提高系统的负载能力。 后台数据库备份/还原、全站指定目录打包、一键自动升级等功能使维护简单方便。 演示网站:http://www.diyhi.com/cms.html页面可获取前后台演示地址、登录账号和密码 开源代码托管平台 码云:https://gitee.com/diyhi/bbs github:https://github.com/diyhi/bbs 私信界面效果和话题列表权限效果
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- 设置Eclipse缩进为4个空格,增强代码规范
- Mario游戏-低调大师作品
- MySQL8.0.19开启GTID主从同步CentOS8