Skip to content

xmake v2.1.5

Compare
Choose a tag to compare
@waruqi waruqi released this 05 Aug 15:09
· 11883 commits to master since this release

New features

  • #83: Add add_csnippet and add_cxxsnippet into option for detecting some compiler features.
  • #83: Add user extension modules to detect program, libraries and files.
  • Add find_program, find_file, find_library, find_tool and find_package module interfaces.
  • Add net.* and devel.* extension modules
  • Add val() api to get the value of builtin-variable, .e.g val("host"), val("env PATH"), val("shell echo hello") and val("reg HKEY_LOCAL_MACHINE\\XX;Value")
  • Support to compile the microsoft resource file (.rc)
  • Add has_flags, features and has_features for detect module interfaces.
  • Add option.on_check, option.after_check and option.before_check api
  • Add target.on_load api
  • #132: Add add_frameworkdirs api
  • Add lib.detect.has_xxx and lib.detect.find_xxx apis.
  • Add add_moduledirs api
  • Add includes api instead of add_subdirs and add_subfiles
  • #133: Improve the project plugin to generate compile_commands.json by run xmake project -k compile_commands
  • Add set_pcheader and set_pcxxheader to support the precompiled header, support gcc, clang, msvc
  • Add xmake f -p cross platform and support the custom platform

Changes

  • #87: Add includes and links from target deps automatically
  • Improve import to load user extension and global modules
  • #93: Improve xmake lua to run a single line command
  • Improve to print gcc error and warning info
  • Improve print interface to dump table
  • #111: Add --root common option to allow run xmake command as root
  • #113: Privilege manage when running as root, store the root privilege and degrade.
  • Improve xxx_script in xmake.lua to support pattern match, .e.g on_build("iphoneos|arm*", function (target) end)
  • improve builtin-variables to support to get the value envirnoment and registry
  • Improve to detect vstudio sdk and cross toolchains envirnoment
  • #71: Improve to detect compiler and linker from env vars
  • Improve the option detection (cache and multi-jobs) and increase 70% speed
  • #129: Check link deps and cache the target file
  • Support *.asm source files for vs201x project plugin
  • Mark add_bindings and add_rbi�ndings as deprecated
  • Optimize xmake rebuild speed on windows
  • Move core.project.task to core.base.task
  • Move echo and app2ipa plugins to xmake-plugins repo.
  • Add new api set_config_header("config.h", {prefix = ""}) instead of set_config_h and set_config_h_prefix

Bugs fixed

  • Fix try-catch-finally
  • Fix interpreter bug when parsing multi-level subdirs
  • #115: Fix the path problem of the install script get.sh
  • Fix cache bug for import()

新特性

  • #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()导入接口的缓存问题