此版本主要修复一些稳定性问题,并且对一些细节进行改进优化,并且提供xmake-vscode插件深度集成vscode编辑器环境。
更多使用说明,请阅读:文档手册。
add_imports
去为target,option和package的自定义脚本批量导入模块,简化自定义脚本xmake -y/--yes
去确认用户输入xmake l package.manager.install xxx
模块,进行跨平台一致性安装软件包xmake macro ..
快速运行最近一次命令cprint()
,支持24位真彩色输出add_rpathdirs()
增加对@loader_path
和$ORIGIN
的内置变量支持,提供可迁移动态库加载set_version("x.x.x", {build = "%Y%m%d%H%M"})
支持buildversion设置COLORTERM=nocolor
环境变量开关,禁用彩色输出add_rbindings
和add_bindings
接口lib.detect.find_program
模块接口-w|--warning
参数来启用实时警告输出最近打算给xmake写一些IDE和编辑器的集成插件,发现vscode的编辑器插件比较容易上手的,就先研究了下vscode的插件开发流程,并且完成了xmake-vscode插件的开发。
我们先来看几张最后的效果图:
本文主要介绍下xmake的整体架构设计,以及源码结构的布局和模块划分。 如果你想深度使用xmake,开发xmake插件、工程自定义脚本或者想为xmake贡献一些代码和特性,可以通过此本的介绍,对xmake项目整体有个大概的了解。,
源码地址:Github
./xmake/
├── actions # 内建的一些基础task,用于基本的构建安装等操作
├── core # xmake的核心模块,提供最底层的实现支持
├── languages # 所有的语言相关特性支持和扩展,都在此目录下
├── modules # 内置的扩展模块,可用`import`导入使用
├── packages # 内置包目录,提供xmake所需的一些必须依赖包支持,例如:git等,其他第三方包放在独立xmake-repo下
├── platforms # 平台支持目录,提供各个构建平台的配置信息和脚本
├── plugins # 插件目录,提供一些内置的插件支持,例如:生成IDE工程,宏脚本等。。
├── scripts # 放置一些杂七杂八的shell、perl等其他语言脚本,例如:gas-preprocessor.pl
└── templates # 工程模板目录,提供一些`xmake create`创建工程所需的内置模板
为了简化xmake.lua
中自己定义脚本、插件脚本以及扩展模块的开发,提供更高的安全性,xmake采用了沙盒的方式去加载他们,每个脚本都独立在一个单独的沙盒中,并且有独立的作用域支持。
在xmake的整个目录结构中,除了xmake/core
底层核心模块,其他的顶层目录全部放置在沙盒中加载运行,来简化代码开发,提高易用性和安全性。
这样有什么好处呢?
import("core.base.task")
的模块导入方式,提供更加方便高效的模块加载支持$(val)
等内置变量的自动转换下面我们可以直观感受下原生代码
和沙盒代码
的区别:
--smallest=y|n
选项到--small=y|n
stat64
支持大文件信息获取tb_file_copy
,更加快速的文件copy,并且修复copy后文件权限丢失问题此版本主要修复一些稳定性问题。
更多使用说明,请阅读:文档手册。
add_files
,支持对files粒度进行编译选项的各种配置,更加灵活。target.add_deps
接口,添加继承配置,允许手动禁止依赖继承,例如:add_deps("test", {inherit = false})
tbox.pkg
二进制依赖,直接集成tbox源码进行编译target:add
和option:add
问题/ZI
的兼容性问题,用/Zi
替代