Skip to content

Releases: xmake-io/xmake

xmake v3.0.4

14 Oct 01:53

Choose a tag to compare

New features

  • #6864: Add default file filter for format task
  • #6843: Improve clang-tidy support
  • #6861: Rewrite of Nix Package Manager Support
  • #6850: Add package api checking
  • #6874: Add scriptdir to project packages
  • #6876: Add versionfiles checker
  • #6884: Add msystem support on msys2
  • #6891: Add coroutine semaphore
  • #6894: Add llvm-nm for clang toolchain
  • #6918: Add copy_if_different in os.cp

Changes

  • #6846: Improve cmake default flags
  • #6849: Improve jobgraph
  • #6859: Improve to check target flags
  • #6858: Modify config flags order
  • #6854: Improve os.curdir/os.cd
  • #6866: Improve os.getenvs
  • #6867: Make sure generic options are always inserted
  • #6870: chore(vcpkg): bump default baseline hash of vcpkg
  • #6880: Update cmake_importfiles.lua
  • #6872: Improve hash
  • #6886: Decrease jobs count in jobgraph
  • #6890: Update cmake_importfiles.lua
  • #6892: Improve runjobs to reduce the time spent on coroutine scheduling
  • #6896: Add hash test
  • #6904: Improve clang to support for msvc envs
  • #6915: Improve to export def rules for binary

Bugs fixed

  • #6844: Fix version in auto-generated .pc.
  • #6851: Fix finding clang-scan-deps
  • #6857: Fix rc compiler with cmake in cross-compilation
  • #6809: fix(C++ modules) fix stdmodule priority
  • #6882: Fix: write package manifest.pathenvs in deterministic order
  • #6888: Fix clang toolchain package
  • #6889: Fix os.getenvs compat
  • #6900: package.tools.xmake: fix policies not being passed
  • #6901: package download: don't get submodules if disabled
  • #6907: package download: don't get submodules if disabled (branch version)

新特性

  • #6864: 为 format 任务添加默认文件过滤器
  • #6843: 改进 clang-tidy 支持
  • #6861: 重写 Nix 包管理器支持
  • #6850: 添加包 API 检查
  • #6874: 为项目包添加 scriptdir
  • #6876: 添加 versionfiles 检查器
  • #6884: 在 msys2 上添加 msystem 支持
  • #6891: 添加协程信号量
  • #6894: 为 clang 工具链添加 llvm-nm
  • #6918: 为 os.cp 添加 copy_if_different 支持

改进

  • #6846: 改进 cmake 默认标志
  • #6849: 改进 jobgraph
  • #6859: 改进检查目标标志
  • #6858: 修改配置标志顺序
  • #6854: 改进 os.curdir/os.cd
  • #6866: 改进 os.getenvs
  • #6867: 确保通用选项总是被插入
  • #6870: chore(vcpkg): 提升 vcpkg 的默认 baseline
  • #6880: 更新 cmake_importfiles.lua
  • #6872: 改进哈希
  • #6886: 减少 jobgraph 中的任务数
  • #6890: 更新 cmake_importfiles.lua
  • #6892: 改进 runjobs 以减少协程调度所花费的时间
  • #6896: 添加哈希测试
  • #6904: 改进 clang 以支持 msvc 环境
  • #6915: 改进为二进制文件导出 def 规则

Bugs 修复

  • #6844: 修复自动生成的 .pc 文件中的版本
  • #6851: 修复查找 clang-scan-deps
  • #6857: 修复在交叉编译中使用 cmake 的 rc 编译器
  • #6809: fix(C++ modules) 修复 stdmodule 优先级
  • #6882: 修复:以确定性顺序写入包清单 manifest.pathenvs
  • #6888: 修复 clang 工具链包
  • #6889: 修复 os.getenvs 兼容性
  • #6900: package.tools.xmake: 修复策略未被传递的问题
  • #6901: package download: 如果禁用,则不获取子模块
  • #6907: package download: 如果禁用,则不获取子模块 (分支版本)

What's Changed

Read more

xmake v3.0.3

21 Sep 00:28

Choose a tag to compare

New features

  • #6778: Add build.linker.output
  • #6779: Add #embed and embedirs support
  • #6787: Support for vs2026
  • #6785: Support clang and llvm for wdk rules
  • #6791: Add Nix Package Manager Support
  • #6800: Support nushell for xrepo env
  • #6796: Enable support of incomplete wdk

Changes

  • #6765: Improve bin2c to use native thread
  • #6771: Fix find gcc/gxx cache
  • #6777: Fix executable path for cmake
  • #6783: Fix build.c++.modules.std policy
  • #6744: Use a file for requires flags when --verbose or --diagnosis is supplied
  • #6780: Add benchmarks and optimize config/build targets
  • #6784: Continue to optimize building targets speed
  • #6793: Use musl to avoid glibc's version issue
  • #6788: Improve incremental build clang
  • #6811: Improve clang-tidy
  • #6810: Improve the default flags for cmake
  • #6801: Change compilers priority for gcc and clang
  • #6819: Improve show target
  • #6817: Improve build targets speed
  • #6822: Prioritize envs over repo cache
  • #6824: Improve has_flags
  • #6832: Optimize codesign

Bugs fixed

  • #6808: Fix xrepo env
  • #6821: Clean undefined vsvers
  • #6818: Fix Nix Package Detection in nix-shell Environment
  • #6798: Add external to the strippeable_flags for msvc

新特性

  • #6778: 添加 build.linker.output
  • #6779: 添加 #embed 和 embedirs 支持
  • #6787: 支持 vs2026
  • #6785: 为 wdk 规则支持 clang 和 llvm
  • #6791: 添加 Nix 包管理器支持
  • #6800: 为 xrepo env 支持 nushell
  • #6796: 启用不完整 wdk 的支持

改进

  • #6765: 改进 bin2c 使用原生线程
  • #6771: 修复 find gcc/gxx 缓存
  • #6777: 修复 cmake 的可执行文件路径
  • #6783: 修复 build.c++.modules.std 策略
  • #6744: 当提供 --verbose 或 --diagnosis 时使用文件来存储 requires 标志
  • #6780: 添加基准测试并优化配置/构建目标
  • #6784: 继续优化构建目标速度
  • #6793: 使用 musl 避免 glibc 版本问题
  • #6788: 改进 clang 增量构建
  • #6811: 改进 clang-tidy
  • #6810: 改进 cmake 的默认标志
  • #6801: 更改 gcc 和 clang 的编译器优先级
  • #6819: 改进 show target
  • #6817: 改进构建速度
  • #6822: 优先使用环境变量而不是仓库缓存
  • #6824: 改进 has_flags
  • #6832: 优化代码签名

Bugs 修复

  • #6808: 修复 xrepo env
  • #6821: 清理未定义的 vsvers
  • #6818: 修复 nix-shell 环境中的 Nix 包检测
  • #6798: 为 msvc 的 strippeable_flags 添加 external

What's Changed

New Contributors

Full Changelog: v3.0.2...v3.0.3

xmake v3.0.2

04 Sep 02:39

Choose a tag to compare

New features

  • #6755: Add native thread support
  • #6641: Add pkgenvs to target/config
  • #6644: Support .def file with clang
  • #6695: Add /uselocaltime to inf2cat args
  • #6709: Support for wasm64
  • #6737: Add python stub file extension to cython rule

Changes

  • #6651: Improve depfiles
  • #6656: Make build tools support passing in opt.targets
  • #6688: Improve to install targets
  • #6692: Improve protobuf test
  • #6714: Improve tests for c++ modules
  • #6719: Improve comax for config
  • #6725: Improve target:extrafiles

Bugs fixed

  • #6648: Fix(qt.qmltyperegistrar): Collect metatypes info
  • #6661: Fix prolonged blocking in _ping_via_wget by setting "--tries=1"
  • #6665: Fix cmake/mingw
  • #6674: Attempt to fix linkgroups in package
  • #6686: Fix compiler cache
  • #6698: Fix(c++ modules) handle empty modules
  • #6699: Fix(c++ modules) fix xmake not updating module mapper when module file is removed
  • #6706: Fix find_cudadevices for CUDA 13
  • #6707: Fix(c++ modules) fix sourcebatch caching
  • #6712: Fix(c++ modules) fix disabled target getting configured for module compilation
  • #6713: Fix(c++ modules) fix non .cpp file stealed from c++.build sourcebatch
  • #6715: Fix(c++ modules) fix public culled module incorrectly emiting a warning
  • #6718: Ignore pch flags
  • #6732: Fix: android ndk rust link-args
  • #6735: Fix(qt.qmltyperegistrar): Extend dependencies for rebuild
  • #6738: Fix protobuf for target deps
  • #6741: Fix vsxmake options
  • #6747: meminfo.c: no vmstat.compressor_page_count on < 10.7

新特性

  • #6755: 添加原生线程支持
  • #6641: 为 target/config 添加 pkgenvs
  • #6644: 支持使用 clang 编译 .def 文件
  • #6695: 为 inf2cat 添加 /uselocaltime 参数
  • #6709: 支持 wasm64 架构
  • #6737: 为 cython 规则添加 python 存根文件扩展

改进

  • #6651: 改进依赖文件
  • #6656: 使构建工具支持传入 opt.targets
  • #6688: 改进安装目标
  • #6692: 改进 protobuf 测试
  • #6714: 改进 C++ 模块测试
  • #6719: 改进 comax 配置
  • #6725: 改进 target:extrafiles

Bugs 修复

  • #6648: 修复(qt.qmltyperegistrar): 收集 metatypes 信息
  • #6661: 通过设置 "--tries=1" 修复 _ping_via_wget 长时间阻塞的问题
  • #6665: 修复 cmake/mingw
  • #6674: 尝试修复包中的 linkgroups
  • #6686: 修复编译器缓存
  • #6698: 修复(C++ 模块) 处理空模块
  • #6699: 修复(C++ 模块) 修复删除模块文件时 xmake 不更新模块映射器的问题
  • #6706: 修复 CUDA 13 的 find_cudadevices
  • #6707: 修复(C++ 模块) 修复 sourcebatch 缓存
  • #6712: 修复(C++ 模块) 修复禁用的目标被配置用于模块编译的问题
  • #6713: 修复(C++ 模块) 修复非 .cpp 文件从 c++.build sourcebatch 中被窃取的问题
  • #6715: 修复(C++ 模块) 修复公共剔除模块错误地发出警告的问题
  • #6718: 忽略 pch 标志
  • #6732: 修复: android ndk rust link-args
  • #6735: 修复(qt.qmltyperegistrar): 扩展依赖项以进行重建
  • #6738: 修复 protobuf 的目标依赖
  • #6741: 修复 vsxmake 选项
  • #6747: meminfo.c: < 10.7 版本上没有 vmstat.compressor_page_count

What's Changed

New Contributors

Full Changelog: v3.0.1...v3.0.2

xmake v3.0.1

18 Jul 03:35

Choose a tag to compare

New features

  • #4810: Add Native XCode project generator plugin

Bugs fixed

  • #6592: Fix objects only links
  • #6586: Fix build.fence policy
  • #6600: Fix compile_commands generator for c++modules
  • #6621: Fix android build for ndk r17c
  • #6635: Fix batchcmds for qt/moc

新特性

  • #4810: 添加新的原生 Xcode 工程生成插件

Bugs 修复

  • #6592: 修复 object 目标的链接问题
  • #6586: 修复 build.fence 策略
  • #6600: 修复 compile_commands 生成器
  • #6621: 修复 android ndk r17c 构建失败问题
  • #6635: 修复 batchcmds 导致的 qt/moc 增量构建问题

What's Changed

New Contributors

Full Changelog: v3.0.0...v3.0.1

xmake v3.0.0

15 Jun 13:22

Choose a tag to compare

New features

  • #5926: Add MIDL support
  • #6414: Add platform.windows.subsystem rule
  • #5527: Switch to 3.0 policies

Changes

  • #6202: Improve rule API and build dependency order
  • #5624: Enable auto build when calling xmake run by default
  • #5526: Use MD/MDd runtimes for msvc by default
  • #5545: Use ninja generator for cmake package by default
  • #6355: Support customizing implib path of MinGW/MSVC
  • #6373: Improve c++ modules support
  • #6376: Improve vsxmake generators for namespaces
  • #6209: Add build jobgraph support
  • #6361: Rename buildir to builddir

新特性

  • #5926: 添加 MIDL 支持
  • #6414: 添加 platform.windows.subsystem 规则
  • #5527: 切换到 3.0 行为策略

改进

  • #6202: 改进 rule API 和构建顺序支持,提供统一 jobgraph 调度
  • #5624: xmake run 运行默认自动构建
  • #5526: msvc 默认切换到 MD/MDd 运行时
  • #5545: 构建 cmake 包,默认使用 Ninja 生成器
  • #6355: 支持自定义 implib 路径和访问
  • #6373: 改进 c++ modules 支持
  • #6376: 改进 vsxmake 生成器,支持命名空间
  • #6209: 添加 jobgraph 支持
  • #6361: 重命名 buildir 到 builddir

What's Changed

Read more

xmake v2.9.9

08 Apr 01:59

Choose a tag to compare

New features

  • #6137: IDE integration
  • #6138: Use libxmake to build binary with xmake lua apis
  • #6154: Add kotlin language and kotlin-native compiler and packages support
  • #6279: Add msvc midl support

Changes

  • #6182: Support msstl modules for clang
  • #6281: Support Verilator target build to shared library
  • #6270: Improve conan generator
  • #6243: Improve llvm toolchain to support for cross platform
  • Support for CMake 4.0

Bugs fixed

  • #6292: Fix namespace issue

新特性

  • #6137: IDE 整合
  • #6138: 使用 libxmake/xmake APIs 去构建二进制
  • #6154: 添加 kotlin native 构建支持和包依赖集成支持
  • #6279: 添加 msvc midl 支持

改进

  • #6182: 改进 clang/clang-cl 支持 msstl 模块
  • #6281: 支持 Verilator 动态库
  • #6270: 改进 conan 生成器
  • #6243: 改进 llvm 工具链对交叉编译的支持
  • 三方包安装支持 CMake 4.0

Bugs 修复

  • #6292: 修复 namespace 问题

What's Changed

New Contributors

Full Changelog: v2.9.8...v2.9.9

xmake v2.9.8

04 Feb 14:56

Choose a tag to compare

New features

  • #5994: Profile process performance
  • #5995: Add profile support for vs generator
  • #5949: Add rule nodejs.module
  • #3380: Add namespace support
  • #5945: Check pkgconfig/cmake importfiles for package
  • #6054: Add xmake bundle for linux
  • #6071: Improve to download package for git url, support for sparse-checkout
  • #5163: Support TI-CGT C2000/C6000 compiler
  • #5344: Support IAR ARM C/C++ compiler
  • #5554: Add custom unknown toolchains support

Changes

  • #6056: Build and release xmake/arm64 on windows.
  • #6097: Add qt_host Option to Enable Cross-Platform Qt Builds Using Host SDK Tools
  • #6120: Add custom preprocessor for configfiles
  • #6088: Improve configfiles to generate export macro

Bugs fixed

  • #272: Fix xmake stuck when readfile always return zero for msvc + /O1
  • #6089: Fix depend.is_changed for cuda

新特性

  • #5994: 分析进程执行性能
  • #5995: 为 vs generator 添加 profile 支持
  • #5949: 添加 nodejs.module 规则
  • #3380: 添加命名空间支持
  • #5945: 检测 pkgconfig/cmake 导入文件
  • #6054: 为 linux 添加 xmake bundle 包
  • #6071: 改进 git 包下载,支持仅仅 clone 指定子目录
  • #5163: 支持 TI-CGT C2000/C6000 编译器
  • #5344: 支持 IAR ARM C/C++ 编译器
  • #5554: 添加自定义未知工具链支持

改进

  • #6056: 添加 CI 去构建发布 windows arm64 版本。
  • #6097: 添加 qt_host 支持交叉编译 Qt 项目
  • #6120: 改进 configfiles 添加自定义预处理支持
  • #6088: 改进 configfiles 去生成导出宏

Bugs 修复

  • #272: 修复 msvc + /O1 时候,错误的编译器优化导致 xmake 加载卡住
  • #6089: 修复 depend.is_changed

What's Changed

New Contributors

Full Changelog: v2.9.7...v2.9.8

xmake v2.9.7

19 Dec 08:46

Choose a tag to compare

New features

  • #5813: Add before_config and after_config for rule
  • #5848: Support custom MSVC build tools, e.g. PortableBuildTools and msvc-wine
  • #5880: Use msvc package to build project
  • #5884: Add installtips for package
  • #5894: Add package.merge_staticlibs policy to merge package libs
  • #5948: Add lua.native-object rule
  • #5911: Support for nuget packages

Changes

  • #5817: Improve default pic for packages
  • #5869: Add libstdc++ standard library modules support for gcc
  • #5923: Solve the package version and configs conflict

Bugs fixed

  • #5856: Fix compile c++modules for clang
  • #5858: Fix the precompiled header for gcc

新特性

  • #5813: 为 rule 添加 before_configafter_config
  • #5848: 支持自定义 MSVC 构建工具, PortableBuildTools 和 msvc-wine
  • #5880: 支持使用 msvc 包去构建工程
  • #5884: 为包添加自定义安装提示
  • #5894: 添加 package.merge_staticlibs 策略去合并包安装的静态库
  • #5948: 添加 lua.native-object 规则
  • #5911: 支持 nuget 包集成

改进

  • #5817: 改进安装包的默认 pic 配置
  • #5869: 为 gcc 添加 libstdc++ 标准库模块的支持
  • #5923: 解决包依赖链中版本和配置冲突

Bugs 修复

  • #5856: 修复 c++modules 在 clang 下的编译
  • #5858: 修复 gcc 的头文件预编译问题

What's Changed

New Contributors

Full Changelog: v2.9.6...v2.9.7

xmake v2.9.6

30 Oct 08:08

Choose a tag to compare

New features

  • #5527: Add set_policy("compatibility.version", "3.0") to preview v3.0 features.
  • #5649: Add package.check_fcsnippets

Changes

  • #5631: Add as_needed for add_linkgroups
  • #5702: Improve hash module
  • #5688: Improve hashset module
  • #5711: Support to parse include deps for sdcc
  • #5727: Improve configs for add_requires
  • #5762: Improve bin2c speed

Bugs fixed

  • #5645: Fix xmake watch for linux
  • #5686: Fix module scanning

新特性

  • #5527: 添加 set_policy("compatibility.version", "3.0") 提前预览体验 3.0 特性
  • #5649: 添加 package.check_fcsnippets

改进

  • #5631: 为 add_linkgroups 添加 as_needed
  • #5702: 改进 hash 模块
  • #5688: 改进 hashset
  • #5711: 为 sdcc 支持解析 include 依赖
  • #5727: 为 add_requires 改进 configs 配置
  • #5762: 改进 bin2c 速度

Bugs 修复

  • #5645: 修复 xmake watch 在 linux 无法监听递归文件问题
  • #5686: 修复模块扫描

What's Changed

New Contributors

Full Changelog: v2.9.5...v2.9.6

xmake v2.9.5

14 Sep 00:53

Choose a tag to compare

New features

  • #5462: Add xmake l cli.bisect
  • #5488: Support for using cosmocc to build xmake binary
  • #5491: Provide single xmake binary with embedded lua files
  • #5580: Add @builtin/xrepo to add envs for xrepo env shell

Changes

  • #5507: Use treeless to improve git.clone
  • #5536: Add jar generate in swig mode
  • #5573: Improve vsxmake generator performance
  • #5601: Improve utils.symbols.export_all rule to filter sourcefile path

Bugs fixed

  • #4750: Fix compile_commands generator for xmake tests
  • #5465: Fix lock package requires
  • #4760: Fix distcc client issue

新特性

  • #5462: 添加 xmake l cli.bisect
  • #5488: 支持使用 cosmocc 去构建 xmake 自身二进制
  • #5491: 支持提供内嵌 lua 文件的单个 xmake 二进制文件
  • #5580: 添加 @builtin/xrepo 辅助模块,为 xrepo env shell 实现快速设置环境变量

改进

  • #5507: 改进 git clone 下载速度
  • #5536: 在 swig 模式中添加 jar 生成支持
  • #5573: 改进 vsxmake generator 性能
  • #5601: 改进 utils.symbols.export_all 规则去过滤源文件路径

Bugs 修复

  • #4750: 修复 compile_commands 生成器,支持 xmake tests
  • #5465: 修复 package requires lock
  • #4760: 修复 distcc 分布式编译问题

What's Changed

New Contributors

Full Changelog: v2.9.4...v2.9.5