xmake v2.1.5版本正式发布,大量新特性更新

2017-08-05 ruki 更多博文 » 博客 » GitHub »

xmake lua 版本更新 包查找 编译器特性检测

原文链接 https://waruqi.github.io/2017/08/05/update-v2.1.5.cn/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


此版本带来了大量新特性更新,具体详见:xmake v2.1.5版本新特性介绍

更多使用说明,请阅读:文档手册

项目源码:Github, Gitee.

新特性

  • #83: 添加 add_csnippetadd_cxxsnippetoption来检测一些编译器特性
  • #83: 添加用户扩展模块去探测程序,库文件以及其他主机环境
  • 添加find_program, find_file, find_library, find_toolfind_package 等模块接口
  • 添加net.*devel.*扩展模块
  • 添加val()接口去获取内置变量,例如:val("host"), val("env PATH"), val("shell echo hello") and val("reg HKEY_LOCAL_MACHINE\\XX;Value")
  • 增加对微软.rc资源文件的编译支持,当在windows上编译时,可以增加资源文件了
  • 增加has_flags, featureshas_features等探测模块接口
  • 添加option.on_check, option.after_checkoption.before_check 接口
  • 添加target.on_load接口
  • #132: 添加add_frameworkdirs接口
  • 添加lib.detect.has_xxxlib.detect.find_xxx接口
  • 添加add_moduledirs接口在工程中定义和加载扩展模块
  • 添加includes接口替换add_subdirsadd_subfiles
  • #133: 改进工程插件,通过运行xmake project -k compile_commands来导出compile_commands.json
  • 添加set_pcheaderset_pcxxheader去支持跨编译器预编译头文件,支持gcc, clangmsvc
  • 添加xmake f -p cross平台用于交叉编译,并且支持自定义平台名

改进

  • #87: 为依赖库目标自动添加:includeslinks
  • 改进import接口,去加载用户扩展模块
  • #93: 改进 xmake lua,支持运行单行命令和模块
  • 改进编译错误提示信息输出
  • 改进print接口去更好些显示table数据
  • #111: 添加--root通用选项去临时支持作为root运行
  • #113: 改进权限管理,现在作为root运行也是非常安全的
  • 改进xxx_script工程描述api,支持多平台模式选择, 例如:on_build("iphoneos|arm*", function (target) end)
  • 改进内置变量,支持环境变量和注册表数据的获取
  • 改进vstudio环境和交叉工具链的探测
  • #71: 改进从环境变量中探测链接器和编译器
  • 改进option选项检测,通过多任务检测,提升70%的检测速度
  • #129: 检测链接依赖,如果源文件没有改变,就不必重新链接目标文件了
  • 在vs201x工程插件中增加对*.asm文件的支持
  • 标记add_bindingsadd_rbindings为废弃接口
  • 优化xmake rebuild在windows上的构建速度
  • core.project.task模块迁移至core.base.task
  • echoapp2ipa 插件迁移到 xmake-plugins 仓库
  • 添加set_config_header("config.h", {prefix = ""}) 代替 set_config_hset_config_h_prefix

Bugs修复

  • 修复try-catch-finally
  • 修复解释器bug,解决当加载多级子目录时,根域属性设置不对
  • #115: 修复安装脚本get.sh的路径问题
  • 修复import()导入接口的缓存问题