New features
- #83: Add
add_csnippetandadd_cxxsnippetintooptionfor detecting some compiler features. - #83: Add user extension modules to detect program, libraries and files.
- Add
find_program,find_file,find_library,find_toolandfind_packagemodule interfaces. - Add
net.*anddevel.*extension modules - Add
val()api to get the value of builtin-variable, .e.gval("host"),val("env PATH"),val("shell echo hello")andval("reg HKEY_LOCAL_MACHINE\\XX;Value") - Support to compile the microsoft resource file (.rc)
- Add
has_flags,featuresandhas_featuresfor detect module interfaces. - Add
option.on_check,option.after_checkandoption.before_checkapi - Add
target.on_loadapi - #132: Add
add_frameworkdirsapi - Add
lib.detect.has_xxxandlib.detect.find_xxxapis. - Add
add_moduledirsapi - Add
includesapi instead ofadd_subdirsandadd_subfiles - #133: Improve the project plugin to generate
compile_commands.jsonby runxmake project -k compile_commands - Add
set_pcheaderandset_pcxxheaderto support the precompiled header, support gcc, clang, msvc - Add
xmake f -p crossplatform and support the custom platform
Changes
- #87: Add includes and links from target deps automatically
- Improve
importto load user extension and global modules - #93: Improve
xmake luato run a single line command - Improve to print gcc error and warning info
- Improve
printinterface to dump table - #111: Add
--rootcommon option to allow run xmake command as root - #113: Privilege manage when running as root, store the root privilege and degrade.
- Improve
xxx_scriptinxmake.luato support pattern match, .e.gon_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
*.asmsource files for vs201x project plugin - Mark
add_bindingsandadd_rbi�ndingsas deprecated - Optimize
xmake rebuildspeed on windows - Move
core.project.tasktocore.base.task - Move
echoandapp2ipaplugins to xmake-plugins repo. - Add new api
set_config_header("config.h", {prefix = ""})instead ofset_config_handset_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_csnippet,add_cxxsnippet到option来检测一些编译器特性 - #83: 添加用户扩展模块去探测程序,库文件以及其他主机环境
- 添加
find_program,find_file,find_library,find_tool和find_package等模块接口 - 添加
net.*和devel.*扩展模块 - 添加
val()接口去获取内置变量,例如:val("host"),val("env PATH"),val("shell echo hello")andval("reg HKEY_LOCAL_MACHINE\\XX;Value") - 增加对微软.rc资源文件的编译支持,当在windows上编译时,可以增加资源文件了
- 增加
has_flags,features和has_features等探测模块接口 - 添加
option.on_check,option.after_check和option.before_check接口 - 添加
target.on_load接口 - #132: 添加
add_frameworkdirs接口 - 添加
lib.detect.has_xxx和lib.detect.find_xxx接口 - 添加
add_moduledirs接口在工程中定义和加载扩展模块 - 添加
includes接口替换add_subdirs和add_subfiles - #133: 改进工程插件,通过运行
xmake project -k compile_commands来导出compile_commands.json - 添加
set_pcheader和set_pcxxheader去支持跨编译器预编译头文件,支持gcc,clang和msvc - 添加
xmake f -p cross平台用于交叉编译,并且支持自定义平台名
改进
- #87: 为依赖库目标自动添加:
includes和links - 改进
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_bindings和add_rbindings为废弃接口 - 优化
xmake rebuild在windows上的构建速度 - 将
core.project.task模块迁移至core.base.task - 将
echo和app2ipa插件迁移到 xmake-plugins 仓库 - 添加
set_config_header("config.h", {prefix = ""})代替set_config_h和set_config_h_prefix
Bugs修复
- 修复
try-catch-finally - 修复解释器bug,解决当加载多级子目录时,根域属性设置不对
- #115: 修复安装脚本
get.sh的路径问题 - 修复
import()导入接口的缓存问题