Skip to content

Releases: xmake-io/xmake

xmake v2.5.2

28 Feb 08:55
30afab1
Compare
Choose a tag to compare

New features

  • #955: Support zig cc and zig c++ as c/c++ compiler
  • #955: Support zig cross-compilation
  • #1177: Improve to detect terminal and color codes
  • #1216: Pass custom configuration scripts to xrepo
  • Add linuxos builtin module to get linux system information
  • #1217: Support to fetch remote toolchain package when building project
  • #1123: Add rule("utils.symbols.export_all") to export all symbols for windows/dll
  • #1181: Add utils.platform.gnu2mslib(mslib, gnulib) module api to convert mingw/xxx.dll.a to msvc xxx.lib
  • #1246: Improve rules and generators to support commands list
  • #1239: Add add_extsources to improve find external packages
  • #1241: Support add .manifest files for windows program
  • Support to use xrepo remove --all to remove all packages
  • #1254: Support to export packages to parent target

Change

  • #1226: Add missing qt include directories
  • #1183: Improve c++ lanuages to support Qt6
  • #1237: Add qt.ui files for vsxmake plugin
  • Improve vs/vsxmake plugins to support precompiled header and intellisense
  • #1090: Simplify integration of custom code generators
  • #1065: Improve protobuf rule to support compile_commands generators
  • #1249: Improve vs/vsxmake generator to support startproject
  • #605: Improve to link orders for add_deps/add_packages
  • Remove deprecated add_defines_h_if_ok and add_defines_h apis for option

Bugs fixed

  • #1219: Fix version check and update
  • #1235: Fix include directories with spaces

新特性

  • #955: 支持 zig cczig c++ 作为 c/c++ 编译器
  • #955: 支持使用 zig 进行交叉编译
  • #1177: 改进终端和 color codes 探测
  • #1216: 传递自定义 includes 脚本给 xrepo
  • 添加 linuxos 内置模块获取 linux 系统信息
  • #1217: 支持当编译项目时自动拉取工具链
  • #1123: 添加 rule("utils.symbols.export_all") 自动导出所有 windows/dll 中的符号
  • #1181: 添加 utils.platform.gnu2mslib(mslib, gnulib) 模块接口去转换 mingw/xxx.dll.a 到 msvc xxx.lib
  • #1246: 改进规则支持新的批处理命令去简化自定义规则实现
  • #1239: 添加 add_extsources 去改进外部包的查找
  • #1241: 支持为 windows 程序添加 .manifest 文件参与链接
  • 支持使用 xrepo remove --all 命令去移除所有的包,并且支持模式匹配
  • #1254: 支持导出包配置给父 target,实现包配置的依赖继承

改进

  • #1226: 添加缺失的 Qt 头文件搜索路径
  • #1183: 改进 C++ 语言标准,以便支持 Qt6
  • #1237: 为 vsxmake 插件添加 qt.ui 文件
  • 改进 vs/vsxmake 插件去支持预编译头文件和智能提示
  • #1090: 简化自定义规则
  • #1065: 改进 protobuf 规则,支持 compile_commands 生成器
  • #1249: 改进 vs/vsxmake 生成器去支持启动工程设置
  • #605: 改进 add_deps 和 add_packages 直接的导出 links 顺序
  • 移除废弃的 add_defines_h_if_ok and add_defines_h 接口

Bugs 修复

  • #1219: 修复版本检测和更新
  • #1235: 修复 includes 搜索路径中带有空格编译不过问题

xmake v2.5.1

21 Jan 01:54
f28e55c
Compare
Choose a tag to compare

New features

  • #1035: The graphics configuration menu fully supports mouse events, and support scroll bar
  • #1098: Support stdin for os.execv
  • #1079: Add autoupdate plugin rule for vsxmake, add_rules("plugin.vsxmake.autoupdate")
  • Add xmake f --vs_runtime=MT and set_runtimes("MT") to set vs runtime for targets and packages
  • #1032: Support to enum registry keys and values
  • #1026: Support group for vs/vsxmake project
  • #1178: Add add_requireconfs() api to rewrite configs of depend packages
  • #1043: Add luarocks.module rule for luarocks-build-xmake
  • #1190: Support for Apple Silicon (macOS ARM)
  • #1145: Support Qt deploy for Windows, thanks @SirLynix

Change

  • #1072: Fix and improve to parse cl deps
  • Support utf8 for ui modules and xmake f --menu
  • Improve to support zig on macOS
  • #1135: Improve multi-toolchain and multi-platforms for targets
  • #1153: Improve llvm toolchain to support sysroot on macOS
  • #1071: Improve to generate vs/vsxmake project to support for remote packages
  • Improve vs/vsxmake project plugin to support global set_arch() setting
  • #1164: Improve to launch console programs for vsxmake project
  • #1179: Improve llvm toolchain and add isysroot

Bugs fixed

  • #1091: Fix incorrect ordering of inherited library dependencies
  • #1105: Fix c++ language intellisense for vsxmake
  • #1132: Fix TrimEnd bug for vsxmake
  • #1142: Fix git not found when installing packages
  • Fix macos.version bug for macOS Big Sur
  • #1084: Fix add_defines() bug (contain spaces)
  • #1195: Fix unicode problem for vs and improve find_vstudio/os.exec

新特性

  • #1035: 图形配置菜单完整支持鼠标事件,并且新增滚动栏
  • #1098: 支持传递 stdin 到 os.execv 进行输入重定向
  • #1079: 为 vsxmake 插件添加工程自动更新插件,add_rules("plugin.vsxmake.autoupdate")
  • 添加 xmake f --vs_runtime=MTset_runtimes("MT") 去更方便的对 target 和 package 进行设置
  • #1032: 支持枚举注册表 keys 和 values
  • #1026: 支持对 vs/vsmake 工程增加分组设置
  • #1178: 添加 add_requireconfs() 接口去重写依赖包的配置
  • #1043: 为 luarocks 模块添加 luarocks.module 构建规则
  • #1190: 添加对 Apple Silicon (macOS ARM) 设备的支持
  • #1145: 支持在 windows 上安装部署 Qt 程序, 感谢 @SirLynix

改进

  • #1072: 修复并改进 cl 编译器头文件依赖信息
  • 针对 ui 模块和 xmake f --menu 增加 utf8 支持
  • 改进 zig 语言在 macOS 上的支持
  • #1135: 针对特定 target 改进多平台多工具链同时配置支持
  • #1153: 改进 llvm 工具链,针对 macos 上编译增加 isysroot 支持
  • #1071: 改进 vs/vsxmake 生成插件去支持远程依赖包
  • 改进 vs/vsxmake 工程生成插件去支持全局的 set_arch() 设置
  • #1164: 改进 vsxmake 插件调试加载 console 程序
  • #1179: 改进 llvm 工具链,添加 isysroot

Bugs 修复

  • #1091: 修复不正确的继承链接依赖
  • #1105: 修复 vsxmake 插件 c++ 语言标准智能提示错误
  • #1132: 修复 vsxmake 插件中配置路径被截断问题
  • #1142: 修复安装包的时候,出现git找不到问题
  • 修复在 macOS Big Sur 上 macos.version 问题
  • #1084: 修复 add_defines() 中带有双引号和空格导致无法正确处理宏定义的问题
  • #1195: 修复 unicode 编码问题,改进 vs 环境查找和进程执行

xmake v2.3.9

25 Nov 00:21
92a8c9c
Compare
Choose a tag to compare

New features

  • Add new xrepo command to manage C/C++ packages
  • Support for installing packages of cross-compilation
  • Add musl.cc toolchains
  • #1009: Support select and install any version package, e.g. add_requires("libcurl 7.73.0", {verify = false})
  • #1016: Add license checking for target/packages
  • #1017: Support external/system include directories add_sysincludedirs for package and toolchains
  • #1020: Support to find and install pacman package on archlinux and msys2
  • Support mouse for xmake f --menu

Change

  • #997: Support to set std lanuages for xmake project -k cmake
  • #998: Support to install vcpkg packages with windows-static-md
  • #996: Improve to find vcpkg directory
  • #1008: Improve cross toolchains
  • #1030: Improve xcode.framework and xcode.application rules
  • #1051: Add edit and embed to set_symbols() only for msvc
  • #1062: Improve xmake project -k vs plugin.

新特性

  • 添加新的 xrepo 命令去管理安装 C/C++ 包
  • 支持安装交叉编译的依赖包
  • 新增musl.cc上的工具链支持
  • #1009: 支持忽略校验去安装任意版本的包,add_requires("libcurl 7.73.0", {verify = false})
  • #1016: 针对依赖包增加license兼容性检测
  • #1017: 支持外部/系统头文件支持 add_sysincludedirs,依赖包默认使用-isystem
  • #1020: 支持在 archlinux 和 msys2 上查找安装 pacman 包
  • 改进 xmake f --menu 菜单配置,支持鼠标操作

改进

  • #997: xmake project -k cmake 插件增加对 set_languages 的支持
  • #998: 支持安装 windows-static-md 类型的 vcpkg 包
  • #996: 改进 vcpkg 目录查找
  • #1008: 改进交叉编译工具链
  • #1030: 改进 xcode.framework and xcode.application 规则
  • #1051: 为 msvc 编译器添加 editembed 调试信息格式类型到 set_symbols()
  • #1062: 改进 xmake project -k vs 插件

xmake v2.3.8

17 Oct 23:42
965bccf
Compare
Choose a tag to compare

New features

  • #955: Add zig project templates
  • #956: Add wasm platform and support Qt/Wasm SDK
  • Upgrade luajit vm and support for runing on mips64 device
  • #972: Add depend.on_changed() api to simplify adding dependent files
  • #981: Add set_fpmodels() for math optimization mode
  • #980: Support Intel C/C++ and Fortran Compiler
  • #986: Support for c11 and c17 for MSVC Version 16.8 and Above
  • #979: Add Abstraction for OpenMP. add_rules("c++.openmp")

Change

  • #958: Improve mingw platform to support llvm-mingw toolchain
  • Improve add_requires("zlib~xxx") to support for installing multi-packages at same time
  • #977: Improve find_mingw for windows
  • #978: Improve toolchain flags order
  • Improve Xcode toolchain to support for macOS/arm64

Bugs fixed

  • #951: Fix emcc support for windows
  • #992: Fix filelock bug

新特性

  • #955: 添加 Zig 空工程模板
  • #956: 添加 Wasm 编译平台,并且支持 Qt/Wasm SDK
  • 升级luajit到v2.1最新分支版本,并且支持mips64上运行xmake
  • #972: 添加depend.on_changed()去简化依赖文件的处理
  • #981: 添加set_fpmodels()去抽象化设置math/float-point编译优化模式
  • #980: 添加对 Intel C/C++ 和 Fortran 编译器的全平台支持
  • #986: 对16.8以上msvc编译器增加 c11/c17 支持
  • #979: 添加对OpenMP的跨平台抽象配置。add_rules("c++.openmp")

改进

  • #958: 改进mingw平台,增加对 llvm-mingw 工具链的支持,以及 arm64/arm 架构的支持
  • 增加 add_requires("zlib~xxx") 模式使得能够支持同时安装带有多种配置的同一个包,作为独立包存在
  • #977: 改进 find_mingw 在 windows 上的探测
  • #978: 改进工具链的flags顺序
  • 改进XCode工具链,支持macOS/arm64

Bugs修复

  • #951: 修复 emcc (WebAssembly) 工具链在windows上的支持
  • #992: 修复文件锁偶尔打开失败问题

xmake v2.3.7

14 Sep 12:03
6860d9c
Compare
Choose a tag to compare

New features

  • #2941: Add support for winget
  • Add xmake-tinyc installer without msvc compiler for windows
  • Add tinyc compiler toolchain
  • Add emcc compiler toolchain (emscripten) to compiling to asm.js and WebAssembly
  • #947: Add xmake g --network=private to enable the private network

Change

  • #907: Improve to the linker optimization for msvc
  • Improve to detect qt sdk environment
  • #918: Improve to support cuda11 toolchains
  • Improve Qt support for ubuntu/apt
  • Improve CMake project generator
  • #931: Support to export packages with all dependences
  • #930: Support to download package without version list directly
  • #927: Support to switch arm/thumb mode for android ndk
  • Improve trybuild/cmake to support android/mingw/iphoneos/watchos toolchains

Bugs fixed

  • #903: Fix install vcpkg packages fails
  • #912: Fix the custom toolchain
  • #914: Fix bad light userdata pointer for lua on some aarch64 devices

新特性

  • #2941: 支持通过 winget 来安装 xmake
  • 添加 xmake-tinyc 安装包,内置tinyc编译器,支持windows上无msvc环境也可直接编译c代码
  • 添加 tinyc 编译工具链
  • 添加 emcc (emscripten) 编译工具链去编译 asm.js 和 WebAssembly
  • #947: 通过 xmake g --network=private 配置设置私有网络模式,避免远程依赖包下载访问外网导致编译失败

改进

  • #907: 改进msvc的链接器优化选项,生成更小的可执行程序
  • 改进ubuntu下Qt环境的支持
  • #918: 改进cuda11工具链的支持
  • 改进Qt支持,对通过 ubuntu/apt 安装的Qt sdk也进行了探测支持,并且检测效率也优化了下
  • 改进 CMake 工程文件生成器
  • #931: 改进导出包,支持导出所有依赖包
  • #930: 如果私有包定义没有版本定义,支持直接尝试下载包
  • #927: 改进android ndk,支持arm/thumb指令模式切换
  • 改进 trybuild/cmake 支持 Android/Mingw/iPhoneOS/WatchOS 工具链

Bugs修复

  • #903: 修复vcpkg包安装失败问题
  • #912: 修复自定义工具链
  • #914: 修复部分aarch64设备上运行lua出现bad light userdata pointer问题

xmake v2.3.6

28 Jul 09:25
01c69ef
Compare
Choose a tag to compare

New features

  • Add xmake project -k xcode generator (use cmake)
  • #870: Support gfortran compiler
  • #887: Support zig compiler
  • #893: Add json module
  • #898: Support cross-compilation for golang
  • #275: Support go package manager to install go packages
  • #581: Support dub package manager to install dlang packages

Change

  • #868: Support new cl.exe dependency report files, /sourceDependencies xxx.json
  • #902: Improve to detect cross-compilation toolchain

新特性

  • 添加xcode工程生成器插件,xmake project -k cmake (当前采用cmake生成)
  • #870: 支持gfortran编译器
  • #887: 支持zig编译器
  • #893: 添加json模块
  • #898: 改进golang项目构建,支持交叉编译
  • #275: 支持go包管理器去集成第三方go依赖包
  • #581: 支持dub包管理器去集成第三方dlang依赖包

改进

  • #868: 支持新的cl.exe的头文件依赖输出文件格式,/sourceDependencies xxx.json
  • #902: 改进交叉编译工具链

xmake v2.3.5

28 Jun 01:46
5fc92e6
Compare
Choose a tag to compare

New features

  • Add xmake show -l envs to show all builtin envirnoment variables
  • #861: Support search local package file to install remote package
  • #854: Support global proxy settings for curl, wget and git

Change

  • #828: Support to import sub-directory files for protobuf rules
  • #835: Improve mode.minsizerel to add /GL flags for msvc
  • #828: Support multi-level directories for protobuf/import
  • #838: Support to override builtin-rules for add_files("src/*.c", {rules = {"xx", override = true}})
  • #847: Support to parse include deps for rc file
  • Improve msvc tool chain, remove the dependence of global environment variables
  • #857: Improved set_toolchains() when cross-compilation is supported, specific target can be switched to host toolchain and compiled at the same time

Bugs fixed

  • Fix the progress bug for theme
  • #829: Fix invalid sysroot path for macOS
  • #832: Fix find_packages bug for the debug mode

新特性

  • 添加xmake show -l envs去显示xmake内置的环境变量列表
  • #861: 支持从指定目录搜索本地包去直接安装远程依赖包
  • #854: 针对wget, curl和git支持全局代理设置

改进

  • #828: 针对protobuf规则增加导入子目录proto文件支持
  • #835: 改进mode.minsizerel模式,针对msvc增加/GL支持,进一步优化目标程序大小
  • #828: protobuf规则支持import多级子目录
  • #838: 支持完全重写内置的构建规则,add_files("src/*.c", {rules = {"xx", override = true}})
  • #847: 支持rc文件的头文件依赖解析
  • 改进msvc工具链,去除全局环境变量的依赖
  • #857: 改进set_toolchains()支持交叉编译的时候,特定target可以切换到host工具链同时编译

Bugs修复

  • 修复进度字符显示
  • #829: 修复由于macOS大小写不敏感系统导致的sysroot无效路径问题
  • #832: 修复find_packages在debug模式下找不到的问题

xmake v2.3.4

07 Jun 14:26
c57b527
Compare
Choose a tag to compare

New features

  • #630: Support *BSD system, e.g. FreeBSD, ..
  • Add wprint builtin api to show warnings
  • #784: Add set_policy() to set and modify some builtin policies
  • #780: Add set_toolchains/set_toolsets for target and improve to detect cross-compilation toolchains
  • #798: Add xmake show plugin to show some builtin configuration values and infos
  • #797: Add ninja theme style, e.g. xmake g --theme=ninja
  • #816: Add mode.releasedbg and mode.minsizerel rules
  • #819: Support ansi/vt100 terminal control

Change

  • #771: Check includedirs, linkdirs and frameworkdirs
  • #774: Support ltui windows resize for xmake f --menu
  • #782: Add check flags failed tips for add_cxflags, ..
  • #808: Support add_frameworks for cmakelists
  • #820: Support independent working/build directory

Bug fixed

  • #786: Fix check header file deps
  • #810: Fix strip debug bug for linux

新特性

  • #630: 支持*BSD系统,例如:FreeBSD, ..
  • 添加wprint接口去显示警告信息
  • #784: 添加set_policy()去设置修改一些内置的策略,比如:禁用自动flags检测和映射
  • #780: 针对target添加set_toolchains/set_toolsets实现更完善的工具链设置,并且实现platform和toolchains分离
  • #798: 添加xmake show插件去显示xmake内置的各种信息
  • #797: 添加ninja主题风格,显示ninja风格的构建进度条,xmake g --theme=ninja
  • #816: 添加mode.releasedbg和mode.minsizerel编译模式规则
  • #819: 支持ansi/vt100终端字符控制

改进

  • #771: 检测includedirs,linkdirs和frameworkdirs的输入有效性
  • #774: xmake f --menu可视化配置菜单支持窗口大小Resize调整
  • #782: 添加add_cxflags等配置flags自动检测失败提示
  • #808: 生成cmakelists插件增加对add_frameworks的支持
  • #820: 支持独立的工作目录和构建目录,保持项目目录完全干净

Bugs修复

  • #786: 修复头文件依赖检测
  • #810: 修复linux下gcc strip debug符号问题

xmake v2.3.3

26 Apr 09:54
ec9960c
Compare
Choose a tag to compare

New features

  • #727: Strip and generate debug symbols file (.so/.dSYM) for android/ios program
  • #687: Support to generate objc/bundle program.
  • #743: Support to generate objc/framework program.
  • Support to compile bundle, framework, mac application and ios application, and all some project templates
  • Support generate ios *.ipa file and codesign
  • Add xmake.cli rule to develop lua program with xmake core engine

Change

  • #750: Improve qt.widgetapp rule to support private slot

新特性

  • #727: 支持为android, ios程序生成.so/.dSYM符号文件
  • #687: 支持编译生成objc/bundle程序
  • #743: 支持编译生成objc/framework程序
  • 支持编译bundle, framework程序,以及mac, ios应用程序,并新增一些工程模板
  • 支持对ios应用程序打包生成ipa文件,以及代码签名支持
  • 增加一些ipa打包、安装、重签名等辅助工具
  • 添加xmake.cli规则来支持开发带有xmake/core引擎的lua扩展程序

改进

  • #750: 改进qt.widgetapp规则,支持qt私有槽

xmake v2.3.2

28 Mar 04:59
31bacc4
Compare
Choose a tag to compare

New features

  • Add powershell theme for powershell terminal
  • Add xmake --dry-run -v to dry run building target and only show verbose build command.
  • #712: Add sdcc platform and support sdcc compiler

Change

  • #589: Improve and optimize build speed, supports parallel compilation and linking across targets
  • Improve the ninja/cmake generator
  • #728: Improve os.cp to support reserve source directory structure
  • #732: Improve find_package to support homebrew/cmake pacakges
  • #695: Improve android abi

Bugs fixed

  • Fix the link errors output issues for msvc
  • #718: Fix download cache bug for package
  • #722: Fix invalid package deps
  • #719: Fix process exit bug
  • #720: Fix compile_commands generator

新特性

  • 添加powershell色彩主题用于powershell终端下背景色显示
  • 添加xmake --dry-run -v命令去空运行构建,仅仅为了查看详细的构建命令
  • #712: 添加sdcc平台,并且支持sdcc编译器

改进

  • #589: 改进优化构建速度,支持跨目标间并行编译和link,编译速度和ninja基本持平
  • 改进ninja/cmake工程文件生成器插件
  • #728: 改进os.cp支持保留源目录结构层级的递归复制
  • #732: 改进find_package支持查找homebrew/cmake安装的包
  • #695: 改进采用android ndk最新的abi命名

Bugs修复

  • 修复windows下link error显示问题
  • #718: 修复依赖包下载在多镜像时一定概率缓存失效问题
  • #722: 修复无效的包依赖导致安装死循环问题
  • #719: 修复windows下主进程收到ctrlc后,.bat子进程没能立即退出的问题
  • #720: 修复compile_commands生成器的路径转义问题

Multi-task parallel compilation

buildsystem Termux (8core/-j12) buildsystem MacOS (8core/-j12)
xmake 24.890s xmake 12.264s
ninja 25.682s ninja 11.327s
cmake(gen+make) 5.416s+28.473s cmake(gen+make) 1.203s+14.030s
cmake(gen+ninja) 4.458s+24.842s cmake(gen+ninja) 0.988s+11.644s

Single task compilation

buildsystem Termux (-j1) buildsystem MacOS (-j1)
xmake 1m57.707s xmake 39.937s
ninja 1m52.845s ninja 38.995s
cmake(gen+make) 5.416s+2m10.539s cmake(gen+make) 1.203s+41.737s
cmake(gen+ninja) 4.458s+1m54.868s cmake(gen+ninja) 0.988s+38.022s