Xmake Versions Save

🔥 A cross-platform build utility based on Lua

v2.7.8

1 year ago

New features

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

Changes

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

Bugs fixed

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

新特性

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

改进

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

Bugs 修复

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

v2.7.7

1 year ago

New features

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

Changes

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

Bugs fixed

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

新特性

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

改进

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

Bugs 修复

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

v2.7.6

1 year ago

New features

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

Changes

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

Bugs fixed

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

新特性

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

改进

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

Bugs 修复

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

v2.7.5

1 year ago

New features

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

Changes

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

Bugs fixed

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

新特性

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

改进

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

Bugs 修复

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

v2.7.4

1 year ago

New features

  • #3049: Add xmake format plugin
  • Add plugin.compile_commands.autoupdate rule
  • #3172: Add xmake.sh
  • #3168: add support of C++23 standard modules on msvc

Changes

  • #3056: Improve zig support
  • #3060: Improve to detect msys2 for clang toolchains envirnoment
  • #3071: Support rc for llvm/clang toolchain
  • #3122: Generate dependencies of preprocessed modules to avoid importing #ifdef import
  • #3125: Compile private C++20 modules
  • #3133: Add support of internal partitions
  • #3146: Add default components for packages
  • #3192: JSON output for auto complete

Bugs fixed

  • Fix requires-lock bug
  • #3065: Fix missing package dependences
  • #3082: Fix build.ninja generator
  • #3092: Fix xrepo add-repo error handing
  • #3013: Fix and support windows UNC path
  • #2902: Fix file not access by another process occupied
  • #3074: Fix CMakelists generator
  • #3141: Fix import order on GCC and force it on clang and msvc #3141
  • Fix tools/xmake package build directory
  • #3159: Fix compile_commands for CLion

新特性

  • #3049: 添加 xmake format 插件
  • 添加 plugin.compile_commands.autoupdate 规则
  • #3172: 添加 xmake.sh
  • #3168: 为 msvc 添加 C++23 标准模块支持

改进

  • #3056: 改进 Zig 支持
  • #3060: 改进支持 msys2 的环境探测
  • #3071: 为 llvm/clang 工具链支持 rc 编译
  • #3122: 改进 c++20 模块依赖图的源码分析,支持预处理
  • #3125: 增加私有 C++20 模块的编译支持
  • #3133: 增加 internal partitions 模块支持
  • #3146: 添加默认包组件支持
  • #3192: 为 auto complete 增加 json 输出支持

Bugs 修复

  • 修复 requires-lock 问题
  • #3065: 修复部分依赖包没有被安装的问题
  • #3082: 修复 build.ninja 生成器
  • #3092: 修复 xrepo add-repo 添加失败逻辑
  • #3013: 修复支持 windows UNC 路径
  • #2902: 修复文件被其他子进程占用问题
  • #3074: 修复 CMakelists 生成器链接参数设置不对问题
  • #3141: 修复 C++ 模块的导入顺序
  • 修复 tools/xmake 包安装构建目录
  • #3159: 为 CLion 修复 compile_commands

v2.7.3

1 year ago

New features

  • A new optional configuration syntax. It is LSP friendly, automatically calls target_end() to achieve scope isolation.
  • #2944: Add gnu-rm.binary and gnu-rm.static rules and tests for embed project
  • #2636: Support package components
  • Support armasm/armasm64 for msvc
  • #3023: Add support for debugging with renderdoc
  • #3022: Add flags for specific compilers and linkers
  • #3025: C++ exception enabled/disabled switch method
  • #3017: Support ispc compiler

Changes

  • #2925: Improve doxygen plugin
  • #2948: Support OpenBSD
  • Add xmake g --insecure-ssl=y option to disable ssl certificate when downloading packages
  • #2971: Stabilize vs and vsxmake project generation
  • #3000: Incremental compilation support for modules
  • #3016: Improve clang/msvc to better support std modules

Bugs fixed

  • #2949: Fix vs group
  • #2952: Fix armlink for long args
  • #2954: Fix c++ module partitions path issue
  • #3033: Detect circular modules dependency

新特性

  • 一种新的可选域配置语法,对 LSP 友好,并且支持域隔离。
  • #2944: 为嵌入式工程添加 gnu-rm.binarygnu-rm.static 规则和测试工程
  • #2636: 支持包组件
  • 支持 msvc 的 armasm/armasm64
  • #3023: 改进 xmake run -d,添加 renderdoc 调试器支持
  • #3022: 为特定编译器添加 flags
  • #3025: 新增 C++ 异常接口配置
  • #3017: 支持 ispc 编译器规则

改进

  • #2925: 改进 doxygen 插件
  • #2948: 支持 OpenBSD
  • 添加 xmake g --insecure-ssl=y 配置选项去禁用 ssl 证书检测
  • #2971: 使 vs/vsxmake 工程生成的结果每次保持一致
  • #3000: 改进 C++ 模块构建支持,实现增量编译支持
  • #3016: 改进 clang/msvc 去更好地支持 std 模块

Bugs 修复

  • #2949: 修复 vs 分组
  • #2952: 修复 armlink 处理长命令失败问题
  • #2954: 修复 c++ module partitions 路径无效问题
  • #3033: 探测循环模块依赖

v2.7.2

1 year ago

New features

  • #2140: Support Windows Arm64
  • #2719: Add package.librarydeps.strict_compatibility to strict compatibility for package linkdeps
  • #2810: Support os.execv to run shell script file
  • #2817: Improve rule to support dependence order
  • #2824: Pass cross-file to meson.install and trybuild
  • #2856: Improve to debug package using the debug source directory
  • #2859: Improve trybuild to build 3rd source library using xmake-repo scripts
  • #2879: Support for dynamic creation and injection of rules and targets in script scope
  • #2374: Allow xmake package to embed rules and scripts
  • Add clang-cl toolchain

Changes

  • #2745: Improve os.cp to support symlink
  • #2773: Improve vcpkg packages to support freebsd
  • #2778: Improve Improve xrepo.env for target
  • #2783: Add digest algorithm option for wdk signtool
  • #2787: Improve json to support empty array
  • #2782: Improve to find matlab and runtime
  • #2793: Improve mconfdialog
  • #2804: Support macOS arm64/x86_64 cross-compilation for installing packages
  • #2809: Improve cl optimization option
  • Improve trybuild for meson/cmake/autoconf
  • #2846: Improve to generate config files
  • #2866: Better control over the order of execution of rules

Bugs fixed

  • #2740: Fix build c++ modules stuck and slower for msvc
  • #2875: Fix build linux driver error
  • #2885: Fix pch not found with msvc/ccache

新特性

  • #2140: 支持 Windows Arm64
  • #2719: 添加 package.librarydeps.strict_compatibility 策略严格限制包依赖兼容性
  • #2810: 支持 os.execv 去执行 shell 脚本文件
  • #2817: 改进规则支持依赖顺序执行
  • #2824: 传递 cross-file 交叉编译环境给 meson.install 和 trybuild
  • #2856: xrepo 支持从当前指定源码目录调试程序
  • #2859: 改进对三方库的 trybuild 构建,利用 xmake-repo 仓库脚本更加智能化地构建三方库
  • #2879: 更好的动态创建和配置 target 和 rule
  • #2374: 允许 xmake 包中引入自定义规则
  • 添加 clang-cl 工具链

改进

  • #2745: 改进 os.cp 支持符号链接复制
  • #2773: 改进 vcpkg 包安装,支持 freebsd 平台
  • #2778: 改进 xrepo.env 支持 target 的运行环境加载
  • #2783: 添加摘要算法选项到 WDK 的 signtool 签名工具
  • #2787: 改进 json 支持空数组
  • #2782: 改进查找 matlib sdk 和运行时
  • #2793: 改进 mconfdialog 配置操作体验
  • #2804: 安装依赖包支持 macOS arm64/x86_64 交叉编译
  • #2809: 改进 msvc 的编译优化选项
  • 改进 trybuild 模式,为 meson/autoconf/cmake 提供更好的交叉编译支持
  • #2846: 改进对 configfiles 的生成
  • #2866: 更好地控制 rule 规则执行顺序

Bugs 修复

  • #2740: 修复 msvc 构建 C++ modules 卡死问题
  • #2875: 修复构建 linux 驱动错误
  • #2885: 修复 ccache 下,msvc 编译 pch 失败问题

v2.7.1

1 year ago

New features

  • #2555: Add fwatcher module and xmake watch plugin command
  • Add xmake service --pull 'build/**' outputdir to pull the given files in remote server
  • #2641: Improve C++20 modules, support headerunits and project generators
  • #2679: Support Mac Catalyst

Changes

  • #2576: More flexible package fetching from cmake
  • #2577: Improve add_headerfiles(), add {install = false} support
  • #2603: Disable -fdirectives-only for ccache by default
  • #2580: Set stdout to line buffering
  • #2571: Improve task scheduling for parallel and distributed compilation based on memory/cpu usage
  • #2410: Improve cmakelists generator
  • #2690: Improve to pass toolchains to packages
  • #2686: Support for incremental compilation and parse header file deps for keil/armcc/armclang
  • #2562: Improve include deps for rc.exe
  • Improve the default parallel building jobs number

Bugs fixed

  • #2614: Fix building submodules2 tests for msvc
  • #2620: Fix build cache for incremental compilation
  • #2177: Fix python.library segmentation fault for macosx
  • #2708: Fix link error for mode.coverage rule
  • Fix rpath for macos/iphoneos frameworks and application

新特性

  • #2555: 添加 fwatcher 模块和 xmake watch 插件命令
  • 添加 xmake service --pull 'build/**' outputdir 命令去拉取远程构建服务器上的文件
  • #2641: 改进 C++20 模块, 支持 headerunits 和 project 生成
  • #2679: 支持 Mac Catalyst 构建

改进

  • #2576: 改进从 cmake 中查找包,提供更过灵活的可选配置
  • #2577: 改进 add_headerfiles(),增加 {install = false} 支持
  • #2603: 为 ccache 默认禁用 -fdirectives-only
  • #2580: 设置 stdout 到 line 缓冲输出
  • #2571: 改进分布式编译的调度算法,增加 cpu/memory 状态权重
  • #2410: 改进 cmakelists 生成
  • #2690: 改机传递 toolchains 到包
  • #2686: 改进 armcc/armclang 支持增量编译
  • #2562: 改进 rc.exe 对引用文件依赖的解析和增量编译支持
  • 改进默认的并行构建任务数

Bugs 修复

  • #2614: 为 msvc 修复构建 submodules2 测试工程
  • #2620: 修复构建缓存导致的增量编译问题
  • #2177: 修复 python.library 在 macOS 上段错误崩溃
  • #2708: 修复 mode.coverage 规则的链接错误
  • 修复 ios/macOS framework 和 application 的 rpath 加载路径

v2.6.9

1 year ago

New features

  • #2474: Add icx and dpcpp toolchains
  • #2523: Improve LTO support
  • #2527: Add set_runargs api

Changes

  • Improve tools.cmake to support wasm
  • #2491: Fallback to local compiler/cache from remote if server is unreachable
  • #2514: Disable Unity Build for project generator
  • #2473: Improve apt::find_package to find it from pc files
  • #2512: Improve remote service to support timeout configuration

Bugs fixed

  • #2488: Fix remote compilation from windows to linux
  • #2504: Fix remote build bug on msys2/cygwin
  • #2525: Fix install package deps and stuck
  • #2557: Fix cmake.find_package links bug
  • Fix cache-induced path conflicts in preprocessed files

新特性

  • #2474: 添加 icx 和 dpcpp 工具链
  • #2523: 改进对 LTO 的支持
  • #2527: 添加 set_runargs 接口

改进

  • 改进 tools.cmake 支持 wasm 库构建
  • #2491: 如果服务器不可访问,自动回退到本地编译和缓存
  • #2514: 为工程生成器禁用 Unity Build
  • #2473: 改进 apt::find_package,支持从 pc 文件中查找
  • #2512: 改进远程服务支持超时配置

Bugs 修复

  • #2488: 修复从 windows 到 linux 的远程编译路径问题
  • #2504: 修复在 msys2 上远程编译失败问题
  • #2525: 修复安装依赖包时候卡死问题
  • #2557: 修复 cmake.find_package 查找 links 错误
  • 修复缓存导致的预处理文件路径冲突问题

v2.6.8

1 year ago

New features

  • #2447: Add qt.qmlplugin rule and support of qmltypesregistrar
  • #2446: Support target group for xmake install
  • #2469: Generate vcpkg-configuration.json

Changes

  • Add preprocessor.linemarkers policy to disable linemarkers to speed up ccache/distcc
  • #2389: Improve xmake run to parallel running of targets
  • #2417: Switch the default value of option/showmenu
  • #2440: Improve package installation error messages
  • #2438: Make sure the solution and project file unchanged by sorting those tables
  • #2434: Improve plugins manager, allow to handle multiples plugin repositories
  • #2421: Improve config option menu
  • #2425: Add preprocessor.gcc.directives_only policy
  • #2455: Improve optimize options for emcc
  • #2467: Add compile fallback for msvc/ccache
  • #2452: Add build.warning policy

Bugs Fixed

  • #2435: fix the search bug when the package name has an extension name.
  • #2445: Fix ccache bug for msvc
  • #2452: Fix warnings output for ccache

新特性

  • #2447: 添加 qt.qmlplugin 规则和 qmltypesregistrar 支持
  • #2446: 支持 target 分组安装
  • #2469: 产生 vcpkg-configuration.json

改进

  • 添加 preprocessor.linemarkers 策略去禁用 linemarkers 去加速 ccache/distcc
  • #2389: 改进 xmake run 支持并行运行目标程序
  • #2417: 切换 option/showmenu 的默认值,默认开启
  • #2440: 改进安装包的失败错误信息
  • #2438: 确保生成的 vsxmake 工程不会随机变动
  • #2434: 改进插件管理器,允许多插件管理
  • #2421: 改进配置选项菜单
  • #2425: 添加 preprocessor.gcc.directives_only 策略
  • #2455: 改进 emcc 的优化选项
  • #2467: 支持回退到原始文件编译,兼容 msvc 预处理器的一些问题
  • #2452: 添加 build.warning 策略

Bugs 修复

  • #2435: 修复无法搜索带有 . 的包名
  • #2445: 修复 windows 上 ccache 构建失败问题
  • #2452: 修复 ccache 下,警告无法输出的问题