Skip to content

Releases: xmake-io/xmake

xmake v2.7.4

24 Dec 07:53
Compare
Choose a tag to compare

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

  • 修复 requires-lock 问题
  • #3065: 修复部分依赖包没有被安装的问题
  • #3082: 修复 build.ninja 生成器
  • #3092: 修复 xrepo add-repo 添加失败逻辑
  • #3013: 修复支持 windows UNC 路径
  • #2902: 修复文件被其他子进程占用问题
  • #3074: 修复 CMakelists 生成器链接参数设置不对问题
  • #3141: 修复 C++ 模块的导入顺序
  • 修复 tools/xmake 包安装构建目录
  • #3159: 为 CLion 修复 compile_commands

xmake v2.7.3

08 Nov 01:26
Compare
Choose a tag to compare

New features

  • A new optional configuration syntax. It is LSP friendly, automatically calls target_end() to achieve scope isolation.
  • #2944: Add gnu-rm.binary and gnu-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.binarygnu-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 修复

  • #2949: 修复 vs 分组
  • #2952: 修复 armlink 处理长命令失败问题
  • #2954: 修复 c++ module partitions 路径无效问题
  • #3033: 探测循环模块依赖

xmake v2.7.2

10 Oct 04:16
Compare
Choose a tag to compare

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

  • #2740: 修复 msvc 构建 C++ modules 卡死问题
  • #2875: 修复构建 linux 驱动错误
  • #2885: 修复 ccache 下,msvc 编译 pch 失败问题

xmake v2.7.1

26 Aug 09:52
Compare
Choose a tag to compare

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

  • #2614: 为 msvc 修复构建 submodules2 测试工程
  • #2620: 修复构建缓存导致的增量编译问题
  • #2177: 修复 python.library 在 macOS 上段错误崩溃
  • #2708: 修复 mode.coverage 规则的链接错误
  • 修复 ios/macOS framework 和 application 的 rpath 加载路径

xmake v2.6.9

17 Jul 13:18
Compare
Choose a tag to compare

New features

  • #2474: Add icx and dpcpp toolchains
  • #2523: Improve LTO support
  • #2527: Add set_runargs api

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

新特性

  • #2474: 添加 icx 和 dpcpp 工具链
  • #2523: 改进对 LTO 的支持
  • #2527: 添加 set_runargs 接口

改进

  • 改进 tools.cmake 支持 wasm 库构建
  • #2491: 如果服务器不可访问,自动回退到本地编译和缓存
  • #2514: 为工程生成器禁用 Unity Build
  • #2473: 改进 apt::find_package,支持从 pc 文件中查找
  • #2512: 改进远程服务支持超时配置

Bugs 修复

  • #2488: 修复从 windows 到 linux 的远程编译路径问题
  • #2504: 修复在 msys2 上远程编译失败问题
  • #2525: 修复安装依赖包时候卡死问题
  • #2557: 修复 cmake.find_package 查找 links 错误
  • 修复缓存导致的预处理文件路径冲突问题

xmake v2.6.8

22 Jun 13:43
Compare
Choose a tag to compare

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 下,警告无法输出的问题

xmake v2.6.7

29 May 02:47
Compare
Choose a tag to compare

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 问题

xmake v2.6.6

25 May 11:52
Compare
Choose a tag to compare

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

25 Apr 01:56
Compare
Choose a tag to compare

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

07 Mar 04:02
Compare
Choose a tag to compare

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 里,对象文件名冲突导致的编译失败