Releases: xmake-io/xmake
Releases · xmake-io/xmake
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
xmake v2.9.8
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 修复
What's Changed
- [fix] error path escape for windows + android ndk --sysroot= c: path… by @19317362 in #5988
- Profile process perf by @waruqi in #5993
- add profile support for windows by @xq114 in #5995
- Add ARM target support for Windows in clang-cl toolchain by @ifarbod in #5998
- improve clang-tidy to support multiple sourcefiles by @waruqi in #5592
- zig cc: fix wrapper not working properly in Git Bash by @Doekin in #6015
- add rule nodejs.module by @Freed-Wu in #5949
- Improve envs toolchain by @waruqi in #6022
- Fix clang with msvc-wine by @Redbeanw44602 in #6031
- xmake update: clone with shallow submodules, too by @nwf in #6029
- fix dummy cmakelist generated wrong default ms_runtime parameters. by @Redbeanw44602 in #6032
- fix(modules): Remove inappropriate warnings by @24bit-xjkp in #6035
- Fix cross compile with autotools on windows platform by @star-hengxing in #6027
- Fix run environment for mingw by @SirLynix in #6036
- Fix compile_commands for msvc include by @star-hengxing in #6039
- fix includes by @waruqi in #6041
- Fix program name of lua.native-objects rule by @Freed-Wu in #6042
- fix includes by @waruqi in #6045
- Support for namespace by @waruqi in #6001
- check pkgconfig/cmake importfiles for package by @waruqi in #6055
- Update usage of rule lua.native-objects, nodejs.module by @Freed-Wu in #6060
- Add newline at the end of file snippets by @therloux in #6068
- fix ci by @waruqi in #6065
- use absolute path for xrepo/includes by @waruqi in #6066
- improve cross for zig and pack xmake bundle for linux by @waruqi in #6069
- fix: rpmbuild introduces unneccessary "requires" by @ShelpAm in #6074
- Change installdir name from release/debug to Release/Debug for bindings by @Freed-Wu in #6076
- support sparse-checkout for git by @waruqi in #6072
- Remove unused import("devel.git") for rule nodejs.module by @Freed-Wu in #6081
- Use lib.detect.find_tool for native_objects by @Freed-Wu in #6080
- Remove invalid proxy url by @star-hengxing in #6085
- Add native Windows on ARM64 builds for CI by @ifarbod in #6056
- Re-add cosmocc actions by @A2va in #6083
- use irm https://xmake.io/psget.text | iex by @std-microblock in #6096
- Add
find_aqtto fix detection of installedaqtby @Doekin in #6100 - improve linux arm64 ci by @waruqi in #6093
- fix ci for v3.0 by @waruqi in #6101
- fix depend.is_changed #6089 by @waruqi in #6104
- improve verilator by @waruqi in #6105
- add clang-cl for ninja #6052 by @waruqi in #6106
- Add
qt_hostOption to Enable Cross-Platform Qt Builds Using Host SDK Tools by @Doekin in #6097 - support verilator for compdb by @waruqi in #5635
- Support TI-CGT C6000 compiler by @waruqi in #6111
- improve to parser deps by @waruqi in #6112
- Support TI-CGT C2000 compiler by @waruqi in #6113
- Add custom unknown toolchain support by @waruqi in #6114
- Add support for IAR ARM embedded toolchain by @waruqi in #6116
- Fix std module warnings with msvc by @Shiffted in #6118
- Improve add_configfiles to define export by @waruqi in #6119
- Fix clang flag by @star-hengxing in #6122
- Clearer extract errors by @Shiffted in #6124
- #5426 after_load for capnproto by @chriku in #6129
- feat(debugger): add raddbg as a debugger option by @Gaweringo in #6130
New Contributors
- @19317362 made their first contribution in #5988
- @nwf made their first contribution in #6029
- @therloux made their first contribution in #6068
- @ShelpAm made their first contribution in #6074
- @std-microblock made their first contribution in #6096
- @Gaweringo made their first contribution in #6130
Full Changelog: v2.9.7...v2.9.8
xmake v2.9.7
New features
- #5813: Add
before_configandafter_configfor 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-objectrule - #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
新特性
- #5813: 为 rule 添加
before_config和after_config - #5848: 支持自定义 MSVC 构建工具, PortableBuildTools 和 msvc-wine
- #5880: 支持使用 msvc 包去构建工程
- #5884: 为包添加自定义安装提示
- #5894: 添加 package.merge_staticlibs 策略去合并包安装的静态库
- #5948: 添加
lua.native-object规则 - #5911: 支持 nuget 包集成
改进
Bugs 修复
What's Changed
- Add riscv64 support for Android NDK projects by @ifarbod in #5772
- fix error when generating cmake by @cmolocznik in #5779
- fix bindir #5776 by @waruqi in #5780
- fix linker and compiler flags by @waruqi in #5782
- fix: #5777 nvcc warning by @Aurorabili in #5785
- allow using zig cc to compile assembly by @wenxuanjun in #5787
- improve vs/vsxmake group by @waruqi in #5795
- fix package by @waruqi in #5803
- Improve user experience by @Elite-stay in #5804
- add before/after_config #5791 by @waruqi in #5813
- improve default pic for packages by @waruqi in #5817
- add kylin support for linuxos module by @jinke18 in #5834
- improve cmake flags by @waruqi in #5827
- Support custom vc build tools by @star-hengxing in #5823
- add wine run support by @star-hengxing in #5849
- fix
WindowsSDKDir->WindowsSdkDirby @star-hengxing in #5851 - fix: reset locked repo before pulling by @qudix in #5853
- fix cmake flags by @waruqi in #5850
- feat(msys2): add
xmake.cmdandxmake.ps1for better integration with Windows cmd and powershell by @DeepChirp in #5854 - improve pacman packages by @waruqi in #5855
- fix package linkgroups #5806 by @waruqi in #5866
- maybe a bug: batchcmds by @jinke18 in #5875
- add symlink support for installfiles when using xpack by @jinke18 in #5876
- Fix msvc-wine with cmake package by @star-hengxing in #5871
- Improve copy pdb with cmake & ninja package by @star-hengxing in #5877
- Improve msvc toolchain for package by @waruqi in #5880
- add debugsource param to rule utils.glsl2spv by @dddddjent in #5879
- Add support for libstdc++ standard library modules by @Juvwxyz in #5869
- fix cmake & mingw detect cross-compilation on windows by @star-hengxing in #5888
- fix gcc modules by @waruqi in #5887
- add unknown package tips by @waruqi in #5889
- fix gcc pcheaders by @waruqi in #5896
- improve QML Plugin by @Doekin in #5903
- fix gcc pch #5858 by @waruqi in #5902
- Fix clang module parallel compile error. by @vrecluse in #5899
- Improve to package deps by @waruqi in #5901
- Add Werror and dry-run flags for clang-format by @jj683 in #5908
- Obtain MinGW's path from LLVM_MINGW_DIR/ROOT by @ifarbod in #5909
- Fix meson package build by @star-hengxing in #5912
- Limit adding /subsystem:windows to link.exe by @ifarbod in #5910
- Fix tinycc asm toolset by @star-hengxing in #5914
- Pass --sdk to dependencies by @UE4SS in #5918
- Use ccache when debug cmake package by @star-hengxing in #5919
- Fix /sourceDependencies not on one line when using msvc-wine by @UE4SS in #5920
- Improve zigcc support by @Redbeanw44602 in #5921
- Solve the package configs conflict by @waruqi in #5923
- Merge staticlibs for package by @waruqi in #5927
- fix speed test under non-english linux. by @Redbeanw44602 in #5929
- Fix package.merge_staticlibs by @star-hengxing in #5936
- fix loongarch support under zig toolchain. by @Redbeanw44602 in #5943
- add rule lua-native-object by @Freed-Wu in #5948
- Improve protobuf test by @star-hengxing in #5955
- improve package envs by @waruqi in #5959
- rename luarocks.module to lua.module, platform.linux.driver to platform.linux.module by @Freed-Wu in #5953
- fix nsis #5952 by @waruqi in #5964
- Fix incorrect Zig-CC toolchain wrapper path on Windows by @Doekin in #5967
- improve to parse linux module flags by @waruqi in #5975
- Clang: fix target triple for MinGW by @Doekin in #5980
- Support for nuget packages by @waruqi in #5981
- Fix typos about lua.native-objects by @Freed-Wu in #5985
New Contributors
- @cmolocznik made their first contribution in #5779
- @Aurorabili made their first contribution in #5785
- @wenxuanjun made their first contribution in #5787
- @qudix made their first contribution in #5853
- @DeepChirp made their first contribution in #5854
- @dddddjent made their first contribution in #5879
- @Juvwxyz made their first contribution in #5869
- @Doekin made their first contribution in #5903
- @vrecluse made their first contribution in #5899
- @jj683 made their first contribution in #5908
- @UE4SS made their first contribution in #5918
Full Changelog: v2.9.6...v2.9.7
xmake v2.9.6
New features
- #5527: Add
set_policy("compatibility.version", "3.0")to preview v3.0 features. - #5649: Add
package.check_fcsnippets
Changes
- #5631: Add
as_neededforadd_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
新特性
- #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 修复
What's Changed
- Switch the default vs runtime as MD when 3.0 by @waruqi in #5626
- add support for "as_needed" by @KkemChen in #5628
- add NDEBUG for cuflags by @cherichy in #5633
- fix "as_needed" flag order by @KkemChen in #5631
- Allows installdir, bindir and libdir to be configured via opt arguments by @A2va in #5634
- add special language linker flags for package by @waruqi in #5644
- add package:check_fcsnippets by @waruqi in #5649
- improve program file for vsxmake #5642 by @waruqi in #5650
- fix testbuild for v3.0 by @waruqi in #5652
- Fix platform compatibility for _os_find and _os_date functions by @rennsax in #5655
- rename demo to cli by @waruqi in #5656
- improve host toolchain #5639 by @waruqi in #5643
- fix clang-cl toolchain #5658 by @waruqi in #5661
- use librarydep by @waruqi in #5666
- Improve object target for generator by @star-hengxing in #5667
- improve host by @waruqi in #5671
- shrink cmake arguments by @waruqi in #5678
- fix check toolchain by @waruqi in #5680
- feat(rules/iverilog): Improve the iverilog build rules by @24bit-xjkp in #5677
- improve hashset by @waruqi in #5688
- Fix module scanning by @Arthapz in #5686
- Improve hash by @waruqi in #5703
- Improve to Install target libs by @waruqi in #5706
- Support include deps for sdcc by @waruqi in #5715
- pass opt to tools/msbuild in tools/cmake by @wsw0108 in #5718
- add linkonly #5716 by @waruqi in #5725
- Make target:filerule able to match package rules by @SirLynix in #5730
- improve add_requires #5727 by @waruqi in #5736
- Update cmake_importfiles by @Yc7521 in #5733
- improve asan for clang-cl #5728 by @waruqi in #5742
- improve and cache searchdirs #5744 by @waruqi in #5748
- fix linux-driver build err by @ririyeye in #5749
- improve to object target #5729 by @waruqi in #5759
- Use native implementation to improve bin2c speed by @waruqi in #5762
- add linux_builddir fix ko build err by @ririyeye in #5766
New Contributors
- @KkemChen made their first contribution in #5628
- @rennsax made their first contribution in #5655
- @Yc7521 made their first contribution in #5733
Full Changelog: v2.9.5...v2.9.6
xmake v2.9.5
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/xrepoto add envs forxrepo 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
- fixbug: for cases when WindowsSDKVersion variable is not available by @jinke18 in #5411
- fixbug:nsis pack only support ascii path without blank space by @jinke18 in #5414
- improve pch filename for msvc #5413 by @waruqi in #5435
- fix protobuf objectfiles #5426 by @waruqi in #5437
- Don't treat x86_64 as cross on arm64 macOS by @SirLynix in #5442
- add /sdl, /Zc:inline and ExceptionHandling flag support for
xmake project -k vsby @jinke18 in #5416 - Revert e26ea1c by @SirLynix in #5447
- find libfiles for pacman by @waruqi in #5446
- add clang toolchain version 19 & 20 by @c8ef in #5451
- fix cmake compilers #5448 by @waruqi in #5449
- fix(plugin/project): Generate compile_commands for tests by @24bit-xjkp in #5460
- Add
xmake l cli.bisectby @waruqi in #5462 - fix lock repo by @waruqi in #5465
- improve to get pkgconf for meson by @waruqi in #5483
- fix packagedeps by @waruqi in #5484
- Support to build xmake using cosmocc by @waruqi in #5488
- improve flags support for cmake by @waruqi in #5487
- Add cosmocc ci by @waruqi in #5489
- fix rpath for #pull/5466 by @waruqi in #5498
- Add cli.archive and .xmz archive format by @waruqi in #5491
- Improve to check and load toolchain by @waruqi in #5466
- use treeless instead of depth1 by @waruqi in #5509
- improve treeless for git.clone by @waruqi in #5510
- Improve invalid path for package by @waruqi in #5511
- fix export_all when use export_filter on arch x86 by @ChrisCatCP in #5512
- fix install dylib for macos app #5515 by @waruqi in #5519
- use ALL_BUILD project build for msvc by @ChrisCatCP in #5523
- improve to run tests by @waruqi in #5522
- try use ninja for mingw by @waruqi in #5521
- fix lock packages #5532 by @waruqi in #5539
- fix windows wasm compilation with packages by @Chi-EEE in #5534
- use tar to extract .tar.gz by @waruqi in #5540
- Support multiple targets for package by @star-hengxing in #5537
- improve linker for package #5542 by @waruqi in #5543
- Fix vulkansdk searching for mingw platform by @yh-sb in #5549
- Add missing Linux platform triples in autoconf tool. by @Redbeanw44602 in #5548
- improve cosmocc for windows by @waruqi in #5553
- add client parameter to rule
utils.glsl2spvby @milkiq in #5563 - fix requirekey for runtimes #5538 by @waruqi in #5567
- Add runtimes only if the ndk version is low enough by @A2va in #5565
- add build settings for conan by @waruqi in #5569
- improve to select runtimes by @waruqi in #5572
- Improve to copy file by @waruqi in #5570
- add jar generate in swig mode by @ririyeye in #5536
- fix bin path for cmake #5552 by @waruqi in #5579
- Fix cmake find_package on wasm by @star-hengxing in #5578
- add envs for xrepo #5580 by @waruqi in #5582
- improve clang.tidy by @waruqi in #5586
- optimize vsxmake render #5573 by @waruqi in #5588
- update upload-artifact to v4 by @waruqi in #5591
- fix #5589 by @Domain in #5590
- Improve fetch package by @waruqi in #5594
- improve tools.cmake for wasm by @waruqi in #5598
- Improve export all rule by @waruqi in #5608
- add install.strip_packagelibs by @waruqi in #5611
- add xmake bundle binary by @waruqi in #5612
- update lz4 by @waruqi in #5613
- download file using powershell by @waruqi in #5616
New Contributors
- @24bit-xjkp made their first contribution in #5460
- @Redbeanw44602 made their first contribution in #5548
- @milkiq made their first contribution in #5563
Full Changelog: v2.9.4...v2.9.5