Releases: xmake-io/xmake
Releases · xmake-io/xmake
xmake v3.0.8
New features
- #7398: Add C# language and dotnet toolchain support
- #7410: Add C# and C/C++ interop support via P/Invoke
- #7360: Support custom templates
- #7367: Add
xmake create --listand remote template distribution - #7313: Add
build.release.strippolicy - #7333: Add
winos.file_signaturefunction - #7336: Add support for running wasi target
- #7346: Add nnd debugger support
- #7366: Add tarxz pack format
Changes
- #7416: Switch xmake.cli rule from bin2c to bin2obj
- #7309: Keep package source
- #7310: Improve check tips
- #7311: Improve Xcode toolchain
- #7312: Improve binutils to support wasm
- #7320: Add haiku ci
- #7329: Improve qt deploy for macapp
- #7349: Strip embed-dir on clang/gcc for C++ modules
- #7368: Move templates to repository
- #7383: Split zig toolchain to zig/zigcc
- #7384: Improve find_hdk
- #7387: Show target name in progress
- #7391: Improve to find package with vcpkg features
- #7392: Fix zig for shared libraries
- #7396: Improve vcpkg
- #7399: Extend formatting to C++ modules
- #7409: Improve ldc on windows
Bugs fixed
- #7299: Fix dependency handling for vcpkg
- #7316: Fix components typo
- #7318: Update tbox to fix tolower/toupper
- #7339: Update tbox to fix start process on win7
- #7344: Fix swig jar package module
- #7345: Fix check clang info
- #7341: Fix WASM QT 6.9
- #7356: Fix issue #7354
- #7371: Fix test verbose output
- #7386: Fix install script incompatibility with coreutils 9.10
- #7393: Fix build target validation
新特性
- #7398: 添加 C# 语言和 dotnet 工具链支持
- #7410: 添加 C# 和 C/C++ 通过 P/Invoke 互操作支持
- #7360: 支持自定义模板
- #7367: 添加
xmake create --list和远程模板分发 - #7313: 添加
build.release.strip策略 - #7333: 添加
winos.file_signature函数 - #7336: 添加运行 wasi 目标支持
- #7346: 添加 nnd 调试器支持
- #7366: 添加 tarxz 打包格式
改进
- #7416: xmake.cli 规则从 bin2c 切换到 bin2obj
- #7309: 保持包源信息
- #7310: 改进检测提示
- #7311: 改进 Xcode 工具链
- #7312: 改进 binutils 支持 wasm
- #7320: 添加 haiku ci
- #7329: 改进 qt deploy 对 macapp 的支持
- #7349: 改进 C++ 模块的 clang/gcc embed-dir 处理
- #7368: 迁移模板到仓库
- #7383: 拆分 zig 工具链为 zig/zigcc
- #7384: 改进 find_hdk
- #7387: 在进度中显示目标名称
- #7391: 改进通过 vcpkg features 查找包
- #7392: 修复 zig 共享库
- #7396: 改进 vcpkg
- #7399: 扩展格式化到 C++ 模块
- #7409: 改进 Windows 上的 ldc
Bugs 修复
- #7299: 修复 vcpkg 依赖处理
- #7316: 修复 components 拼写错误
- #7318: 更新 tbox 修复 tolower/toupper
- #7339: 更新 tbox 修复 win7 启动进程问题
- #7344: 修复 swig jar 包模块
- #7345: 修复检测 clang 信息
- #7341: 修复 WASM QT 6.9
- #7356: 修复 issue #7354
- #7371: 修复测试详细输出
- #7386: 修复安装脚本与 coreutils 9.10 的不兼容
- #7393: 修复构建目标验证
What's Changed
- fix: attempt to add dependency handling for vcpkg by @138436724 in #7299
- keep package source by @waruqi in #7309
- Improve check tips by @waruqi in #7310
- Improve Xcode toolchain by @waruqi in #7311
- Improve binutils to support wasm by @waruqi in #7312
- add build.release.strip policy by @waruqi in #7313
- fix components typo to make the package instance happy by @Willaaaaaaa in #7316
- update tbox to fix tolower/toupper by @waruqi in #7318
- add haiku ci by @waruqi in #7320
- add winos.file_signature function to retrieve file signature information by @luadebug in #7333
- update tbox to fix start process on win7 by @waruqi in #7339
- improve qt deploy for macapp by @waruqi in #7329
- Add run wasi target by @luadebug in #7336
- [fix] swig jar package module by @binLep in #7344
- Added notice of missing keystore for signing android app. by @KaruroChori in #7348
- (debuggers) add support of nnd by @Arthapz in #7346
- Fix WASM QT 6.9 by @luadebug in #7341
- fix check clang info by @waruqi in #7345
- (modules) strip embed-dir on clang / gcc by @Arthapz in #7349
- Try fixing issue #7354 by @luadebug in #7356
- do not fix the JDK version in the swig rules by @binLep in #7352
- Supports custom templates by @waruqi in #7360
- Improve targz and add tarxz pack format by @waruqi in #7366
- add xmake create --list and remote template distribution by @waruqi in #7367
- move templates to repository by @waruqi in #7368
- Fix test verbose output by @Stehsaer in #7371
- split zig toolchain to zig/zigcc by @waruqi in #7383
- improve find_hdk by @waruqi in #7384
- fix install script incompatibility with coreutils 9.10 by @k6v5 in #7386
- show target name in progress by @waruqi in #7387
- improve to find package with vcpkg features by @waruqi in #7391
- Fix zig for shared libraries by @waruqi in #7392
- Improve vcpkg by @waruqi in #7396
- fix(actions): add build target validation by @Willaaaaaaa in #7393
- Extend formatting to C++ modules by @metrapoliten in #7399
- Add csharp support by @waruqi in #7398
- improve ldc on windows by @waruqi in #7409
- fix ci by @waruqi in #7413
- csharp call c++ library by @waruqi in #7410
- add manifest mode support for vcpkg package depend-info by @kanren3 in #7411
- Improve xmake.cli, use bin2obj by @waruqi in https://github.com/xmake-io/xmake/pull...
xmake v3.0.7
New features
- #7178: Switch Verilator build file parsing from cmake to json format
- #7186: Add alpine ci
- #7187: Add suffix support for CUDA architecture
- #7190: Nix Package Manager: Add Semantic Versioning and Improve Version Selection
- #7189: Add package schemes
- #7208: Support dynamic mkspec selection for Qt SDK
- #7219: Add cli.iconv module
- #7235: Add string case conversion functions: lower and upper
- #7246: Add utf8 module
- #7268: Add dependency file generation for Nim source files
- #7269: Add target architecture validation for cross-compilation in zig toolchain
- #7274: Add os.access function for file access checking
- #7284: Add
--stdin - #7293: Add support for running wasm target in browser
- #7300: Add libdir,includedir,bindir support for install/uninstall
- #7295: Support test output files
Changes
- #7203: Improve mingw toolchain
- #7206: WDK: Add shared directory to KMDF include path
- #7214: Improve warnings output
- #7216: Improve requirelock
- #7223: Improve NuGet library file matching with score-based selection
- #7226: Improve to find clang-tidy
- #7232: Improve linker.link_scripts
- #7237: Update tbox to support case
- #7240: Improve verilator flags
- #7258: Improve qt xpack
- #7262: Improve pch concurrently to other targets
- #7260: Improve fpc
- #7270: Improve to select scheme version
- #7272: Enhance Nim support for shared libraries and rpath handling
- #7273: Improve io.read and io.readfile
- #7267: Enhance shell detection for Linux by checking parent process
- #7278: Improve os.isexec
- #7283: Enhance compile_commands support and add test cases
- #7285: Improve Windows shell detection for cmd/powershell
- #7286: Check long env values when detecting vs
- #7280: Add target flags only for cross-compilation
- #7290: Improve vcvars
- #7302: Improve run process errors
- #7306: Improve remote build with multi-host configuration and
--hostoption - #7298: Add initial implementation for Windows DLL foo/main example
Bugs fixed
- #7210: Fix package version
- #7213: Fix installdir of imporfiles
- #7231: Fix get flag in module support
- #7245: Fix to select scheme version
- #7259: Fix export c++ function symbols
- #7266: Fix pch header extension
- #7282: find_cuda: revert breaking change
- #7294: Fix package toolchain
- #7296: Fix find emsdk
- #7202: Fix getfenv
新特性
- #7178: 改进 Verilator 构建文件解析,从 cmake 格式切换到 json 格式
- #7186: 添加 Alpine CI 支持
- #7187: 为 CUDA 架构添加后缀支持
- #7190: Nix 包管理器:添加语义化版本控制并改进版本选择
- #7189: 添加包方案(package schemes)支持
- #7208: 支持 Qt SDK 动态 mkspec 选择
- #7219: 添加 cli.iconv 模块
- #7235: 添加字符串大小写转换函数:lower 和 upper
- #7246: 添加 utf8 模块
- #7268: 为 Nim 源文件添加依赖文件生成
- #7269: 为 zig 工具链添加交叉编译的目标架构验证
- #7274: 添加 os.access 函数用于文件访问检查
- #7284: 添加
--stdin支持 - #7293: 添加在浏览器中运行 wasm 目标的支持
- #7300: 为安装/卸载添加 libdir、includedir、bindir 支持
- #7295: 支持测试输出文件
改进
- #7203: 改进 MinGW 工具链
- #7206: WDK:为 KMDF 包含路径添加共享目录
- #7214: 改进警告输出
- #7216: 改进依赖锁定(requirelock)
- #7223: 改进 NuGet 库文件匹配,采用基于分数的选择机制
- #7226: 改进 clang-tidy 查找
- #7232: 改进链接器脚本配置
- #7237: 更新 tbox 库以支持大小写敏感
- #7240: 改进 Verilator 标志处理
- #7258: 改进 Qt xpack 打包
- #7262: 改进预编译头文件(PCH)与其他目标的并发处理
- #7260: 改进 Free Pascal 编译器支持
- #7270: 改进方案版本选择机制
- #7272: 增强 Nim 对共享库和 rpath 处理的支持
- #7273: 改进 io.read 和 io.readfile 函数
- #7267: 通过检查父进程增强 Linux 的 shell 检测
- #7278: 改进 os.isexec 函数
- #7283: 增强 compile_commands 支持并添加测试用例
- #7285: 改进 Windows 的 cmd/powershell shell 检测
- #7286: 检测 VS 时检查长环境变量值
- #7280: 仅在交叉编译时添加目标标志
- #7290: 改进 vcvars 处理
- #7302: 改进运行进程错误处理
- #7306: 改进远程构建,支持多主机配置和
--host选项 - #7298: 为 Windows DLL 的 foo/main 示例添加初始实现
Bugs 修复
- #7210: 修复包版本问题
- #7213: 修复导入文件的安装目录问题
- #7231: 修复模块支持中的标志获取问题
- #7245: 修复方案版本选择问题
- #7259: 修复 C++ 函数符号导出问题
- #7266: 修复预编译头文件扩展名问题
- #7282: find_cuda:回滚破坏性变更
- #7294: 修复包工具链问题
- #7296: 修复 emsdk 查找问题
- #7202: 修复 getfenv 函数
What's Changed
- refactor(rules/verilator): Switch from cmake to json format for Verilator build file parsing by @24bit-xjkp in #7178
- Add alpine ci by @waruqi in #7186
- 为cuda arch添加后缀支持 by @veritas-Qiu in #7187
- Nix Package Manager: Add Semantic Versioning and Improve Version Selection by @ZZBaron in #7190
- fix getfenv by @waruqi in #7202
- WDK: Add shared directory to KMDF include path by @SuperSodaSea in #7206
- improve mingw toolchain by @waruqi in #7203
- Add package schemes by @waruqi in #7189
- fix package version by @waruqi in #7210
- support dynamic mkspec selection for Qt SDK by @RC1844 in #7208
- fix installdir of imporfiles by @waruqi in #7213
- Improve warnings output by @waruqi in #7214
- fix(nuget): improve library file matching with score-based selection b...
xmake v3.0.6
https://xmake.io/posts/xmake-update-v3.0.6.html
New features
- #7141: Support disabling native app glue for Android
- #7139: Add Android native app build support
- #7127: Add deplibs support in binutils
- #7120: Add extractlib support in binutils
- #7106: Add
/std:c++23previewsupport for MSVC - #7105: Add
bin2objsupport for glsl/hlsl2spv - #7103: Add
bin2objrule (faster thanbin2c) - #7096: Add Flang toolchain support
- #7094: Add
xmake check syntaxsupport - #7091: Add dynamic debugging support for MSVC
- #7083: Add support for CUDA 11~13
- #7071: Add Qt pack support
- #7064: Add AppImage xpack format for Linux application packaging
- #7062: Add dmg xpack format for macOS application packaging
Changes
- #7149: Improve binutils to optimize rpath parsing
- #7148: Update Zig examples
- #7145: Improve Clang/LLVM runtime support
- #7136: Improve clang-cl depfiles generation
- #7135: Improve
xrepo envto add session ID - #7155: Refactor Windows ASan for clang-cl (runtime linking, linker flags, PATH/CMAKE_LINKER_TYPE setup, toolchain streamlining)
- #7109: Improve binutils to read symbols from binary file
- #7102: Improve bin2c rule
- #7098: Refactor and improve Golang support
- #7095: Mark target/package/toolchain:memcache as public
- #7093: Improve mirror repo URL
- #7088: Improve C++/ObjC rules
- #7087: Add type constraint for policy
package.download.http_headers - #7069: Save Qt rules for LLVM toolchain
- #7061: Update CI configuration
- #7039: Update macOS CI
Bugs fixed
- #7132: Fix clang-cl toolchain with ASan
- #7125: Fix cosmocc CI
- #7124: Fix default MSVC runtime for Clang toolchain
- #7112: Fix change directory on Windows
- #7104: Fix prepare for project generators
- #7092: Fix Solaris build
- #7086: Fix targetdir in Qt QML rule
- #7085: Fix CMake flags for Clang toolchain
- #7084: Fix pacman find_package
- #7082: Fix checking Clang CUDA flags
- #7081: Fix
get_headerunit_key - #7074: Fix libc++ cannot find std module
- #7067: Fix get_stdmodules with cross toolchain
新特性
- #7141: 支持禁用 Android 原生应用 glue
- #7139: 添加 Android 原生应用构建支持
- #7127: 为 binutils 添加 deplibs 支持
- #7120: 为 binutils 添加 extractlib 支持
- #7106: 为 MSVC 添加
/std:c++23preview支持 - #7105: 为 glsl/hlsl2spv 添加
bin2obj支持 - #7103: 添加
bin2obj规则(比bin2c更快) - #7096: 添加 Flang 工具链支持
- #7094: 添加
xmake check syntax支持 - #7091: 为 MSVC 添加动态调试支持
- #7083: 添加对 CUDA 11~13 的支持
- #7071: 添加 Qt 打包支持
- #7064: 添加 AppImage xpack 格式用于 Linux 应用程序打包
- #7062: 添加 dmg xpack 格式用于 macOS 应用程序打包
改进
- #7149: 改进 binutils 优化 rpath 解析
- #7148: 更新 Zig 示例
- #7145: 改进 Clang/LLVM 运行时支持
- #7136: 改进 clang-cl 依赖文件生成
- #7135: 改进
xrepo env以添加会话 ID - #7155: 重构 Windows 上 clang-cl 的 ASan 支持(改进运行库链接、链接器标志、完善 PATH/CMAKE_LINKER_TYPE 配置、精简工具链)
- #7109: 改进 binutils 以从二进制文件读取符号
- #7102: 改进 bin2c 规则
- #7098: 重构并改进 Golang 支持
- #7095: 将 target/package/toolchain:memcache 标记为公开
- #7093: 改进镜像仓库 URL
- #7088: 改进 C++/ObjC 规则
- #7087: 为策略
package.download.http_headers添加类型约束 - #7069: 为 LLVM 工具链保存 Qt 规则
- #7061: 更新 CI 配置
- #7039: 更新 macOS CI
Bugs 修复
- #7132: 修复带有 ASan 的 clang-cl 工具链
- #7125: 修复 cosmocc CI
- #7124: 修复 Clang 工具链的默认 MSVC 运行时
- #7112: 修复 Windows 上的目录切换
- #7104: 修复项目生成器的准备工作
- #7092: 修复 Solaris 构建
- #7086: 修复 Qt QML 规则中的 targetdir
- #7085: 修复 Clang 工具链的 CMake 标志
- #7084: 修复 pacman find_package
- #7082: 修复 Clang CUDA 标志检查
- #7081: 修复
get_headerunit_key - #7074: 修复 libc++ 找不到 std 模块
- #7067: 修复交叉编译工具链的 get_stdmodules
What's Changed
- update ci by @waruqi in #7061
- Add dmg xpack format by @waruqi in #7062
- Pack Appimage support by @waruqi in #7064
- (modules) fix get_stdmodules with cross toolchain by @Arthapz in #7067
- Save QT rules for llvm-toolchain by @MaxwellGengYF in #7069
- Add Qt pack support by @waruqi in #7071
- fix
get_headerunit_keyby @Shiffted in #7081 - Add support for cuda 11~13; update templates and examples by @OpportunityLiu in #7083
- fix check clang cuda flags, Fixes #7077 by @OpportunityLiu in #7082
- fix pacman find package by @choyy in #7084
- Fix CMake flags for Clang toolchain by @star-hengxing in #7085
- fix_libc++_cannot_find_stdmodule by @SnowinterCat in #7074
- fix targetdir in qml rule by @waruqi in #7086
- Add type constraint for policy
package.download.http_headersby @Willaaaaaaa in #7087 - Improve c++/objc rules by @waruqi in #7088
- Add dynamic debugging support for msvc by @waruqi in #7091
- Fix solaris build by @waruqi in #7092
- Improve mirror repo url by @waruqi in #7093
- Add
xmake check syntaxsupport by @waruqi in #7094 - mark target/package/toolchain:memcache as public by @waruqi in #7095
- Add Flang support by @waruqi in #7096
- Rewrite golang support by @waruqi in #7098
- improve bin2c by @waruqi in #7102
- Add bin2obj rule, will be faster than bin2c by @waruqi in #7103
- add bin2obj support for glsl/hlsl2spv by @waruqi in #7105
- add `/std:c++23...
xmake v3.0.5
Introduction
New features
- #7055: Add Solaris platform support (i386, x86_64)
- #7054: Add support for additional BSD systems (NetBSD, OpenBSD, DragonflyBSD)
- #6929: Add support for GCC 15 toolchain
- #6967: Add Swift interop support for C++ and Objective-C
- #6964: Support specifying CUDA SDK version via cuda_sdkver
- #6963: Add libtool patch support for cross compilation
- #6974: Support multi-row refresh for progress output
- #7024: Add JSON output format for
xmake show -t target - #7025: Add XML module with parsing and encoding support
- #6989: Add async support for os APIs
Changes
- #6924: Improve toolchain configuration with add_toolchains("name[configs]") syntax
- #6935: Refactor toolchain: separate gcc/clang registration from definition
- #6942: Improve file reading performance
- #6946: Add LLD linker support for Clang toolchain
- #6970: Improve TTY handling and output
- #6977: Refactor Xcode toolchain and integrate it into LLVM toolchain for Apple devices
- #6987: Add Ghostty terminal detection support
- #7003: Limit build environment retrieval in package configurations
- #7008: Format code style
- #7004: Skip rebuilding packages and std modules when using -r flag
- #7019: Improve xmake.sh/configure script and add Ninja generator support
- #7023: Update Qt TypeScript rule
- #7022: Make zig-cc toolchain inherit from clang
- #7027: Improve graph module performance
- #7031: Improve require parsing
- #7032: Improve symbol extraction
- #6952: Add realtime output support for tests
- #6998: Update tbox library for process/argv support
- #7037: Improve xmake format
- #7038: Improve clang-tidy output handling
Bugs fixed
- #6926: Fix loading Unicode main script path on Windows
- #6931: Fix C++ modules: fallback to system-wide clang-scan-deps when toolchain version is not installed
- #6937: Fix target jobs handling
- #6954: Fix modules support for vsxmake/vs generators
- #6955: Fix build number sorting in packages
- #6956: Fix build failure when using zigcc linker that doesn't support depfile
- #6959: Fix using zigcc with autotools for dynamic linking
- #6983: Fix modules: strip sanitizer flags for module reuse
- #6984: Fix libdir path in installed CMake import files
- #6993: Fix xmake test modules
- #6992: Fix modules: add all supported platforms for clang get_cpp_library_name
- #6999: Fix rootdir handling
- #7002: Fix asn1c: include generated output as system headers
- #6996: Fix Nimble find_package to use latest package list format
- #7012: Fix sparse checkout handling
- #7013: Fix removing dependencies when packaging
- #7017: Fix lock_packages typo
- #7016: Fix project default configuration in vsxmake
- #7018: Fix build order: only disable when dependency linking inheritance is disabled
- #7035: Fix process redirection issues by updating tbox
介绍
新特性
- #7055: 添加 Solaris 平台支持 (i386, x86_64)
- #7054: 添加更多 BSD 系统支持 (NetBSD, OpenBSD, DragonflyBSD)
- #6929: 添加 GCC 15 工具链支持
- #6967: 为 C++ 和 Objective-C 添加 Swift 互操作支持
- #6964: 支持通过 cuda_sdkver 参数指定 CUDA SDK 版本
- #6963: 为交叉编译添加 libtool 补丁支持
- #6974: 支持多行刷新进度输出显示
- #7024: 为
xmake show -t target命令添加 JSON 格式输出 - #7025: 添加 XML 模块,支持解析和编码功能
- #6989: 为 os API 添加异步操作支持
改进
- #6924: 改进工具链配置,支持 add_toolchains("name[configs]") 语法
- #6935: 重构工具链:将 gcc/clang 的注册与定义分离
- #6942: 改进文件读取性能
- #6946: 为 Clang 工具链添加 LLD 链接器支持
- #6970: 改进 TTY 处理和输出显示
- #6977: 重构 Xcode 工具链,并将其集成到针对 Apple 设备的 LLVM 工具链中
- #6987: 添加 Ghostty 终端检测支持
- #7003: 限制在包配置中获取构建环境变量
- #7008: 统一代码格式风格
- #7004: 使用 -r 标志时跳过重建包和 std 模块
- #7019: 改进 xmake.sh/configure 脚本并添加 Ninja 生成器支持
- #7023: 更新 Qt TypeScript 规则
- #7022: 使 zig-cc 工具链继承自 clang
- #7027: 改进 graph 模块性能
- #7031: 改进 require 解析功能
- #7032: 改进符号提取功能
- #6952: 为测试添加实时输出支持
- #6998: 更新 tbox 库以支持 process/argv
- #7037: 改进 xmake format 功能
- #7038: 改进 clang-tidy 输出处理
Bugs 修复
- #6926: 修复在 Windows 上加载包含 Unicode 字符的主脚本路径问题
- #6931: 修复 C++ 模块:当工具链的 clang-scan-deps 未安装时,自动回退到系统级的 clang-scan-deps
- #6937: 修复目标任务处理问题
- #6954: 修复 vsxmake/vs 生成器的模块支持问题
- #6955: 修复包中构建号的排序问题
- #6956: 修复使用不支持 depfile 的 zigcc 链接器导致的构建失败
- #6959: 修复在动态链接场景下使用 zigcc 与 autotools 的问题
- #6983: 修复模块:为模块重用场景去除 sanitizer 标志
- #6984: 修复已安装的 CMake 导入文件中的 libdir 路径问题
- #6993: 修复 xmake 测试模块相关问题
- #6992: 修复模块:为 clang get_cpp_library_name 添加所有支持的平台
- #6999: 修复 rootdir 处理问题
- #7002: 修复 asn1c:将生成的输出文件作为系统头文件包含
- #6996: 修复 Nimble find_package 以使用最新的包列表格式
- #7012: 修复稀疏检出处理问题
- #7013: 修复打包时移除依赖项的问题
- #7017: 修复 lock_packages 的拼写错误
- #7016: 修复 vsxmake 中的项目默认配置问题
- #7018: 修复构建顺序:仅在禁用依赖链接继承时才禁用构建顺序
- #7035: 通过更新 tbox 修复进程重定向问题
What's Changed
- fix load unicode main script path on windows by @waruqi in #6926
- feat: Adds support for GCC 15 toolchain by @romeoxbm in #6929
- fix(C++ modules) if toolchain clang-scan-deps is not installed, fallback to system wide clang-scan-deps if available by @Arthapz in #6931
- Improve toolchain configs, add_toolchains("name[configs]") by @waruqi in https://github.com/xmake-io/xmake/pu...
xmake v3.0.4
New features
- #6864: Add default file filter for
formattask - #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
- improve cmake default flags #6845 by @waruqi in #6846
- Fix version in auto-generated .pc. by @Redbeanw44602 in #6844
- Fix finding clang-scan-deps by @tgsong in #6851
- improve jobgraph by @waruqi in #6849
- Fix rc compiler with cmake in cross-compilation by @star-hengxing in #6857
- improve to check target flags by @waruqi in #6859
- modify config flags order by @waruqi in #6858
- fix(C++ modules) fix stdmodule priority by @Arthapz in #6809
- docs: Keep redirecting to the Chinese page by @1411430556 in #6862
- improve os.curdir/os.cd by @waruqi in #6854
- Add default file filter for
formattask by @Stehsaer in #6864 - improve os.getenvs by @waruqi in #6866
- feat(clang-tidy): Improve clang-tidy support by @24bit-xjkp in #6843
- Make sure generic options are always inserted. by @Redbeanw44602 in #6867
- Rewrite of Nix Package Manager Support by @ZZBaron in #6861
- chore(vcpkg): bump default baseline hash of vcpkg by @yingmanwumen in #6870
- add package api checking by @Shiffted in #6850
- add scriptdir to project packages by @Shiffted in #6874
- add versionfiles checker by @Shiffted in #6876
- Update cmake_importfiles.lua by @luadebug in #6880
- Improve hash by @waruqi in #6872
- Fix: write package manifest.pathenvs in deterministic order by @romeoxbm in #6882
- Fix clang toolchain package by @star-hengxing in #6888
- Decrease jobs count in jobgraph by @waruqi in #6886
- fix os.getenvs compat by @waruqi in #6889
- Add msystem support on msys2 by @star-hengxing in #6884
- Add coroutine semaphore by @waruqi in #6891
- Update cmake_importfiles.lua by @luadebug in #6890
- Add llvm-nm for clang toolchain by @star-hengxing in #6894
- Improve runjobs to reduce the time spent on coroutine scheduling by @waruqi in #6892
- add hash test by @waruqi in #6896
- package.tools.xmake: fix policies not being passed by @SirLynix in #6900
- package download: don't get submodules if disabled by @SirLynix in #6901
- package download: don't get submodules if disabled (branch version) by @SirLynix in #6907
- Improve clang to support for msvc envs by @waruqi in #6904
- reuse rand32 by @waruqi in #6908
- improve to export def rules for binary by @waruqi in #6915
- improve implib by @waruqi in #6916
- Add copy_if_different in os.cp by @waruqi in #6918
- fix(rules) fix ...
xmake v3.0.3
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
- Improve bin2c to use native thread by @waruqi in #6765
- fix find gcc/gxx cache #6767 by @waruqi in #6771
- revert config targets #6775 by @waruqi in #6776
- add build.linker.output by @waruqi in #6778
- fix executable path for cmake #6768 by @waruqi in #6777
- add #embed and embedirs support #6762 by @waruqi in #6779
- update engine by @waruqi in #6782
- fix(C++ modules) fix build.c++.modules.std policy by @Arthapz in #6783
- feat(C++ modules support) use a file for requires flags when --verbose or --diagnosis is supplied by @Arthapz in #6744
- Add benchmarks and optimize config/build targets by @waruqi in #6780
- Support for vs2026 by @waruqi in #6787
- feat(wdk rules) support clang and llvm for wdk rules by @Arthapz in #6785
- Continue to optimize building targets speed by @waruqi in #6784
- workflows: use musl to avoid glibc's version issue by @Sunrisepeak in #6793
- Add Nix Package Manager Support by @ZZBaron in #6791
- fix(C++ modules) add external to the strippeable_flags for msvc by @Arthapz in #6798
- feat(C++ modules) Improve incremental build clang by @Arthapz in #6788
- Support nushell for xrepo env by @star-hengxing in #6800
- feat(wdk rules) enable support of incomplete wdk by @Arthapz in #6796
- fix xrepo env #6806 by @waruqi in #6808
- improve clang-tidy by @waruqi in #6811
- improve the default flags for cmake #6781 by @waruqi in #6810
- Change compilers priority for gcc and clang by @bugsnotabunny in #6801
- Improve show target by @Shiffted in #6819
- Improve build targets by @waruqi in #6817
- clean undefined vsvers by @choyy in #6821
- Prioritize envs over repo cache by @Shiffted in #6822
- Fix Nix Package Detection in nix-shell Environment by @ZZBaron in #6818
- Improve has_flags by @waruqi in #6824
- optimize codesign by @waruqi in #6832
- improve envs by @waruqi in #6834
- fix package extension by @waruqi in #6835
New Contributors
- @ZZBaron made their first contribution in #6791
- @bugsnotabunny made their first contribution in #6801
Full Changelog: v3.0.2...v3.0.3
xmake v3.0.2
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++.buildsourcebatch 中被窃取的问题 - #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
- add pkgenvs to target/config by @waruqi in #6641
- Support .def file with clang by @star-hengxing in #6644
- fix(qt.qmltyperegistrar): Collect metatypes info by @GooRoo in #6648
- improve depfiles by @waruqi in #6651
- Make build tools support passing in
opt.targets. by @Redbeanw44602 in #6656 - fix: Fix prolonged blocking in _ping_via_wget by setting "--tries=1" by @BoundlessLearning in #6661
- fix cmake/mingw #6660 by @waruqi in #6665
- improve to config targets by @waruqi in #6667
- Revert "improve to config targets" by @waruqi in #6675
- Merge pull request #6667 from xmake-io/config by @waruqi in #6676
- Attempt to fix linkgroups in package by @waruqi in #6674
- fix compiler cache #6672 by @waruqi in #6686
- improve to install targets by @waruqi in #6688
- Improve protobuf test by @star-hengxing in #6692
- fix(c++ modules) handle empty modules by @Arthapz in #6698
- fix(c++ modules) fix xmake not updating module mapper when module file is removed by @Arthapz in #6699
- fix find_cudadevices for CUDA 13 by @xq114 in #6706
- add /uselocaltime to inf2cat args by @std-microblock in #6695
- nfc(c++ modules) improve tests by @Arthapz in #6714
- fix(c++ modules) fix public culled module incorrectly emiting a warning by @Arthapz in #6715
- fix(c++ modules) fix non .cpp file stealed from c++.build sourcebatch by @Arthapz in #6713
- support for wasm64 #6690 by @waruqi in #6709
- ignore pch flags #6710 by @waruqi in #6718
- fix(c++ modules) fix sourcebatch caching (previously cached in localc… by @Arthapz in #6707
- improve target:extrafiles by @waruqi in #6725
- fix(c++ modules) fix disabled target getting configured for module compilation by @Arthapz in #6712
- improve comax for config by @waruqi in #6719
- continue to improve comax by @waruqi in #6729
- fix: android ndk rust link-args by @HuiYuanXin13 in #6732
- fix(qt.qmltyperegistrar): Extend dependencies for rebuild by @GooRoo in #6735
- Add python stub file extension to cython rule by @Freed-Wu in #6737
- fix vsxmake options #6739 by @waruqi in #6741
- fix protobuf for target deps #6701 by @waruqi in #6738
- meminfo.c: no vmstat.compressor_page_count on < 10.7 by @barracuda156 in #6747
- Use ccache when debug xmake package by @star-hengxing in #6756
- Add native thread support by @waruqi in #6324
New Contributors
- @GooRoo made their first contribution in #6648
- @BoundlessLearning made their first contribution in #6661
- @HuiYuanXin13 made their first contribution in #6732
- @barracuda156 made their first contribution in #6747
Full Changelog: v3.0.1...v3.0.2
xmake v3.0.1
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
- Improve conan to support for wasm by @waruqi in #6559
- Do not add -fsanitize flags to msvc linker by @DownerCase in #6567
- Update Qt ts rule by @RC1844 in #6582
- Use pairs iterator for project.options instead of ipairs by @A2va in #6581
- Fix attempt to index a nil value by @star-hengxing in #6587
- feat(test): Support expected-failure tests via should_fail option by @romeoxbm in #6588
- feat(plugin/project): support gen compile_commands.json for specific target by @fcying in #6572
- improve ping #6579 by @waruqi in #6585
- Fix objectonly targets by @waruqi in #6592
- package(install): refine relative path generation in .pc files by @Doekin in #6597
- New native Xcode project generator. by @JX-Master in #6411
- rename copyright by @waruqi in #6602
- fix project generator for c++modules by @waruqi in #6605
- vsxmake: add cxx20 by @ChrisCatCP in #6612
- fix: rust static and shared library failing to find extern crate in windows-msvc by @IMXEren in #6606
- fix: the cmake module cannot get the option
cxxflagscorrectly by @npc1054657282 in #6623 - add sysroot to ldflags by @waruqi in #6622
- (cmake) fix default flags detection on windows platform by @Arthapz in #6619
- check options by @waruqi in #6626
New Contributors
- @DownerCase made their first contribution in #6567
- @romeoxbm made their first contribution in #6588
- @fcying made their first contribution in #6572
- @JX-Master made their first contribution in #6411
- @IMXEren made their first contribution in #6606
- @npc1054657282 made their first contribution in #6623
Full Changelog: v3.0.0...v3.0.1
xmake v3.0.0
New features
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
新特性
改进
- #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
- Add build jobgraph support by @waruqi in #6209
- improve
emscriptendetection by includingemcc.pysearch by @Doekin in #6304 - package(autoconf): Resolve issue with backslash-separated
CXXpath in MSYS by @Doekin in #6307 - improve extract by @waruqi in #6312
- Improve modules with pch by @waruqi in #6315
- package(autoconf): De-duplicate
LDFLAGSby @Doekin in #6321 - fix package and headerunit for gcc by @waruqi in #6320
- do windeployqt for qt.shared by @choyy in #6323
- Add support for automatically using windows system proxy by @SineStriker in #6325
- do windeployqt for qt.shared deps, fix windeployqt bindir bug by @choyy in #6326
- (c++ modules support) add a new tests for stdmodules by @Arthapz in #6341
- (c++ modules support) fix stdmodules tests (std modules only export e… by @Arthapz in #6340
- (c++ modules support) disable std module for duplicate detection tests by @Arthapz in #6339
- (c++ modules support) Simplify module support directory tree by @Arthapz in #6338
- (runtimes) runtimes flags should be first to avoid -L/usr/lib make li… by @Arthapz in #6337
- fix detect -fmodule-header for gcc by @waruqi in #6342
- add --config to cmake build install command by @carlcc in #6343
- fix action test for namespace by @hszSoft in #6349
- Improve MIDL support by @lakor64 in #6301
- (C++ modules support) cleanup module rules by @Arthapz in #6347
- Improve Implib by @waruqi in #6355
- Update README_zh.md by @SineStriker in #6357
- (C++ modules support) Update module policies by @Arthapz in #6360
- Rename buildir to builddir by @waruqi in #6361
- (C++ modules support) factorize implementation getter by @Arthapz in #6364
- 更新了package依赖在安装时找不到so文件的问题 by @binLep in #6372
- (runtimes) fix support of macOS homebrew llvm for --runtimes by @Arthapz in #6379
- update asm sourcekinds by @retro98boy in #6387
- (generators) cmake : use a custom target to link prebuilt object files by @PierreEVEN in #6388
- (generators) cmake : fix compiler detection if (Gcc) with a more stan… by @PierreEVEN in #6386
- toolchains/rust: add support for cross-compilation by @SirLynix in #6392
- clang: Add support for cross-compiling from Windows to Linux by @SirLynix in #6391
- (cmake, llvm toolchain) when using --toolchain=llvm on windows, dependencies should be build with it by @Arthapz in #6381
- Improve idl rule by @star-hengxing in #6395
- Add custom git url syntax to plugin --install by @Shiffted in #6397
- (packages) forward buildtype and library kind to underlying buildsystem (cmake, autotools) by @Arthapz in #6396
- Add dlltool toolset for mingw by @star-hengxing in #6408
- Fix vcpkg detect by @Frityet in #6406
- rule protobuf.cpp add custom args, pass through to protoc. Resolves #6398 by @jiangyanan224 in #6405
- cargo: fix package cross-compilation by @SirLynix in #6402
- Add llvm-dlltool support by @star-hengxing in #6410
- rust/target_triple: handle arm and unknown arch by @SirLynix in #6412
- (cmake, meson) append shared/static libraries flag by default when installing packages by @Arthapz in #6409
- improve cmake configs by @waruqi in #6413
- Make rustc target_triple public by @SirLynix in #6416
- (C++ module support) improve jobgraph support by @Arthapz in #6373
- (rules) add win.subsystem rules by @Arthapz in #6414
- (C++ modules support) fix nil built_artifacts error when an error occur during the module sorting by @Arthapz in #6422
- (C++ modules support) Improve module format output by @Arthapz in #6423
- (C++ modules support) improve std module support for gcc and clang by @Arthapz in #6421
- (platform.windows.subsystem rules) fix startwiths => startswith by @Arthapz in #6426
- Fix xmake failing to find PING.EXE by @SirLynix in #6432
- target_triple: remove cross by @SirLynix in #6431
- fix upper in xmake.lua by @binLep in #6433
- Fix make ninja gen headeronly target by @PierreEVEN in #6429
- (autotools) fix ld override when ld binary is not in the same directo… by @Arthapz in #6425
- (C++ modules support) fix _patch_sourcebatch when target and deps is in the same namespace by @Arthapz in #6435
- (C++ modules support) profile module support by @Arthapz in #6437
- Wrap opt.paths in a table for find tools by @RimuruChan in #6448
- Improve msvc-wine support. by @Redbeanw44602 in #6452
- Fixed cmake generator that was using 'CMAKE_COMPILER_ID' by @PierreEVEN in #6439
- Add rule python.cython by @Freed-Wu in #6061
- package(install): use relative paths in generated .pc files to improve relocatability by @Doekin in #6445
- update: find qt by qt_sdkver option by @binLep in #6457
- (C++ modules support) fix unitybuild, pch and c++ modules objectfiles… by @Arthapz in #6454
- fix includes #6441 by @waruqi in #6458
- Fix unitybuild with pch/modules by @waruqi in #6446
- fix namespace/packages #6465 by @waruqi in #6469
- Add
detect.sdks.find_dia_sdk. by @Redbeanw44602 in #6456 - improve llvm cross-compilation by @waruqi in #6471
- (C++ modules support) Optimize module scanner by @Arthapz in #6450
- fix #6474 by @waruqi in https://github.com...
xmake v2.9.9
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
- package.tools.cmake: Set CMAKE_SYSTEM_PROCESSOR when cross-compiling by @SirLynix in #6145
- Rename output makefile -> Makefile. by @per1cycle in #6146
- Improve targetname input checks by @Shiffted in #6142
- feat: improve GN tool to support extra arguments by @poirierlouis in #6149
- Add kotlin language and kotlin-native compiler support by @waruqi in #6153
- Remove msystem include on msys2 by @star-hengxing in #6151
- Fix clang-cl toolchain for msvc-wine by @star-hengxing in #6164
- Fix clang-cl toolchain with lto by @star-hengxing in #6167
- feat(utils.archive): Add zstd support for utils.archive by @24bit-xjkp in #6168
- Add kotlin native package support by @waruqi in #6170
- Pass more options from
package:find_tooltolib.detect.find_toolby @Doekin in #6172 - Improve clang toolcahin for building package with lto by @star-hengxing in #6177
- Improve to select vs toolset by @waruqi in #6179
- fix wine/cl output encoding #6191 by @waruqi in #6192
- switch to windows 2025 by @waruqi in #6194
- Support msstl modules for clang by @star-hengxing in #6182
- meson: Force to use vs env on Windows by @SirLynix in #6219
- fix(raddbg): make rad debugger open as detached by @Gaweringo in #6220
- meson: Add cmake search env by @SirLynix in #6222
- devel: enable verbose for git clone by @Sunrisepeak in #6225
- improve find_program by @waruqi in #6229
- package(cmake): fix incorrect flag handling caused by substring matching by @Doekin in #6236
- toolchain(cross): use target-specific
objcopyby @Doekin in #6240 - toolchain(llvm): preliminary support for
crossplatform by @Doekin in #6243 - fix compile_commands with nvcc by @xq114 in #6251
- (C++ modules) disable std module on some tests by @Arthapz in #6249
- [fix] xmake install skips SO with version like libfreetype.so.6.20.2 by @19317362 in #6257
- srcenv.profile: additional detection of xmake binary in
core/buildby @Doekin in #6265 - improve conan generator by @waruqi in #6270
- fix unknown package tips by @Shiffted in #6277
- Fix git clone failure by @Elite-stay in #6288
- [toolchains(armclang)] fix target and cpu flags for MDK by @jnshuiji in #6286
- Add msvc midl support by @star-hengxing in #6279
- feat(verilator): Support Verilator target build to shared library by @TimeKeepper in #6281
- fix namespace #6292 by @waruqi in #6293
New Contributors
- @per1cycle made their first contribution in #6146
- @poirierlouis made their first contribution in #6149
- @Sunrisepeak made their first contribution in #6225
- @jnshuiji made their first contribution in #6286
- @TimeKeepper made their first contribution in #6281
Full Changelog: v2.9.8...v2.9.9