Releases: xmake-io/xmake
Releases · xmake-io/xmake
xmake v2.3.6
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
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
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
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
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
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生成支持
改进
Bugs修复
- 修复增量编译检测依赖文件的一些问题
- 修复log输出导致xmake-vscode插件解析编译错误信息失败问题
- #684: 修复windows下android ndk的一些linker错误
xmake v2.2.9
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.widgetapp
和qt.quickapp
两个构建规则
- #576: 使用
set_toolchain
替代add_tools
和set_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
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
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_link
和after_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
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++语言标准设置无效问题