Releases: xmake-io/xmake
Releases · xmake-io/xmake
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
Bugs 修复
xmake v2.5.7
New features
- #1534: Support to compile Vala lanuage project
- #1544: Add utils.bin2c rule to generate header from binary file
- #1547: Support to run and get output of c/c++ snippets in option
- #1567: Package "lock file" support to freeze dependencies
- #1597: Support to compile *.metal files to generate *.metalib and improve xcode.application rule
Change
- #1540: Better support for compilation of automatically generated code
- #1578: Improve add_repositories to support relative path better
- #1582: Improve installation and os.cp to reserve symlink
Bugs fixed
- #1531: Fix error info when loading targets failed
新特性
- #1534: 新增对 Vala 语言的支持
- #1544: 添加 utils.bin2c 规则去自动从二进制资源文件产生 .h 头文件并引入到 C/C++ 代码中
- #1547: option/snippets 支持运行检测模式,并且可以获取输出
- #1567: 新增 xmake-requires.lock 包依赖锁定支持
- #1597: 支持编译 metal 文件到 metallib,并改进 xcode.application 规则去生成内置的 default.metallib 到 app
改进
Bugs 修复
- #1531: 修复 targets 加载失败的错误信息提示错误
xmake v2.5.6
New features
- #1483: Add
os.joinenvs()
and improve package tools envirnoments - #1523: Add
set_allowedmodes
,set_allowedplats
andset_allowedarchs
- #1523: Add
set_defaultmode
,set_defaultplat
andset_defaultarch
Change
- Improve vs/vsxmake project generator to support vs2022
- #1513: Improve precompiled binary package compatibility on windows/msvc
- Improve to find vcpkg root directory on windows
- Improve to support Qt6
Bugs fixed
- #489: Fix run os.execv with too long envirnoment value on windows
新特性
- #1483: 添加
os.joinenvs()
和改进包工具环境 - #1523: 添加
set_allowedmodes
,set_allowedplats
和set_allowedarchs
- #1523: 添加
set_defaultmode
,set_defaultplat
和set_defaultarch
改进
- 改进 vs/vsxmake 工程插件支持 vs2022
- #1513: 改进 windows 预编译包的兼容性问题
- 改进 vcpkg 包在 windows 上的查找
- 改进对 Qt6 的支持
Bugs 修复
- #489: 修复 run os.execv 带有过长环境变量值出现的一些问题
xmake v2.5.5
New features
- #1421: Add prefix, suffix and extension options for target names
- #1422: Support search packages from vcpkg, conan
- #1424: Set binary as default target kind
- #1140: Add a way to ask xmake to try to download dependencies from a certain package manager
- #1339: Improve
xmake package
to generate new local/remote packages - Add
appletvos
platform support for AppleTV,xmake f -p appletvos
- #1437: Add headeronly library type for package to ignore
vs_runtime
- #1351: Support export/import current configs
- #1454: Support to download and install precompiled image packages from xmake-mirror
Change
- #1425: Improve tools/meson to load msvc envirnoments
- #1442: Support to clone package resources from git url
- #1389: Support to add toolchain envs to
xrepo env
- #1453: Support to export protobuf includedirs
- Support vs2022
Bugs fixed
- #1413: Fix hangs on fetching packages
- #1420: Fix config and packages cache
- #1445: Fix WDK driver sign error
- #1465: Fix missing link directory
新特性
- #1421: 针对 target 目标,增加目标文件名的前缀,后缀和扩展名设置接口。
- #1422: 支持从 vcpkg, conan 中搜索包
- #1424: 设置 binary 作为默认的 target 目标类型
- #1140: 支持安装时候,手动选择从第三包包管理器安装包
- #1339: 改进
xmake package
去产生新的本地包格式,无缝集成add_requires
,并且新增生成远程包支持 - 添加
appletvos
编译平台支持,xmake f -p appletvos
- #1437: 为包添加 headeronly 库类型去忽略
vs_runtime
- #1351: 支持导入导出当前配置
- #1454: 支持下载安装 windows 预编译包
改进
- #1425: 改进 tools/meson 去加载 msvc 环境,并且增加一些内置配置。
- #1442: 支持从 git url 去下载包资源文件
- #1389: 支持添加工具链环境到
xrepo env
- #1453: 支持 protobuf 规则导出头文件搜索目录
- 新增对 vs2022 的支持
Bugs 修复
xmake v2.5.4
New features
- #1323: Support find and install package from
apt
,add_requires("apt::zlib1g-dev")
- #1337: Add environment vars to change package directories
- #1338: Support import and export installed packages
- #1087: Add
xrepo env shell
and support load envs fromadd_requires/xmake.lua
- #1313: Support private package for
add_requires/add_deps
- #1358: Support to set mirror url to speedup download package
- #1369: Support arm/arm64 packages for vcpkg, thanks @fallending
- #1405: Add portage package manager support, thanks @Phate6660
Change
- Improve
find_package
and addpackage:find_package
for xmake package - Remove deprecated
set_config_h
andset_config_h_prefix
apis - #1343: Improve to search local package files
- #1347: Improve to vs_runtime configs for binary package
- #1353: Improve del_files() to speedup matching files
- #1349: Improve
xrepo env shell
to support powershell
Bugs fixed
- #1380: Fix add packages errors
- #1381: Fix add local git source for package
- #1391: Fix cuda/nvcc toolchain
新特性
- #1323: 支持从 apt 查找安装包,
add_requires("apt::zlib1g-dev")
- #1337: 添加环境变量去改进包安装和缓存目录
- #1338: 支持导入导出已安装的包
- #1087: 添加
xrepo env shell
并且支持从add_requires/xmake.lua
加载包环境 - #1313: 为
add_requires/add_deps
添加私有包支持 - #1358: 支持设置镜像 url 站点加速包下载
- #1369: 为 vcpkg 增加 arm/arm64 包集成支持,感谢 @fallending
- #1405: 添加 portage 包管理器支持,感谢 @Phate6660
改进
- 改进
find_package
并且添加package:find_package
接口在包定义中方便查找包 - 移除废弃的
set_config_h
和set_config_h_prefix
接口 - #1343: 改进搜索本地包文件
- #1347: 针对 binary 包改进 vs_runtime 配置
- #1353: 改进 del_files() 去加速匹配文件
- #1349: 改进 xrepo env shell 支持,更好的支持 powershell
Bugs 修复
xmake v2.5.3
New features
- #1259: Support
add_files("*.def")
to export symbols for windows/dll - #1267: add
find_package("nvtx")
- #1274: add
platform.linux.bpf
rule to build linux/bpf program - #1280: Support fetchonly package to improve find_package
- Support to fetch remote ndk toolchain package
- #1268: Add
utils.install.pkgconfig_importfiles
rule to install*.pc
import file - #1268: Add
utils.install.cmake_importfiles
rule to install*.cmake
import files - #348: Add
platform.longpaths
policy to support git longpaths - #1314: Support to install and use conda packages
- #1120: Add
core.base.cpu
module and improveos.cpuinfo()
- #1325: Add builtin git variables for
add_configfiles
Change
- #1275: Support conditionnal targets for vsxmake plugin
- #1290: Improve android ndk to support >= r22
- #1311: Add packages lib folder to PATH for vsxmake project
Bugs fixed
新特性
- #1259: 支持
add_files("*.def")
添加 def 文件去导出 windows/dll 符号 - #1267: 添加
find_package("nvtx")
- #1274: 添加
platform.linux.bpf
规则去构建 linux/bpf 程序 - #1280: 支持 fetchonly 包去扩展改进 find_package
- 支持自动拉取远程 ndk 工具链包和集成
- #1268: 添加
utils.install.pkgconfig_importfiles
规则去安装*.pc
文件 - #1268: 添加
utils.install.cmake_importfiles
规则去安装*.cmake
导入文件 - #348: 添加
platform.longpaths
策略去支持 git longpaths - #1314: 支持安装使用 conda 包
- #1120: 添加
core.base.cpu
模块并且改进os.cpuinfo()
- #1325: 为
add_configfiles
添加内建的 git 变量
改进
- #1275: 改进 vsxmake 生成器,支持条件化编译 targets
- #1290: 增加对 Android ndk r22 以上版本支持
- #1311: 为 vsxmake 工程添加包 dll 路径,确保调试运行加载正常
Bugs 修复
xmake v2.5.2
New features
- #955: Support
zig cc
andzig c++
as c/c++ compiler - #955: Support zig cross-compilation
- #1177: Improve to detect terminal and color codes
- #1216: Pass custom configuration scripts to xrepo
- Add linuxos builtin module to get linux system information
- #1217: Support to fetch remote toolchain package when building project
- #1123: Add
rule("utils.symbols.export_all")
to export all symbols for windows/dll - #1181: Add
utils.platform.gnu2mslib(mslib, gnulib)
module api to convert mingw/xxx.dll.a to msvc xxx.lib - #1246: Improve rules and generators to support commands list
- #1239: Add
add_extsources
to improve find external packages - #1241: Support add .manifest files for windows program
- Support to use
xrepo remove --all
to remove all packages - #1254: Support to export packages to parent target
Change
- #1226: Add missing qt include directories
- #1183: Improve c++ lanuages to support Qt6
- #1237: Add qt.ui files for vsxmake plugin
- Improve vs/vsxmake plugins to support precompiled header and intellisense
- #1090: Simplify integration of custom code generators
- #1065: Improve protobuf rule to support compile_commands generators
- #1249: Improve vs/vsxmake generator to support startproject
- #605: Improve to link orders for add_deps/add_packages
- Remove deprecated
add_defines_h_if_ok
andadd_defines_h
apis for option
Bugs fixed
新特性
- #955: 支持
zig cc
和zig c++
作为 c/c++ 编译器 - #955: 支持使用 zig 进行交叉编译
- #1177: 改进终端和 color codes 探测
- #1216: 传递自定义 includes 脚本给 xrepo
- 添加 linuxos 内置模块获取 linux 系统信息
- #1217: 支持当编译项目时自动拉取工具链
- #1123: 添加
rule("utils.symbols.export_all")
自动导出所有 windows/dll 中的符号 - #1181: 添加
utils.platform.gnu2mslib(mslib, gnulib)
模块接口去转换 mingw/xxx.dll.a 到 msvc xxx.lib - #1246: 改进规则支持新的批处理命令去简化自定义规则实现
- #1239: 添加
add_extsources
去改进外部包的查找 - #1241: 支持为 windows 程序添加 .manifest 文件参与链接
- 支持使用
xrepo remove --all
命令去移除所有的包,并且支持模式匹配 - #1254: 支持导出包配置给父 target,实现包配置的依赖继承
改进
- #1226: 添加缺失的 Qt 头文件搜索路径
- #1183: 改进 C++ 语言标准,以便支持 Qt6
- #1237: 为 vsxmake 插件添加 qt.ui 文件
- 改进 vs/vsxmake 插件去支持预编译头文件和智能提示
- #1090: 简化自定义规则
- #1065: 改进 protobuf 规则,支持 compile_commands 生成器
- #1249: 改进 vs/vsxmake 生成器去支持启动工程设置
- #605: 改进 add_deps 和 add_packages 直接的导出 links 顺序
- 移除废弃的
add_defines_h_if_ok
andadd_defines_h
接口