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
emscripten
detection by includingemcc.py
search by @Doekin in #6304 - package(autoconf): Resolve issue with backslash-separated
CXX
path in MSYS by @Doekin in #6307 - improve extract by @waruqi in #6312
- Improve modules with pch by @waruqi in #6315
- package(autoconf): De-duplicate
LDFLAGS
by @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 #6479
- (C++ modules support) fix clang cl module support by @Arthapz in #6477
- fix more versions of the same vstudio in the system. by @xiaobfly in #6490
- fix: rcc search path for qt android by @binLep in #6501
- Improve find_dia_sdk by @star-hengxing in #6496
- fix compile error for i386 and armv7l #6503 by @Freed-Wu in #6512
- fix: using C++latest to compile the generated code by cppfront by @xihale in #6516
- add [conf] section to conan profile by @hotaery in #6518
- Add generator.vsxmake.root_sln policy by @waruqi in #6520
- switch win2019 to win2025 by @waruqi in #6522
- adds target group filtering to
show targets
by @lonless9 in #6524 - fix(find_qt): gracefully handle unsupported
-qtconf
argument by @Doekin in #6528 - Improve sourcekind for add_files by @waruqi in #6533
- Improve vsxmake generator with namespaces by @waruqi in #6538
- rule(python.module): remove pybind11-specific linking logic now handled by its package by @Doekin in #6541
- rule(c++.modules): fix
get_gcc_version
for MinGW GCC 15 when toolname is 'gxx' by @Doekin in #6542 - Allow repeating spinner chars by @charlesseizilles in #6543
New Contributors
- @choyy made their first contribution in #6323
- @SineStriker made their first contribution in #6325
- @carlcc made their first contribution in #6343
- @hszSoft made their first contribution in #6349
- @lakor64 made their first contribution in #6301
- @binLep made their first contribution in #6372
- @retro98boy made their first contribution in #6387
- @PierreEVEN made their first contribution in #6388
- @Frityet made their first contribution in #6406
- @jiangyanan224 made their first contribution in #6405
- @xihale made their first contribution in #6516
- @hotaery made their first contribution in #6518
- @lonless9 made their first contribution in #6524
Full Changelog: v2.9.9...v3.0.0