Xmake Versions Save

🔥 A cross-platform build utility based on Lua

v2.6.8

1 year ago

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 修复

  • #2435: 修复无法搜索带有 . 的包名
  • #2445: 修复 windows 上 ccache 构建失败问题
  • #2452: 修复 ccache 下,警告无法输出的问题

v2.6.7

2 years ago

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 修复

  • #2382: 修改 headeronly 包配置
  • #2388: 修复路径问题
  • #2385: 修复 cmake/find_package
  • #2395: 修复 c++ modules
  • 修复 find_qt 问题

v2.6.6

2 years ago

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 栈不平衡导致的崩溃问题

v2.6.5

2 years ago

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 依赖

v2.6.4

2 years ago

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 修复

  • #2005: 修复 path.extension
  • #2008: 修复 windows manifest 文件编译
  • #2016: 修复 vs project generator 里,对象文件名冲突导致的编译失败

v2.6.3

2 years ago

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 mark del_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

  • #1875: Fix deploy android qt apk issue
  • #1973: Fix merge static archive

新特性

  • #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 修复

  • #1875: 修复部署生成 Android Qt 程序包失败问题
  • #1973: 修复合并静态库
  • #1982: 修复 clang 下对 c++20 子模块的依赖构建

v2.6.2

2 years ago

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

  • #1885: Fix package:fetch_linkdeps
  • #1903: Fix package link order

新特性

  • #1902: 支持构建 linux 内核驱动模块
  • #1913: 通过 group 模式匹配,指定构建和运行一批目标程序

改进

  • #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 修复

  • #1885: 修复 package:fetch_linkdeps 链接顺序问题
  • #1903: 修复包链接顺序

v2.6.1

2 years ago

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 修复

  • 修复语义版本中解析带有 0 前缀的 build 字符串问题
  • #50: 修复 rule 和构建 bpf 程序 bug
  • #1610: 修复 xmake f --menu 在 vscode 终端下按键无响应,并且支持 ConPTY 终端虚拟按键

v2.5.9

2 years ago

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

改进

  • #1528: 检测 c++17/20 特性
  • #1729: 改进 C++20 modules 对 clang/gcc/msvc 的支持,支持模块间依赖编译和并行优化
  • #1779: 改进 ml.exe/x86,移除内置的 -Gd 选项

v2.5.8

2 years ago

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 and clatest for set_languages
  • #1720: Add save_scope and restore_scope to fix check_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++latestclatest 配置值
  • #1720: 添加 save_scoperestore_scope 去修复 check_xxx 相关接口
  • #1726: 改进 compile_commands 生成器去支持 nvcc

Bugs 修复

  • #1671: 修复安装预编译包后,*.cmake 里面的一些不正确的绝对路径
  • #1689: 修复 vsxmake 插件的 unicode 字符显示和加载问题