Skip to content

Releases: xmake-io/xmake

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

xmake v2.3.1

23 Feb 12:21
f6155f8
Compare
Choose a tag to compare

New features

  • #675: Support to compile *.c as c++, add_files("*.c", {sourcekind = "cxx"}).
  • #681: Support compile xmake on msys/cygwin and add msys/cygwin platform
  • Add socket/pipe io modules and support to schedule socket/process/pipe in coroutine
  • #192: Try building project with the third-party buildsystem
  • Enable color diagnostics output for gcc/clang
  • #588: Improve project generator, xmake project -k ninja, support for build.ninja

Change

  • #665: Support to parse *nix style command options, thanks @OpportunityLiu
  • #673: Improve tab complete to support argument values
  • #680: Improve get.sh scripts and add download mirrors
  • Improve process scheduler
  • #651: Improve os/io module syserrors tips

Bugs fixed

  • Fix incremental compilation for checking the dependent file
  • Fix log output for parsing xmake-vscode/problem info
  • #684: Fix linker errors for android ndk on windows

新特性

  • #675: 支持通过设置强制将*.c作为c++代码编译, add_files("*.c", {sourcekind = "cxx"})
  • #681: 支持在msys/cygwin上编译xmake,以及添加msys/cygwin编译平台
  • 添加socket/pipe模块,并且支持在协程中同时调度process/socket/pipe
  • #192: 尝试构建带有第三方构建系统的项目,还支持autotools项目的交叉编译
  • 启用gcc/clang的编译错误色彩高亮输出
  • #588: 改进工程生成插件xmake project -k ninja,增加对build.ninja生成支持

改进

  • #665: 支持 *nix style 的参数输入,感谢@OpportunityLiu的贡献
  • #673: 改进tab命令补全,增加对参数values的补全支持
  • #680: 优化get.sh安装脚本,添加国内镜像源,加速下载
  • 改进process调度器
  • #651: 改进os/io模块系统操作错误提示

Bugs修复

  • 修复增量编译检测依赖文件的一些问题
  • 修复log输出导致xmake-vscode插件解析编译错误信息失败问题
  • #684: 修复windows下android ndk的一些linker错误

xmake v2.2.9

20 Dec 16:28
4c22b7a
Compare
Choose a tag to compare

New features

  • #569: Add c++ modules build rules
  • Add xmake project -k xmakefile generator
  • 620: Add global ~/.xmakerc.lua for all projects.
  • 593: Add core.base.socket module.

Change

  • #563: Separate build rules for specific language files from action/build
  • #570: Add qt.widgetapp and qt.quickapp rules
  • #576: Uses set_toolchain instead of add_tools and set_tools
  • Improve xmake create action
  • #589: Improve the default build jobs number to optimize build speed
  • #598: Improve find_package to support .tbd libraries on macOS
  • #615: Support to install and use other archs and ios conan packages
  • #629: Improve hash.uuid and implement uuid v4
  • #639: Improve to parse argument options to support -jN

Bugs fixed

  • #567: Fix out of memory for serialize
  • #566: Fix link order problem with remote packages
  • #565: Fix run path for vcpkg packages
  • #597: Fix run xmake require command too slowly
  • #634: Fix mode.coverage rule and check flags

新特性

  • #569: 增加对c++模块的实验性支持
  • 添加xmake project -k xmakefile生成器
  • 620: 添加全局~/.xmakerc.lua配置文件,对所有本地工程生效.
  • 593: 添加core.base.socket模块,为下一步远程编译和分布式编译做准备。

改进

  • #563: 重构构建逻辑,将特定语言的构建抽离到独立的rules中去
  • #570: 改进Qt构建,将qt.application拆分成qt.widgetappqt.quickapp两个构建规则
  • #576: 使用set_toolchain替代add_toolsset_tools,解决老接口使用歧义,提供更加易理解的设置方式
  • 改进xmake create创建模板工程
  • #589: 改进默认的构建任务数,充分利用cpu core来提速整体编译速度
  • #598: 改进find_package支持在macOS上对.tbd系统库文件的查找
  • #615: 支持安装和使用其他arch和ios的conan包
  • #629: 改进hash.uuid并且实现uuid v4
  • #639: 改进参数解析器支持-jN风格传参

Bugs修复

  • #567: 修复序列化对象时候出现的内存溢出问题
  • #566: 修复安装远程依赖的链接顺序问题
  • #565: 修复vcpkg包的运行PATH设置问题
  • #597: 修复xmake require安装包时间过长问题
  • #634: 修复mode.coverage构建规则,并且改进flags检测

xmake v2.2.8

26 Aug 14:40
6a2e390
Compare
Choose a tag to compare

New features

  • Add protobuf c/c++ rules
  • #468: Add utf-8 support for io module on windows
  • #472: Add xmake project -k vsxmake plugin to support call xmake from vs/msbuild
  • #487: Support to build the selected files for the given target
  • Add filelock for io
  • #513: Support for android/termux
  • #517: Add add_cleanfiles api for target
  • #537: Add set_runenv api to override os/envs

Changes

  • #257: Lock the whole project to avoid other process to access.
  • Attempt to enable /dev/shm for the os.tmpdir
  • #542: Improve vs unicode output for link/cl
  • Improve binary bitcode lua scripts in the program directory

Bugs fixed

  • #549: Fix error caused by the new vsDevCmd.bat of vs2019

新特性

  • 添加protobuf c/c++构建规则
  • #468: 添加对 Windows 的 UTF-8 支持
  • #472: 添加xmake project -k vsxmake去更好的支持vs工程的生成,内部直接调用xmake来编译
  • #487: 通过xmake --files="src/*.c"支持指定一批文件进行编译。
  • 针对io模块增加文件锁接口
  • #513: 增加对android/termux终端的支持,可在android设备上执行xmake来构建项目
  • #517: 为target增加add_cleanfiles接口,实现快速定制化清理文件
  • #537: 添加set_runenv接口去覆盖写入系统envs

改进

  • #257: 锁定当前正在构建的工程,避免其他xmake进程同时对其操作
  • 尝试采用/dev/shm作为os.tmpdir去改善构建过程中临时文件的读写效率
  • #542: 改进vs系列工具链的unicode输出问题
  • 对于安装的lua脚本,启用lua字节码存储,减少安装包大小(<2.4M),提高运行加载效率。

Bugs修复

  • #549: 修复新版vs2019下检测环境会卡死的问题

xmake v2.2.7

20 Jun 00:41
72bd93d
Compare
Choose a tag to compare

New features

  • #455: support clang as cuda compiler, try xmake f --cu=clang
  • #440: Add set_rundir() and add_runenvs() api for target/run
  • #443: Add tab completion support
  • Add on_link, before_link and after_link for rule and target
  • #190: Add add_rules("lex", "yacc") rules to support lex/yacc projects

Changes

  • #430: Add add_cucodegens() api to improve set codegen for cuda
  • #432: support deps analyze for cu file (for CUDA 10.1+)
  • #437: Support explict git source for xmake update, xmake update github:xmake-io/xmake#dev
  • #438: Support to only update scripts, xmake update --scriptonly dev
  • #433: Improve cuda to support device-link
  • #442: Improve test library

新特性

  • #455: 支持使用 clang 作为 cuda 编译器,xmake f --cu=clang
  • #440: 为target/run添加set_rundir()add_runenvs()接口设置
  • #443: 添加命令行tab自动完成支持
  • 为rule/target添加on_link,before_linkafter_link阶段自定义脚本支持
  • #190: 添加add_rules("lex", "yacc")规则去支持lex/yacc项目

改进

  • #430: 添加add_cucodegens()api为cuda改进设置codegen
  • #432: 针对cuda编译支持依赖分析检测(仅支持 CUDA 10.1+)
  • #437: 支持指定更新源,xmake update github:xmake-io/xmake#dev
  • #438: 支持仅更新脚本,xmake update --scriptonly dev
  • #433: 改进cuda构建支持device-link设备代码链接
  • #442: 改进tests测试框架

xmake v2.2.6

28 May 13:19
eb60a76
Compare
Choose a tag to compare

New features

  • #380: Add support to export compile_flags.txt
  • #382: Simplify simple scope settings
  • #397: Add clib package manager support
  • #404: Support Qt for android and deploy android apk
  • Add some qt empty project templates, e.g. widgetapp_qt, quickapp_qt_static and widgetapp_qt_static
  • #415: Add --cu-cxx config arguments to nvcc/-ccbin
  • Add --ndk_stdcxx=y and --ndk_cxxstl=gnustl_static argument options for android NDK

Changes

  • Improve remote package manager
  • Improve target:on_xxx scripts to support to match android|armv7-a@macosx,linux|x86_64 pattern
  • Improve loadfile to optimize startup speed, decrease 98% time

Bugs fixed

  • #400: fix c++ languages bug for qt rules

新特性

  • #380: 添加导出compile_flags.txt
  • #382: 简化域设置语法
  • #397: 添加clib包集成支持
  • #404: 增加Qt/Android编译支持,并且支持android apk生成和部署
  • 添加一些Qt空工程模板,例如:widgetapp_qt, quickapp_qt_static and widgetapp_qt_static
  • #415: 添加--cu-cxx配置参数到nvcc/-ccbin
  • 为Android NDK添加--ndk_stdcxx=y--ndk_cxxstl=gnustl_static参数选项

改进

  • 改进远程依赖包管理,丰富包仓库
  • 改进target:on_xxx自定义脚本,去支持匹配android|armv7-a@macosx,linux|x86_64模式
  • 改进loadfile,优化启动速度,windows上启动xmake时间提速98%

Bugs修复

  • #400: 修复qt项目c++语言标准设置无效问题