Skip to content

Releases: xmake-io/xmake

xmake v2.8.3

26 Sep 08:30
Compare
Choose a tag to compare

New features

  • #4122: Support Lua Debugger (EmmyLua)
  • #4132: Support cppfront
  • #4147: Add hlsl2spv rule
  • #4226: Support sanitizers for package and policy
  • Add lib.lua.package module
  • Add run.autobuild policy
  • Add global policies xmake g --policies=

Changes

  • #4119: Improve to support emcc toolchain and emscripten package
  • #4154: Add xmake -r --shallow target to rebuild target without deps
  • Add global ccache storage directory
  • #4137: Support Qt6 for Wasm
  • #4173: Add recheck argument to on_config
  • #4200: Improve remote build to support debugging xmake source code.
  • #4209: Add extra and pedantic warnings

Bugs fixed

  • #4110: Fix extrafiles
  • #4115: Fix compile_commands generator for clangd
  • #4199: Fix compile_commands generator for c++ modules
  • Fix os.mv fail on window
  • #4214: Fix rust workspace build error

新特性

  • #4122: 支持 Lua 调试 (EmmyLua)
  • #4132: 支持 cppfront
  • #4147: 添加 hlsl2spv 规则
  • 添加 lib.lua.package 模块
  • #4226: 新增 asan 相关策略和对包的支持
  • 添加 run.autobuild 策略开启运行前自动构建
  • 添加全局策略 xmake g --policies=

改进

  • #4119: 改进支持 emcc 工具链和 emscripten 包的整合
  • #4154: 添加 xmake -r --shallow target 去改进重建目标,避免重建所有依赖目标
  • 添加全局 ccache 存储目录
  • #4137: 改进 Qt,支持 Qt6 for Wasm
  • #4173: 添加 recheck 参数到 on_config
  • #4200: 改进远程构建,支持调试本地 xmake 源码
  • #4209: 添加 extra 和 pedantic 警告

Bugs 修复

  • #4110: 修复 extrafiles
  • #4115: 修复 compile_commands 生成器
  • #4199: 修复 compile_commands 生成器对 c++ modules 的支持
  • 修复 os.mv 在 windows 上跨驱动盘失败问题
  • #4214: 修复 rust workspace 构建问题

xmake v2.8.2

22 Aug 14:57
Compare
Choose a tag to compare

New features

  • #4002: Add soname and version support
  • #1613: Add avx512 and sse4.2 for add_vectorexts
  • #2471: Add set_encodings to set source/target encodings
  • #4071: Support the stm8 assembler on the sdcc toolchain.
  • #4101: Add force includes for c/c++
  • #2384: Add extrafiles for vs/vsxmake generator

Changes

  • #3960: Improve msys2/crt64 support
  • #4032: Remove some old deprecated apis
  • Improve to upgrade vcproj files in tools.msbuild
  • Support add_requires("xmake::xxx") package
  • #4049: Improve rust to support cross-compilation
  • Improve clang modules support

Bugs fixed

  • Fix exit all child processes on macOS/Linux

新特性

  • #4002: 增加 soname 支持
  • #1613: 为 add_vectorexts 增加 avx512 和 sse4.2 支持
  • #2471: 添加 set_encodings API 去设置源文件和目标文件的编码
  • #4071: 支持 sdcc 的 stm8 汇编器
  • #4101: 为 c/c++ 添加 force includes
  • #2384: 为 vs/vsxmake 生成器添加 add_extrafiles 接口

改进

  • #3960: 改进 msys2/crt64 支持
  • #4032: 移除一些非常老的废弃接口
  • 改进 tools.msbuild 升级 vcproj 文件
  • 支持 add_requires("xmake::xxx") 包
  • #4049: 改进 Rust 支持交叉编译
  • 改进 clang 下 c++ modules 支持

Bugs 修复

  • 修复 macOS/Linux 上子子进程无法快速退出问题

xmake v2.8.1

11 Jul 03:38
Compare
Choose a tag to compare

New features

  • #3821: Add longpath option for windows installer
  • #3828: Add support for zypper package manager
  • #3871: Improve tools.msbuild to support for upgrading vsproj
  • #3148: Support grpc for protobuf
  • #3889: Support to add library path for add_links
  • #3912: Add set_pmxxheader to support objc precompiled header
  • add_links support library file path

Changes

  • #3752: Improve os.getenvs for windows
  • #3371: Improve tools.cmake to support ninja generator for wasm
  • #3777: Improve to find package from pkg-config
  • #3815: Improve tools.xmake to pass toolchains for windows
  • #3857: Improve to generate compile_commands.json
  • #3892: Improve to search packages from description
  • #3916: Improve to build swift program, support for multiple modules
  • Update lua runtime to 5.4.6

Bugs fixed

  • #3755: Fix find_tool from xmake/packages
  • #3787: Fix packages from conan 2.x
  • #3839: Fix vs_runtime for conan 2.x

新特性

  • #3821: windows 安装器添加长路径支持选项
  • #3828: 添加 zypper 包管理器支持
  • #3871: 改进 tools.msbuild 支持对 vsproj 进行自动升级
  • #3148: 改进 protobuf 支持 grpc
  • #3889: add_links 支持库路径添加
  • #3912: 添加 set_pmxxheader 去支持 objc 预编译头
  • add_links 支持库文件路径

改进

  • #3752: 改进 windows 上 os.getenvs 的获取
  • #3371: 改进 tools.cmake 支持使用 ninja 去构建 wasm 包
  • #3777: 改进从 pkg-config 中查找包
  • #3815: 改进 tools.xmake 支持为 windows 平台传递工具链
  • #3857: 改进生成 compile_commands.json
  • #3892: 改进包搜索,支持从描述中找包
  • #3916: 改进构建 swift 程序,支持模块间符号调用
  • 更新 lua 运行时到 5.4.6

Bugs 修复

  • #3755: 修复 find_tool 从 xmake/packages 中查找程序
  • #3787: 修复从 conan 2.x 中使用包
  • #3839: 修复 conan 2.x 包的 vs_runtime 设置

xmake v2.7.9

15 May 08:18
Compare
Choose a tag to compare

New features

  • #3613: Add wasm.preloadfiles configuration for wasm
  • #3703: Support for conan >=2.0.5

Changes

  • #3669: Improve cmake generator to support add_cxflags with the given tool
  • #3679: Improve xrepo clean
  • #3662: Improve cmake/make generator for lex/yacc project
  • #3697: Improve trybuild/cmake
  • #3730: Improve c++modules package installation

Bugs fixed

  • #3596: Fix check_cxxfuncs and check_cxxsnippets
  • #3603: Fix xmake update
  • #3614: Fix qt envirnoment when running target
  • #3628: Fix msys2/mingw setenv and os.exec issue
  • Fix setenv for msys/mingw

新特性

  • #3613: 添加 wasm.preloadfiles 扩展配置
  • #3703: 支持 conan >=2.0.5

改进

  • #3669: 改进 cmake 生成器支持特定工具的 cxflags
  • #3679: 改进 xrepo clean
  • #3662: 改进 cmake/make 生成器去更好的支持 lex/yacc 工程
  • #3697: 改进 trybuild/cmake
  • #3730: 改进 c++modules 包安装,解决不同目录同名文件分发冲突问题

Bugs 修复

  • #3596: 修复 check_cxxfuncs 和 check_cxxsnippets
  • #3603: 修复 xmake update 的无效 url
  • #3614: 修复 xmake run 对 Qt 环境的加载
  • #3628: 修复 msys2/mingw 下 os.exec 总是优先查找错误的可执行程序
  • 修复 msys/mingw 下环境变量设置问题

xmake v2.7.8

05 Apr 13:25
Compare
Choose a tag to compare

New features

  • #3518: Profile compile and link performance
  • #3522: Add has_cflags, has_xxx for target
  • #3537: Add --fix for clang.tidy checker

Changes

  • #3433: Improve to build Qt project on msys2/mingw64 and wasm
  • #3419: Support fish shell envirnoment
  • #3455: Dlang incremental build support
  • #3498: Improve to bind package virtual envirnoments
  • #3504: Add swig java support
  • #3508: Improve trybuild/cmake to support for switching toolchain
  • disable build cache for msvc, because msvc's preprocessor is too slow.

Bugs fixed

  • #3436: Fix complete and menuconf
  • #3463: Fix c++modules cache issue
  • #3545: Fix parsedeps for armcc

新特性

  • #3518: 分析编译和链接性能
  • #3522: 为 target 添加 has_cflags, has_xxx 等辅助接口
  • #3537: 为 clang.tidy 检测器添加 --fix 自动修复

改进

  • #3433: 改进 QT 在 msys2/mingw64 和 wasm 上的构建支持
  • #3419: 支持 fish shell 环境
  • #3455: Dlang 增量编译支持
  • #3498: 改进绑定包虚拟环境
  • #3504: 添加 swig java 支持
  • #3508: 改进 trybuild/cmake 去支持工具链切换
  • 为 msvc 禁用 build cache 加速,因为 msvc 的预处理器太慢,反而极大影响构建性能。

Bugs 修复

  • #3436: 修复自动补全和 menuconf
  • #3463: 修复 c++modules 缓存问题
  • #3545: 修复 armcc 的头文件依赖解析

xmake v2.7.7

24 Feb 01:08
Compare
Choose a tag to compare

New features

  • Add Haiku support
  • #3326: Add xmake check to check project code (clang-tidy) and configuration
  • #3332: add custom http headers when downloading packages

Changes

  • #3318: Improve dlang toolchains
  • #2591: Improve target analysis
  • #3342: Improve to configure working and build directories
  • #3373: Improve std modules support for clang-17
  • Improve to strip/optimization for dmd/ldc2

Bugs fixed

  • #3317: Fix languages for qt project.
  • #3321: Fix dependfile when generating configiles
  • #3296: Fix build error on macOS arm64

新特性

  • 添加 Haiku 支持
  • #3326: 添加 xmake check 去检测工程代码 (clang-tidy) 和 API 参数配置
  • #3332: 在包中配置添加自定义 http headers

改进

  • #3318: 改进 dlang 工具链
  • #2591: 改进 target 配置来源分析
  • 为 dmd/ldc2 改进 strip/optimization
  • #3342: 改进配置构建目录,支持外置目录构建,保持远吗目录更加干净
  • #3373: 为 clang-17 改进 std 模块支持

Bugs 修复

  • #3317: 针对 Qt 工程,修复 lanuages 设置
  • #3321: 修复隔天 configfiles 重新生成导致重编问题
  • #3296: 修复 macOS arm64 上构建失败

xmake v2.7.6

27 Jan 08:00
Compare
Choose a tag to compare

New features

  • #3228: Add support of importing modules from packages
  • #3257: Add support for iverilog and verilator
  • Support for xp and vc6.0
  • #3214: Completion on xrepo install packages

Changes

  • #3255: Improve clang libc++ module support
  • Support for compiling xmake using mingw
  • Improve compatibility issues with xmake running on win xp
  • Add pure lua json implementation instead of lua-cjson if the external dependencies are enabled

Bugs fixed

  • #3229: Fix find rc.exe for vs2015
  • #3271: Fix macro defines with spaces
  • #3273: Fix nim link error
  • #3286: Fix compile_commands for clangd

新特性

  • #3228: C++ modules 的安装发布,以及从包中导入 C++ modules 支持
  • #3257: 增加对 iverilog 和 verilator 的支持
  • 支持 xp 和 vc6.0
  • #3214: xrepo install 的自动补全支持

改进

  • #3255: 改进 clang libc++ 模块支持
  • 支持使用 mingw 编译 xmake
  • 改进 xmake 在 win xp 上的兼容性
  • 如果外部依赖被启用,切换 json 模块到纯 lua 实现,移除对 lua-cjson 的依赖

Bugs 修复

  • #3229: 修复 vs2015 下找不到 rc.exe 问题
  • #3271: 修复支持带有空格的宏定义
  • #3273: 修复 nim 链接错误
  • #3286: 修复 compile_commands 对 clangd 的支持

xmake v2.7.5

07 Jan 14:23
Compare
Choose a tag to compare

New features

  • #3201: Add completer and xrepo complete
  • #3233: Add MASM32 sdk toolchain

Changes

  • #3216: Add intel one api toolkits detection
  • #3020: Add --lsp=clangd to improve to generate compile_commands.json
  • #3215: Add includedirs and defines to c51
  • #3251: Improve to build zig and c program

Bugs fixed

  • #3203: Fix compile_commands
  • #3222: Fix precompiled headers in ObjC
  • #3240: Fix target run with single arguments
  • #3238: Fix clang module mapper

新特性

  • #3201: 为 xrepo 添加命令自动补全
  • #3233: 添加 MASM32 sdk 工具链

改进

  • #3216: 改进 intel one api toolkits 探测
  • #3020: 添加 --lsp=clangd 去改进 compile_commands.json 的生成
  • #3215: 添加 includedirs 和 defines 到 c51 编译器
  • #3251: 改进 zig and c 混合编译

Bugs 修复

  • #3203: 修复 compile_commands
  • #3222: 修复 objc 的预编译头支持
  • #3240: 修复 xmake run 处理单个参数不正确问题
  • #3238: 修复 clang 构建 module 时候,并行写入 mapper 冲突问题

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: 探测循环模块依赖