Releases: xmake-io/xmake
Releases · xmake-io/xmake
xmake v2.7.4
New features
- #3049: Add
xmake format
plugin - Add
plugin.compile_commands.autoupdate
rule - #3172: Add xmake.sh
- #3168: add support of C++23 standard modules on msvc
Changes
- #3056: Improve zig support
- #3060: Improve to detect msys2 for clang toolchains envirnoment
- #3071: Support rc for llvm/clang toolchain
- #3122: Generate dependencies of preprocessed modules to avoid importing #ifdef import
- #3125: Compile private C++20 modules
- #3133: Add support of internal partitions
- #3146: Add default components for packages
- #3192: JSON output for auto complete
Bugs fixed
- Fix requires-lock bug
- #3065: Fix missing package dependences
- #3082: Fix build.ninja generator
- #3092: Fix xrepo add-repo error handing
- #3013: Fix and support windows UNC path
- #2902: Fix file not access by another process occupied
- #3074: Fix CMakelists generator
- #3141: Fix import order on GCC and force it on clang and msvc #3141
- Fix tools/xmake package build directory
- #3159: Fix compile_commands for CLion
新特性
- #3049: 添加
xmake format
插件 - 添加
plugin.compile_commands.autoupdate
规则 - #3172: 添加 xmake.sh
- #3168: 为 msvc 添加 C++23 标准模块支持
改进
- #3056: 改进 Zig 支持
- #3060: 改进支持 msys2 的环境探测
- #3071: 为 llvm/clang 工具链支持 rc 编译
- #3122: 改进 c++20 模块依赖图的源码分析,支持预处理
- #3125: 增加私有 C++20 模块的编译支持
- #3133: 增加 internal partitions 模块支持
- #3146: 添加默认包组件支持
- #3192: 为 auto complete 增加 json 输出支持
Bugs 修复
xmake v2.7.3
New features
- A new optional configuration syntax. It is LSP friendly, automatically calls target_end() to achieve scope isolation.
- #2944: Add
gnu-rm.binary
andgnu-rm.static
rules and tests for embed project - #2636: Support package components
- Support armasm/armasm64 for msvc
- #3023: Add support for debugging with renderdoc
- #3022: Add flags for specific compilers and linkers
- #3025: C++ exception enabled/disabled switch method
- #3017: Support ispc compiler
Changes
- #2925: Improve doxygen plugin
- #2948: Support OpenBSD
- Add
xmake g --insecure-ssl=y
option to disable ssl certificate when downloading packages - #2971: Stabilize vs and vsxmake project generation
- #3000: Incremental compilation support for modules
- #3016: Improve clang/msvc to better support std modules
Bugs fixed
- #2949: Fix vs group
- #2952: Fix armlink for long args
- #2954: Fix c++ module partitions path issue
- #3033: Detect circular modules dependency
新特性
- 一种新的可选域配置语法,对 LSP 友好,并且支持域隔离。
- #2944: 为嵌入式工程添加
gnu-rm.binary
和gnu-rm.static
规则和测试工程 - #2636: 支持包组件
- 支持 msvc 的 armasm/armasm64
- #3023: 改进 xmake run -d,添加 renderdoc 调试器支持
- #3022: 为特定编译器添加 flags
- #3025: 新增 C++ 异常接口配置
- #3017: 支持 ispc 编译器规则
改进
- #2925: 改进 doxygen 插件
- #2948: 支持 OpenBSD
- 添加
xmake g --insecure-ssl=y
配置选项去禁用 ssl 证书检测 - #2971: 使 vs/vsxmake 工程生成的结果每次保持一致
- #3000: 改进 C++ 模块构建支持,实现增量编译支持
- #3016: 改进 clang/msvc 去更好地支持 std 模块
Bugs 修复
xmake v2.7.2
New features
- #2140: Support Windows Arm64
- #2719: Add
package.librarydeps.strict_compatibility
to strict compatibility for package linkdeps - #2810: Support os.execv to run shell script file
- #2817: Improve rule to support dependence order
- #2824: Pass cross-file to meson.install and trybuild
- #2856: Improve to debug package using the debug source directory
- #2859: Improve trybuild to build 3rd source library using xmake-repo scripts
- #2879: Support for dynamic creation and injection of rules and targets in script scope
- #2374: Allow xmake package to embed rules and scripts
- Add clang-cl toolchain
Changes
- #2745: Improve os.cp to support symlink
- #2773: Improve vcpkg packages to support freebsd
- #2778: Improve Improve xrepo.env for target
- #2783: Add digest algorithm option for wdk signtool
- #2787: Improve json to support empty array
- #2782: Improve to find matlab and runtime
- #2793: Improve mconfdialog
- #2804: Support macOS arm64/x86_64 cross-compilation for installing packages
- #2809: Improve cl optimization option
- Improve trybuild for meson/cmake/autoconf
- #2846: Improve to generate config files
- #2866: Better control over the order of execution of rules
Bugs fixed
- #2740: Fix build c++ modules stuck and slower for msvc
- #2875: Fix build linux driver error
- #2885: Fix pch not found with msvc/ccache
新特性
- #2140: 支持 Windows Arm64
- #2719: 添加
package.librarydeps.strict_compatibility
策略严格限制包依赖兼容性 - #2810: 支持 os.execv 去执行 shell 脚本文件
- #2817: 改进规则支持依赖顺序执行
- #2824: 传递 cross-file 交叉编译环境给 meson.install 和 trybuild
- #2856: xrepo 支持从当前指定源码目录调试程序
- #2859: 改进对三方库的 trybuild 构建,利用 xmake-repo 仓库脚本更加智能化地构建三方库
- #2879: 更好的动态创建和配置 target 和 rule
- #2374: 允许 xmake 包中引入自定义规则
- 添加 clang-cl 工具链
改进
- #2745: 改进 os.cp 支持符号链接复制
- #2773: 改进 vcpkg 包安装,支持 freebsd 平台
- #2778: 改进 xrepo.env 支持 target 的运行环境加载
- #2783: 添加摘要算法选项到 WDK 的 signtool 签名工具
- #2787: 改进 json 支持空数组
- #2782: 改进查找 matlib sdk 和运行时
- #2793: 改进 mconfdialog 配置操作体验
- #2804: 安装依赖包支持 macOS arm64/x86_64 交叉编译
- #2809: 改进 msvc 的编译优化选项
- 改进 trybuild 模式,为 meson/autoconf/cmake 提供更好的交叉编译支持
- #2846: 改进对 configfiles 的生成
- #2866: 更好地控制 rule 规则执行顺序
Bugs 修复
xmake v2.7.1
New features
- #2555: Add fwatcher module and
xmake watch
plugin command - Add
xmake service --pull 'build/**' outputdir
to pull the given files in remote server - #2641: Improve C++20 modules, support headerunits and project generators
- #2679: Support Mac Catalyst
Changes
- #2576: More flexible package fetching from cmake
- #2577: Improve add_headerfiles(), add
{install = false}
support - #2603: Disable
-fdirectives-only
for ccache by default - #2580: Set stdout to line buffering
- #2571: Improve task scheduling for parallel and distributed compilation based on memory/cpu usage
- #2410: Improve cmakelists generator
- #2690: Improve to pass toolchains to packages
- #2686: Support for incremental compilation and parse header file deps for keil/armcc/armclang
- #2562: Improve include deps for rc.exe
- Improve the default parallel building jobs number
Bugs fixed
- #2614: Fix building submodules2 tests for msvc
- #2620: Fix build cache for incremental compilation
- #2177: Fix python.library segmentation fault for macosx
- #2708: Fix link error for mode.coverage rule
- Fix rpath for macos/iphoneos frameworks and application
新特性
- #2555: 添加 fwatcher 模块和
xmake watch
插件命令 - 添加
xmake service --pull 'build/**' outputdir
命令去拉取远程构建服务器上的文件 - #2641: 改进 C++20 模块, 支持 headerunits 和 project 生成
- #2679: 支持 Mac Catalyst 构建
改进
- #2576: 改进从 cmake 中查找包,提供更过灵活的可选配置
- #2577: 改进 add_headerfiles(),增加
{install = false}
支持 - #2603: 为 ccache 默认禁用
-fdirectives-only
- #2580: 设置 stdout 到 line 缓冲输出
- #2571: 改进分布式编译的调度算法,增加 cpu/memory 状态权重
- #2410: 改进 cmakelists 生成
- #2690: 改机传递 toolchains 到包
- #2686: 改进 armcc/armclang 支持增量编译
- #2562: 改进 rc.exe 对引用文件依赖的解析和增量编译支持
- 改进默认的并行构建任务数
Bugs 修复
xmake v2.6.9
New features
Changes
- Improve tools.cmake to support wasm
- #2491: Fallback to local compiler/cache from remote if server is unreachable
- #2514: Disable Unity Build for project generator
- #2473: Improve apt::find_package to find it from pc files
- #2512: Improve remote service to support timeout configuration
Bugs fixed
- #2488: Fix remote compilation from windows to linux
- #2504: Fix remote build bug on msys2/cygwin
- #2525: Fix install package deps and stuck
- #2557: Fix cmake.find_package links bug
- Fix cache-induced path conflicts in preprocessed files
新特性
改进
- 改进 tools.cmake 支持 wasm 库构建
- #2491: 如果服务器不可访问,自动回退到本地编译和缓存
- #2514: 为工程生成器禁用 Unity Build
- #2473: 改进 apt::find_package,支持从 pc 文件中查找
- #2512: 改进远程服务支持超时配置
Bugs 修复
xmake v2.6.8
New features
- #2447: Add qt.qmlplugin rule and support of qmltypesregistrar
- #2446: Support target group for
xmake install
- #2469: Generate vcpkg-configuration.json
Changes
- Add
preprocessor.linemarkers
policy to disable linemarkers to speed up ccache/distcc - #2389: Improve
xmake run
to parallel running of targets - #2417: Switch the default value of option/showmenu
- #2440: Improve package installation error messages
- #2438: Make sure the solution and project file unchanged by sorting those tables
- #2434: Improve plugins manager, allow to handle multiples plugin repositories
- #2421: Improve config option menu
- #2425: Add
preprocessor.gcc.directives_only
policy - #2455: Improve optimize options for emcc
- #2467: Add compile fallback for msvc/ccache
- #2452: Add build.warning policy
Bugs Fixed
- #2435: fix the search bug when the package name has an extension name.
- #2445: Fix ccache bug for msvc
- #2452: Fix warnings output for ccache
新特性
- #2447: 添加 qt.qmlplugin 规则和 qmltypesregistrar 支持
- #2446: 支持 target 分组安装
- #2469: 产生 vcpkg-configuration.json
改进
- 添加
preprocessor.linemarkers
策略去禁用 linemarkers 去加速 ccache/distcc - #2389: 改进
xmake run
支持并行运行目标程序 - #2417: 切换 option/showmenu 的默认值,默认开启
- #2440: 改进安装包的失败错误信息
- #2438: 确保生成的 vsxmake 工程不会随机变动
- #2434: 改进插件管理器,允许多插件管理
- #2421: 改进配置选项菜单
- #2425: 添加
preprocessor.gcc.directives_only
策略 - #2455: 改进 emcc 的优化选项
- #2467: 支持回退到原始文件编译,兼容 msvc 预处理器的一些问题
- #2452: 添加 build.warning 策略
Bugs 修复
xmake v2.6.7
New features
- #2318: Add
xmake f --policies=
config argument to modify project policies
Changes
- fallback to source code build if the precompiled package is error
- #2387: Improve pkgconfig and find_package
- Add
build.ccache
policy
Bugs fixed
- #2382: Fix headeronly package configs
- #2388: Fix path bug
- #2385: Fix cmake/find_package
- #2395: Fix c++modules
- Fix find_qt bug
新特性
- #2318: 添加
xmake f --policies=
配置参数去修改默认策略
改进
- 如果预编译包构建失败,自动回退到源码包构建
- #2387: 改进 pkgconfig 和 find_package
- 添加
build.ccache
策略,用于在工程中配置编译缓存
Bugs 修复
xmake v2.6.6
New features
- #2327: Support nvc/nvc++/nvfortran in nvidia-hpc-sdk
- Add path instance interfaces
- #2334: Add lz4 compress module
- #2349: Add keil/c51 project support
- #274: Distributed compilation support
- Use builtin local cache instead of ccache
Changes
- #2309: Support user authorization for remote compilation
- Improve remote compilation to support lz4 compression
Bugs fixed
- Fix lua stack when select package versions
新特性
- #2327: 支持 nvidia-hpc-sdk 工具链中的 nvc/nvc++/nvfortran 编译器
- 添加 path 实例接口
- #2334: 添加 lz4 压缩模块
- #2349: 添加 keil/c51 工程支持
- #274: 跨平台分布式编译支持
- 使用内置的本地缓存替代 ccache
改进
- #2309: 远程编译支持用户授权验证
- 改进远程编译,增加对 lz4 压缩支持
Bugs 修复
- 修复选择包版本时候 lua 栈不平衡导致的崩溃问题
xmake v2.6.5
New features
- #2138: Support template package
- #2185: Add
--appledev=simulator
to improve apple simulator support - #2227: Improve cargo package with Cargo.toml file
- Improve
add_requires
to support git commit as version - #622: Support remote compilation
- #2282: Add
add_filegroups
to support file group for vs/vsxmake/cmake generator
Changes
- #2137: Improve path module
- Reduce 50% xmake binary size on macOS
- Improve tools/autoconf,cmake to support toolchain switching.
- #2221: Improve registry api to support unicode
- #2225: Support to parse import dependencies for protobuf
- #2265: Sort CMakeLists.txt
- Speed up
os.files
Bugs fixed
- #2233: Fix c++ modules deps
新特性
- #2138: 支持模板包
- #2185: 添加
--appledev=simulator
去改进 Apple 模拟器目标编译支持 - #2227: 改进 cargo 包,支持指定 Cargo.toml 文件
- 改进
add_requires
支持 git command 作为版本 - #622: 支持远程编译
- #2282: 添加
add_filegroups
接口为 vs/vsxmake/cmake generator 增加文件组支持
改进
- #2137: 改进 path 模块
- macOS 下,减少 50% 的 Xmake 二进制文件大小
- 改进 tools/autoconf,cmake 去更好地支持工具链切换
- #2221: 改进注册表 api 去支持 unicode
- #2225: 增加对 protobuf 的依赖分析和构建支持
- #2265: 排序 CMakeLists.txt
- 改进 os.files 的文件遍历速度
Bugs 修复
- #2233: 修复 c++ modules 依赖
xmake v2.6.4
New features
- #2011: Support to inherit base package
- Support to build and run xmake on sparc, alpha, powerpc, s390x and sh4
- Add on_download for package()
- #2021: Support Swift for linux and windows
- #2024: Add asn1c support
- #2031: Support linker scripts and version scripts for add_files
- #2033: Catch ctrl-c to get current backtrace for debugging stuck
- #2059: Add
xmake update --integrate
to integrate for shell - #2070: Add built-in xrepo environments
- #2117: Support to pass toolchains to package for other platforms
- #2121: Support to export the given symbols list
Changes
- #2036: Improve xrepo to install packages from configuration file, e.g.
xrepo install xxx.lua
- #2039: Improve filter directory for vs generator
- #2025: Support phony and headeronly target for vs generator
- Improve to find vstudio and codesign speed
- #2077: Improve vs project generator to support cuda
Bugs fixed
- #2005: Fix path.extension
- #2008: Fix windows manifest
- #2016: Fix object filename confict for vs project generator
新特性
- #2011: 支持继承和局部修改官方包,例如对现有的包更换 urls 和 versions
- 支持在 sparc, alpha, powerpc, s390x 和 sh4 上编译运行 xmake
- 为 package() 添加 on_download 自定义下载
- #2021: 支持 Linux/Windows 下构建 Swift 程序
- #2024: 添加 asn1c 支持
- #2031: 为 add_files 增加 linker scripts 和 version scripts 支持
- #2033: 捕获 ctrl-c 去打印当前运行栈,用于调试分析卡死问题
- #2059: 添加
xmake update --integrate
命令去整合 shell - #2070: 添加一些内置的 xrepo env 环境配置
- #2117: 支持为任意平台传递工具链到包
- #2121: 支持导出指定的符号列表,可用于减少动态库的大小
改进
- #2036: 改进 xrepo 支持从配置文件批量安装包,例如:
xrepo install xxx.lua
- #2039: 改进 vs generator 的 filter 目录展示
- #2025: 支持为 phony 和 headeronly 目标生成 vs 工程
- 优化 vs 和 codesign 的探测速度
- #2077: 改进 vs 工程生成器去支持 cuda