Skip to content

Releases: xmake-io/xmake

xmake v2.6.1

03 Dec 14:00
666dc54
Compare
Choose a tag to compare

New features

  • #1799: Support mixed rust & c++ target and cargo dependences
  • Add utils.glsl2spv rules to compile .vert/.frag shader files to spirv file and binary c header file

Changes

  • Switch to Lua5.4 runtime by default
  • #1776: Improve system::find_package, support to find package from envs
  • #1786: Improve apt:find_package, support to find alias package
  • #1819: Add precompiled header to cmake generator
  • Improve C++20 module to support std libraries for msvc
  • #1792: Add custom command in vs project generator
  • #1835: Improve MDK program supports and add set_runtimes("microlib")
  • #1858: Improve to build c++20 modules with libraries
  • Add $XMAKE_BINARY_REPO and $XMAKE_MAIN_REPO repositories envs
  • #1865: Improve openmp projects
  • #1845: Install pdb files for static library

Bugs Fixed

  • Fix semver to parse build string with zero prefix
  • #50: Fix rule and build bpf program errors
  • #1610: Fix xmake f --menu not responding in vscode and support ConPTY terminal virtkeys

新特性

  • #1799: 支持混合 Rust 和 C++ 程序,以及集成 Cargo 依赖库
  • 添加 utils.glsl2spv 规则去编译 .vert/.frag shader 文件生成 spirv 文件和二进制 C 头文件

改进

  • 默认切换到 Lua5.4 运行时
  • #1776: 改进 system::find_package,支持从环境变量中查找系统库
  • #1786: 改进 apt:find_package,支持查找 alias 包
  • #1819: 添加预编译头到 cmake 生成器
  • 改进 C++20 Modules 为 msvc 支持 std 标准库
  • #1792: 添加自定义命令到 vs 工程生成器
  • #1835: 改进 MDK 程序构建支持,增加 set_runtimes("microlib")
  • #1858: 改进构建 c++20 modules,修复跨 target 构建问题
  • 添加 $XMAKE_BINARY_REPO 和 $XMAKE_MAIN_REPO 仓库设置环境变量
  • #1865: 改进 openmp 工程
  • #1845: 为静态库安装 pdb 文件

Bugs 修复

  • 修复语义版本中解析带有 0 前缀的 build 字符串问题
  • #50: 修复 rule 和构建 bpf 程序 bug
  • #1610: 修复 xmake f --menu 在 vscode 终端下按键无响应,并且支持 ConPTY 终端虚拟按键

xmake v2.5.9

31 Oct 12:43
809ee98
Compare
Choose a tag to compare

New features

  • #1736: Support wasi-sdk toolchain
  • Support Lua 5.4 runtime
  • Add gcc-8, gcc-9, gcc-10, gcc-11 toolchains
  • #1623: Support find_package from cmake
  • #1747: Add set_kind("headeronly") for target to install files for headeronly library
  • #1019: Support Unity build
  • #1438: Support code amalgamation, xmake l cli.amalgamate
  • #1765: Support nim language
  • #1762: Manage and switch the given package envs for xrepo env
  • #1767: Support Circle compiler
  • #1753: Support armcc/armclang toolchains for Keil/MDK
  • #1774: Add table.contains api
  • #1735: Add custom command in cmake generator

Changes

  • #1528: Check c++17/20 features
  • #1729: Improve C++20 modules for clang/gcc/msvc, support inter-module dependency compilation and parallel optimization
  • #1779: Remove builtin -Gd for ml.exe/x86
  • #1781: Improve get.sh installation script to support nixos

新特性

  • #1736: 支持 wasi-sdk 工具链
  • 支持 Lua 5.4 运行时
  • 添加 gcc-8, gcc-9, gcc-10, gcc-11 工具链
  • #1623: 支持 find_package 从 cmake 查找包
  • #1747: 添加 set_kind("headeronly") 更好的处理 headeronly 库的安装
  • #1019: 支持 Unity build
  • #1438: 增加 xmake l cli.amalgamate 命令支持代码合并
  • #1765: 支持 nim 语言
  • #1762: 为 xrepo env 管理和切换指定的环境配置
  • #1767: 支持 Circle 编译器
  • #1753: 支持 Keil/MDK 的 armcc/armclang 工具链
  • #1774: 添加 table.contains api
  • #1735: 添加自定义命令到 cmake 生成器
  • #1781: 改进 get.sh 安装脚本支持 nixos

改进

  • #1528: 检测 c++17/20 特性
  • #1729: 改进 C++20 modules 对 clang/gcc/msvc 的支持,支持模块间依赖编译和并行优化
  • #1779: 改进 ml.exe/x86,移除内置的 -Gd 选项

xmake v2.5.8

08 Oct 14:53
f00a152
Compare
Choose a tag to compare

New features

  • #388: Pascal Language Support
  • #1682: Add optional lua5.3 backend instead of luajit to provide better compatibility
  • #1622: Support Swig
  • #1714: Support build local embed cmake projects
  • #1715: Support to detect compiler language standards as features and add check_macros
  • Support Loongarch

Change

  • #1618: Improve vala to support to generate libraries and bindings
  • Improve Qt rules to support Qt 4.x
  • Improve set_symbols("debug") to generate pdb file for clang on windows
  • #1638: Improve to merge static library
  • Improve on_load/after_load to support to add target deps dynamically
  • #1675: Rename dynamic and import library suffix for mingw
  • #1694: Support to define a variable without quotes for configuration files
  • Support Android NDK r23
  • Add c++latest and clatest for set_languages
  • #1720: Add save_scope and restore_scope to fix check_xxx apis
  • #1726: Improve compile_commands generator to support nvcc

Bugs fixed

  • #1671: Fix incorrect absolute path after installing precompiled packages
  • #1689: Fix unicode chars bug for vsxmake

新特性

  • #388: Pascal 语言支持,可以使用 fpc 来编译 free pascal
  • #1682: 添加可选的额lua5.3 运行时替代 luajit,提供更好的平台兼容性。
  • #1622: 支持 Swig
  • #1714: 支持内置 cmake 等第三方项目的混合编译
  • #1715: 支持探测编译器语言标准特性,并且新增 check_macros 检测接口
  • xmake 支持在 Loongarch 架构上运行

改进

  • #1618: 改进 vala 支持构建动态库和静态库程序
  • 改进 Qt 规则去支持 Qt 4.x
  • 改进 set_symbols("debug") 支持 clang/windows 生成 pdb 文件
  • #1638: 改进合并静态库
  • 改进 on_load/after_load 去支持动态的添加 target deps
  • #1675: 针对 mingw 平台,重命名动态库和导入库文件名后缀
  • #1694: 支持在 set_configvar 中定义一个不带引号的字符串变量
  • 改进对 Android NDK r23 的支持
  • set_languages 新增 c++latestclatest 配置值
  • #1720: 添加 save_scoperestore_scope 去修复 check_xxx 相关接口
  • #1726: 改进 compile_commands 生成器去支持 nvcc

Bugs 修复

  • #1671: 修复安装预编译包后,*.cmake 里面的一些不正确的绝对路径
  • #1689: 修复 vsxmake 插件的 unicode 字符显示和加载问题

xmake v2.5.7

29 Aug 00:36
08972d1
Compare
Choose a tag to compare

New features

  • #1534: Support to compile Vala lanuage project
  • #1544: Add utils.bin2c rule to generate header from binary file
  • #1547: Support to run and get output of c/c++ snippets in option
  • #1567: Package "lock file" support to freeze dependencies
  • #1597: Support to compile *.metal files to generate *.metalib and improve xcode.application rule

Change

  • #1540: Better support for compilation of automatically generated code
  • #1578: Improve add_repositories to support relative path better
  • #1582: Improve installation and os.cp to reserve symlink

Bugs fixed

  • #1531: Fix error info when loading targets failed

新特性

  • #1534: 新增对 Vala 语言的支持
  • #1544: 添加 utils.bin2c 规则去自动从二进制资源文件产生 .h 头文件并引入到 C/C++ 代码中
  • #1547: option/snippets 支持运行检测模式,并且可以获取输出
  • #1567: 新增 xmake-requires.lock 包依赖锁定支持
  • #1597: 支持编译 metal 文件到 metallib,并改进 xcode.application 规则去生成内置的 default.metallib 到 app

改进

  • #1540: 更好更方便地编译自动生成的代码
  • #1578: 改进 add_repositories 去更好地支持相对路径
  • #1582: 改进安装和 os.cp 支持符号链接

Bugs 修复

  • #1531: 修复 targets 加载失败的错误信息提示错误

xmake v2.5.6

26 Jul 07:28
c1f8821
Compare
Choose a tag to compare

New features

  • #1483: Add os.joinenvs() and improve package tools envirnoments
  • #1523: Add set_allowedmodes, set_allowedplats and set_allowedarchs
  • #1523: Add set_defaultmode, set_defaultplat and set_defaultarch

Change

  • Improve vs/vsxmake project generator to support vs2022
  • #1513: Improve precompiled binary package compatibility on windows/msvc
  • Improve to find vcpkg root directory on windows
  • Improve to support Qt6

Bugs fixed

  • #489: Fix run os.execv with too long envirnoment value on windows

新特性

  • #1483: 添加 os.joinenvs() 和改进包工具环境
  • #1523: 添加 set_allowedmodes, set_allowedplatsset_allowedarchs
  • #1523: 添加 set_defaultmode, set_defaultplatset_defaultarch

改进

  • 改进 vs/vsxmake 工程插件支持 vs2022
  • #1513: 改进 windows 预编译包的兼容性问题
  • 改进 vcpkg 包在 windows 上的查找
  • 改进对 Qt6 的支持

Bugs 修复

  • #489: 修复 run os.execv 带有过长环境变量值出现的一些问题

xmake v2.5.5

01 Jul 01:50
2fa35ad
Compare
Choose a tag to compare

New features

  • #1421: Add prefix, suffix and extension options for target names
  • #1422: Support search packages from vcpkg, conan
  • #1424: Set binary as default target kind
  • #1140: Add a way to ask xmake to try to download dependencies from a certain package manager
  • #1339: Improve xmake package to generate new local/remote packages
  • Add appletvos platform support for AppleTV, xmake f -p appletvos
  • #1437: Add headeronly library type for package to ignore vs_runtime
  • #1351: Support export/import current configs
  • #1454: Support to download and install precompiled image packages from xmake-mirror

Change

  • #1425: Improve tools/meson to load msvc envirnoments
  • #1442: Support to clone package resources from git url
  • #1389: Support to add toolchain envs to xrepo env
  • #1453: Support to export protobuf includedirs
  • Support vs2022

Bugs fixed

  • #1413: Fix hangs on fetching packages
  • #1420: Fix config and packages cache
  • #1445: Fix WDK driver sign error
  • #1465: Fix missing link directory

新特性

  • #1421: 针对 target 目标,增加目标文件名的前缀,后缀和扩展名设置接口。
  • #1422: 支持从 vcpkg, conan 中搜索包
  • #1424: 设置 binary 作为默认的 target 目标类型
  • #1140: 支持安装时候,手动选择从第三包包管理器安装包
  • #1339: 改进 xmake package 去产生新的本地包格式,无缝集成 add_requires,并且新增生成远程包支持
  • 添加 appletvos 编译平台支持, xmake f -p appletvos
  • #1437: 为包添加 headeronly 库类型去忽略 vs_runtime
  • #1351: 支持导入导出当前配置
  • #1454: 支持下载安装 windows 预编译包

改进

  • #1425: 改进 tools/meson 去加载 msvc 环境,并且增加一些内置配置。
  • #1442: 支持从 git url 去下载包资源文件
  • #1389: 支持添加工具链环境到 xrepo env
  • #1453: 支持 protobuf 规则导出头文件搜索目录
  • 新增对 vs2022 的支持

Bugs 修复

  • #1413: 修复查找包过程中出现的挂起卡死问题
  • #1420: 修复包检测和配置缓存
  • #1445: 修复 WDK 驱动签名错误
  • #1465: 修复缺失的链接目录

xmake v2.5.4

15 May 06:51
3597dc0
Compare
Choose a tag to compare

New features

  • #1323: Support find and install package from apt, add_requires("apt::zlib1g-dev")
  • #1337: Add environment vars to change package directories
  • #1338: Support import and export installed packages
  • #1087: Add xrepo env shell and support load envs from add_requires/xmake.lua
  • #1313: Support private package for add_requires/add_deps
  • #1358: Support to set mirror url to speedup download package
  • #1369: Support arm/arm64 packages for vcpkg, thanks @fallending
  • #1405: Add portage package manager support, thanks @Phate6660

Change

  • Improve find_package and add package:find_package for xmake package
  • Remove deprecated set_config_h and set_config_h_prefix apis
  • #1343: Improve to search local package files
  • #1347: Improve to vs_runtime configs for binary package
  • #1353: Improve del_files() to speedup matching files
  • #1349: Improve xrepo env shell to support powershell

Bugs fixed

  • #1380: Fix add packages errors
  • #1381: Fix add local git source for package
  • #1391: Fix cuda/nvcc toolchain

新特性

  • #1323: 支持从 apt 查找安装包,add_requires("apt::zlib1g-dev")
  • #1337: 添加环境变量去改进包安装和缓存目录
  • #1338: 支持导入导出已安装的包
  • #1087: 添加 xrepo env shell 并且支持从 add_requires/xmake.lua 加载包环境
  • #1313: 为 add_requires/add_deps 添加私有包支持
  • #1358: 支持设置镜像 url 站点加速包下载
  • #1369: 为 vcpkg 增加 arm/arm64 包集成支持,感谢 @fallending
  • #1405: 添加 portage 包管理器支持,感谢 @Phate6660

改进

  • 改进 find_package 并且添加 package:find_package 接口在包定义中方便查找包
  • 移除废弃的 set_config_hset_config_h_prefix 接口
  • #1343: 改进搜索本地包文件
  • #1347: 针对 binary 包改进 vs_runtime 配置
  • #1353: 改进 del_files() 去加速匹配文件
  • #1349: 改进 xrepo env shell 支持,更好的支持 powershell

Bugs 修复

  • #1380: 修复 add_packages() 失败问题
  • #1381: 修复添加本地 git 包源问题
  • #1391: 修复 cuda/nvcc 工具链

xmake v2.5.3

07 Apr 14:27
f97b9d9
Compare
Choose a tag to compare

New features

  • #1259: Support add_files("*.def") to export symbols for windows/dll
  • #1267: add find_package("nvtx")
  • #1274: add platform.linux.bpf rule to build linux/bpf program
  • #1280: Support fetchonly package to improve find_package
  • Support to fetch remote ndk toolchain package
  • #1268: Add utils.install.pkgconfig_importfiles rule to install *.pc import file
  • #1268: Add utils.install.cmake_importfiles rule to install *.cmake import files
  • #348: Add platform.longpaths policy to support git longpaths
  • #1314: Support to install and use conda packages
  • #1120: Add core.base.cpu module and improve os.cpuinfo()
  • #1325: Add builtin git variables for add_configfiles

Change

  • #1275: Support conditionnal targets for vsxmake plugin
  • #1290: Improve android ndk to support >= r22
  • #1311: Add packages lib folder to PATH for vsxmake project

Bugs fixed

  • #1266: Fix relative repo path in add_repositories
  • #1288: Fix vsxmake generator with option configs

新特性

  • #1259: 支持 add_files("*.def") 添加 def 文件去导出 windows/dll 符号
  • #1267: 添加 find_package("nvtx")
  • #1274: 添加 platform.linux.bpf 规则去构建 linux/bpf 程序
  • #1280: 支持 fetchonly 包去扩展改进 find_package
  • 支持自动拉取远程 ndk 工具链包和集成
  • #1268: 添加 utils.install.pkgconfig_importfiles 规则去安装 *.pc 文件
  • #1268: 添加 utils.install.cmake_importfiles 规则去安装 *.cmake 导入文件
  • #348: 添加 platform.longpaths 策略去支持 git longpaths
  • #1314: 支持安装使用 conda 包
  • #1120: 添加 core.base.cpu 模块并且改进 os.cpuinfo()
  • #1325: 为 add_configfiles 添加内建的 git 变量

改进

  • #1275: 改进 vsxmake 生成器,支持条件化编译 targets
  • #1290: 增加对 Android ndk r22 以上版本支持
  • #1311: 为 vsxmake 工程添加包 dll 路径,确保调试运行加载正常

Bugs 修复

  • #1266: 修复在 add_repositories 中的 repo 相对路径
  • #1288: 修复 vsxmake 插件处理 option 配置问题

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 环境查找和进程执行