Releases: xmake-io/xmake
Releases · xmake-io/xmake
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
Bugs 修复
xmake v2.6.3
New features
- #1298: Support vcpkg manifest mode and select version for package/install
- #1896: Add
python.library
rule to build pybind modules - #1939: Add
remove_files
,remove_headerfiles
and markdel_files
as deprecated - Made on_config as the official api for rule/target
- Add riscv32/64 support
- #1970: Add CMake wrapper for Xrepo C and C++ package manager.
- Add builtin github mirror pac files,
xmake g --proxy_pac=github_mirror.lua
Changes
- #1923: Improve to build linux driver, support set custom linux-headers path
- #1962: Improve armclang toolchain to support to build asm
- #1959: Improve vstudio project generator
- #1969: Add default option description
Bugs fixed
新特性
- #1298: 支持 vcpkg 清单模式安装包,实现安装包的版本选择
- #1896: 添加
python.library
规则去构建 pybind 模块,并且支持 soabi - #1939: 添加
remove_files
,remove_headerfiles
并且标记del_files
作为废弃接口 - 将 on_config 作为正式的公开接口,用于 target 和 rule
- 添加 riscv32/64 支持
- #1970: 添加 CMake wrapper 支持在 CMakelists 中去调用 xrepo 集成 C/C++ 包
- 添加内置的 github 镜像加速 pac 代理文件,
xmake g --proxy_pac=github_mirror.lua
改进
- #1923: 改进构建 linux 驱动,支持设置自定义 linux-headers 路径
- #1962: 改进 armclang 工具链去支持构建 asm
- #1959: 改进 vstudio 工程生成器
- #1969: 添加默认的 option 描述
Bugs 修复
xmake v2.6.2
New features
- #1902: Support to build linux kernel driver modules
- #1913: Build and run targets with given group pattern
Change
- #1872: Escape characters for set_configvar
- #1888: Improve windows installer to avoid remove other files
- #1895: Improve
plugin.vsxmake.autoupdate
rule - #1893: Improve to detect icc and ifort toolchains
- #1905: Add support of external headers without experimental for msvc
- #1904: Improve vs201x generator
- Add
XMAKE_THEME
envirnoment variable to switch theme - #1907: Add
-f/--force
to force to create project in a non-empty directory - #1917: Improve to find_package and configurations
Bugs fixed
新特性
改进
- #1872: 支持转义 set_configvar 中字符串值
- #1888: 改进 windows 安装器,避免错误删除其他安装目录下的文件
- #1895: 改进
plugin.vsxmake.autoupdate
规则 - #1893: 改进探测 icc 和 ifort 工具链
- #1905: 改进 msvc 对 external 头文件搜索探测支持
- #1904: 改进 vs201x 工程生成器
- 添加
XMAKE_THEME
环境变量去切换主题配置 - #1907: 添加
-f/--force
参数使得xmake create
可以在费控目录被强制创建 - #1917: 改进 find_package 和配置
Bugs 修复
xmake v2.6.1
New features
- #1799: Support mixed rust & c++ target and cargo dependences
- Add
utils.glsl2spv
rules to compile .vert/.frag shader files to spirv file and binary c header file
Changes
- Switch to Lua5.4 runtime by default
- #1776: Improve system::find_package, support to find package from envs
- #1786: Improve apt:find_package, support to find alias package
- #1819: Add precompiled header to cmake generator
- Improve C++20 module to support std libraries for msvc
- #1792: Add custom command in vs project generator
- #1835: Improve MDK program supports and add
set_runtimes("microlib")
- #1858: Improve to build c++20 modules with libraries
- Add $XMAKE_BINARY_REPO and $XMAKE_MAIN_REPO repositories envs
- #1865: Improve openmp projects
- #1845: Install pdb files for static library
Bugs Fixed
- Fix semver to parse build string with zero prefix
- #50: Fix rule and build bpf program errors
- #1610: Fix
xmake f --menu
not responding in vscode and support ConPTY terminal virtkeys
新特性
- #1799: 支持混合 Rust 和 C++ 程序,以及集成 Cargo 依赖库
- 添加
utils.glsl2spv
规则去编译 .vert/.frag shader 文件生成 spirv 文件和二进制 C 头文件
改进
- 默认切换到 Lua5.4 运行时
- #1776: 改进 system::find_package,支持从环境变量中查找系统库
- #1786: 改进 apt:find_package,支持查找 alias 包
- #1819: 添加预编译头到 cmake 生成器
- 改进 C++20 Modules 为 msvc 支持 std 标准库
- #1792: 添加自定义命令到 vs 工程生成器
- #1835: 改进 MDK 程序构建支持,增加
set_runtimes("microlib")
- #1858: 改进构建 c++20 modules,修复跨 target 构建问题
- 添加 $XMAKE_BINARY_REPO 和 $XMAKE_MAIN_REPO 仓库设置环境变量
- #1865: 改进 openmp 工程
- #1845: 为静态库安装 pdb 文件
Bugs 修复
xmake v2.5.9
New features
- #1736: Support wasi-sdk toolchain
- Support Lua 5.4 runtime
- Add gcc-8, gcc-9, gcc-10, gcc-11 toolchains
- #1623: Support find_package from cmake
- #1747: Add
set_kind("headeronly")
for target to install files for headeronly library - #1019: Support Unity build
- #1438: Support code amalgamation,
xmake l cli.amalgamate
- #1765: Support nim language
- #1762: Manage and switch the given package envs for
xrepo env
- #1767: Support Circle compiler
- #1753: Support armcc/armclang toolchains for Keil/MDK
- #1774: Add table.contains api
- #1735: Add custom command in cmake generator
Changes
- #1528: Check c++17/20 features
- #1729: Improve C++20 modules for clang/gcc/msvc, support inter-module dependency compilation and parallel optimization
- #1779: Remove builtin
-Gd
for ml.exe/x86 - #1781: Improve get.sh installation script to support nixos
新特性
- #1736: 支持 wasi-sdk 工具链
- 支持 Lua 5.4 运行时
- 添加 gcc-8, gcc-9, gcc-10, gcc-11 工具链
- #1623: 支持 find_package 从 cmake 查找包
- #1747: 添加
set_kind("headeronly")
更好的处理 headeronly 库的安装 - #1019: 支持 Unity build
- #1438: 增加
xmake l cli.amalgamate
命令支持代码合并 - #1765: 支持 nim 语言
- #1762: 为
xrepo env
管理和切换指定的环境配置 - #1767: 支持 Circle 编译器
- #1753: 支持 Keil/MDK 的 armcc/armclang 工具链
- #1774: 添加 table.contains api
- #1735: 添加自定义命令到 cmake 生成器
- #1781: 改进 get.sh 安装脚本支持 nixos
改进
xmake v2.5.8
New features
- #388: Pascal Language Support
- #1682: Add optional lua5.3 backend instead of luajit to provide better compatibility
- #1622: Support Swig
- #1714: Support build local embed cmake projects
- #1715: Support to detect compiler language standards as features and add
check_macros
- Support Loongarch
Change
- #1618: Improve vala to support to generate libraries and bindings
- Improve Qt rules to support Qt 4.x
- Improve
set_symbols("debug")
to generate pdb file for clang on windows - #1638: Improve to merge static library
- Improve on_load/after_load to support to add target deps dynamically
- #1675: Rename dynamic and import library suffix for mingw
- #1694: Support to define a variable without quotes for configuration files
- Support Android NDK r23
- Add
c++latest
andclatest
forset_languages
- #1720: Add
save_scope
andrestore_scope
to fixcheck_xxx
apis - #1726: Improve compile_commands generator to support nvcc
Bugs fixed
- #1671: Fix incorrect absolute path after installing precompiled packages
- #1689: Fix unicode chars bug for vsxmake
新特性
- #388: Pascal 语言支持,可以使用 fpc 来编译 free pascal
- #1682: 添加可选的额lua5.3 运行时替代 luajit,提供更好的平台兼容性。
- #1622: 支持 Swig
- #1714: 支持内置 cmake 等第三方项目的混合编译
- #1715: 支持探测编译器语言标准特性,并且新增
check_macros
检测接口 - xmake 支持在 Loongarch 架构上运行
改进
- #1618: 改进 vala 支持构建动态库和静态库程序
- 改进 Qt 规则去支持 Qt 4.x
- 改进
set_symbols("debug")
支持 clang/windows 生成 pdb 文件 - #1638: 改进合并静态库
- 改进 on_load/after_load 去支持动态的添加 target deps
- #1675: 针对 mingw 平台,重命名动态库和导入库文件名后缀
- #1694: 支持在 set_configvar 中定义一个不带引号的字符串变量
- 改进对 Android NDK r23 的支持
- 为
set_languages
新增c++latest
和clatest
配置值 - #1720: 添加
save_scope
和restore_scope
去修复check_xxx
相关接口 - #1726: 改进 compile_commands 生成器去支持 nvcc