Releases: xmake-io/xmake
Releases · xmake-io/xmake
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()
andadd_runenvs()
api for target/run - #443: Add tab completion support
- Add
on_link
,before_link
andafter_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项目
改进
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
andwidgetapp_qt_static
- #415: Add
--cu-cxx
config arguments tonvcc/-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 matchandroid|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
andwidgetapp_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++语言标准设置无效问题
xmake v2.2.5
New features
- Add
string.serialize
andstring.deserialize
to serialize and deserialize object, function and others. - Add
xmake g --menu
- #283: Add
target:installdir()
andset_installdir()
api for target - #260: Add
add_platformdirs
api, we can define custom platforms - #310: Add theme feature
- #318: Add
add_installfiles
api to target - #339: Improve
add_requires
andfind_package
to integrate the 3rd package manager - #327: Integrate with Conan package manager
- Add the builtin api
find_packages("pcre2", "zlib")
to find multiple packages - #320: Add template configuration files and replace all variables before building
- #179: Generate CMakelist.txt file for
xmake project
plugin - #361: Support vs2019 preview
- #368: Support
private, public, interface
to improve dependency inheritance like cmake - #284: Add passing user configs description for
package()
- #319: Add
add_headerfiles
to improve to set header files and directories - #342: Add some builtin help functions for
includes()
, e.g.check_cfuncs
Changes
- Improve to switch version and debug mode for the dependent packages
- #264: Support
xmake update dev
on windows - #293: Add
xmake f/g --mingw=xxx
configuration option and improve to find_mingw - #301: Improve precompiled header file
- #322: Add
option.add_features
,option.add_cxxsnippets
andoption.add_csnippets
- Remove some deprecated interfaces of xmake 1.x, e.g.
add_option_xxx
- #327: Support conan package manager for
lib.detect.find_package
- Improve
lib.detect.find_package
and add builtinfind_packages("zlib 1.x", "openssl", {xxx = ...})
api - Mark
set_modes()
as deprecated, we useadd_rules("mode.debug", "mode.release")
instead of it - #353: Improve
target:set
,target:add
and addtarget:del
to modify target configuration - #356: Add
qt_add_static_plugins()
api to support static Qt sdk - #351: Support yasm for generating vs201x project
- Improve the remote package manager.
Bugs fixed
- Fix cannot call
set_optimize()
to set optimization flags when existsadd_rules("mode.release")
- #289: Fix unarchive gzip file failed on windows
- #296: Fix
option.add_includedirs
for cuda - #321: Fix find program bug with $PATH envirnoment
新特性
- 添加
string.serialize
和string.deserialize
去序列化,反序列化对象,函数以及其他类型 - 添加
xmake g --menu
去图形化配置全局选项 - #283: 添加
target:installdir()
和set_installdir()
接口 - #260: 添加
add_platformdirs
接口,用户现在可以自定义扩展编译平台 - #310: 新增主题设置支持,用户可随意切换和扩展主题样式
- #318: 添加
add_installfiles
接口到target去自定义安装文件 - #339: 改进
add_requires
和find_package
使其支持对第三方包管理的集成支持 - #327: 实现对conan包管理的集成支持
- 添加内置API
find_packages("pcre2", "zlib")
去同时查找多个依赖包,不需要通过import导入即可直接调用 - #320: 添加模板配置文件相关接口,
add_configfiles
和set_configvar
- #179: 扩展
xmake project
插件,新增CMakelist.txt生成支持 - #361: 增加对vs2019 preview的支持
- #368: 支持
private, public, interface
属性设置去继承target配置 - #284: 通过
add_configs()
添加和传递用户自定义配置到package()
- #319: 添加
add_headerfiles
接口去改进头文件的设置 - #342: 为
includes()
添加一些内置的辅助函数,例如:check_cfuncs
改进
- 针对远程依赖包,改进版本和调试模式切换
- #264: 支持在windows上更新dev/master版本,
xmake update dev
- #293: 添加
xmake f/g --mingw=xxx
配置选线,并且改进find_mingw检测 - #301: 改进编译预处理头文件以及依赖头文件生成,编译速度提升30%
- #322: 添加
option.add_features
,option.add_cxxsnippets
和option.add_csnippets
- 移除xmake 1.x的一些废弃接口, 例如:
add_option_xxx
- #327: 改进
lib.detect.find_package
增加对conan包管理器的支持 - 改进
lib.detect.find_package
并且添加内建的find_packages("zlib 1.x", "openssl", {xxx = ...})
接口 - 标记
set_modes()
作为废弃接口, 我们使用add_rules("mode.debug", "mode.release")
来替代它 - #353: 改进
target:set
,target:add
并且添加target:del
去动态修改target配置 - #356: 添加
qt_add_static_plugins()
接口去支持静态Qt sdk - #351: 生成vs201x插件增加对yasm的支持
- 重构改进整个远程依赖包管理器,更加快速、稳定、可靠,并提供更多的常用包
Bugs修复
xmake v2.2.3
New features
- #233: Support windres for mingw platform
- #239: Add cparser compiler support
- Add plugin manager
xmake plugin --help
- Add
add_syslinks
api to add system libraries dependence - Add
xmake l time xmake [--rebuild]
to record compilation time - #250: Add
xmake f --vs_sdkver=10.0.15063.0
to change windows sdk version - Add
lib.luajit.ffi
andlib.luajit.jit
extension modules - #263: Add new target kind: object to only compile object files
Changes
- #229: Improve to select toolset for vcproj plugin
- Improve compilation dependences
- Support *.xz for extractor
- #249: revise progress formatting to space-leading three digit percentages
- #247: Add
-D
and--diagnosis
instead of--backtrace
- #259: Improve on_build, on_build_file and on_xxx for target and rule
- #269: Clean up the temporary files at last 30 days
- Improve remote package manager
- Support to add packages with only header file
- Support to modify builtin package links, e.g.
add_packages("xxx", {links = {}})
Bugs fixed
- Fix state inconsistency after failed outage of installation dependency package
新特性
- #233: 对mingw平台增加windres的支持
- #239: 添加cparser编译器支持
- 添加插件管理器,
xmake plugin --help
- 添加
add_syslinks
接口去设置系统库依赖,分离与add_links
添加的库依赖之间的链接顺序 - 添加
xmake l time xmake [--rebuild]
去记录编译耗时 - #250: 添加
xmake f --vs_sdkver=10.0.15063.0
去改变windows sdk版本 - 添加
lib.luajit.ffi
和lib.luajit.jit
扩展模块 - #263: 添加object目标类型,仅仅用于编译生成object对象文件
- #269: 每天第一次构建时候后台进程自动清理最近30天的临时文件
改进
- #229: 改进vs toolset选择已经vcproj工程文件生成
- 改进编译依赖,对源文件列表的改动进行依赖判断
- 支持解压*.xz文件
- #249: 改进编译进度信息显示格式
- #247: 添加
-D
和--diagnosis
去替换--backtrace
,改进诊断信息显示 - #259: 改进 on_build, on_build_file 和 on_xxx 等接口
- 改进远程包管理器,更加方便的包依赖配置切换
- 支持only头文件依赖包的安装
- 支持对包内置links的手动调整,
add_packages("xxx", {links = {}})
Bugs修复
- 修复安装依赖包失败中断后的状态不一致性问题
xmake v2.2.2
New features
- Support fasm assembler
- Add
has_config
,get_config
, andis_config
apis - Add
set_config
to set the default configuration - Add
$xmake --try
to try building project using third-party buildsystem - Add
set_enabled(false)
to disable target - #69: Add remote package management,
add_requires("tbox ~1.6.1")
- #216: Add windows mfc rules
Changes
- Improve to detect Qt envirnoment and support mingw
- Add debug and release rules to the auto-generated xmake.lua
- #178: Modify the shared library name for mingw.
- Support case-insensitive path pattern-matching for
add_files()
on windows - Improve to detect Qt sdk directory for
detect.sdks.find_qt
- #184: Improve
lib.detect.find_package
to support vcpkg - #208: Improve rpath for shared library
- #225: Improve to detect vs envirnoment
Bug fixed
- #177: Fix the dependent target link bug
- Fix high cpu usage bug and Exit issues for
$ xmake f --menu
- #197: Fix Chinese path for generating vs201x project
- Fix wdk rules bug
- #205: Fix targetdir,objectdir not used in vsproject
新特性
- 新增fasm汇编器支持
- 添加
has_config
,get_config
和is_config
接口去快速判断option和配置值 - 添加
set_config
接口去设置默认配置 - 添加
$xmake --try
去尝试构建工程 - 添加
set_enabled(false)
去显示的禁用target - #69: 添加远程依赖包管理,
add_requires("tbox ~1.6.1")
- #216: 添加windows mfc编译规则
改进
- 改进Qt编译编译环境探测,增加对mingw sdk的支持
- 在自动扫描生成的xmake.lua中增加默认debug/release规则
- #178: 修改mingw平台下的目标名
- 对于
add_files()
在windows上支持大小写不敏感路径模式匹配 - 改进
detect.sdks.find_qt
对于Qt根目录的探测 - #184: 改进
lib.detect.find_package
支持vcpkg - #208: 改进rpath对动态库的支持
- #225: 改进vs环境探测
Bugs修复
xmake v2.2.1
New features
- #158: Support CUDA Toolkit and Compiler
- Add
set_tools
andadd_tools
apis to change the toolchains for special target - Add builtin rules:
mode.debug
,mode.release
,mode.profile
andmode.check
- Add
is_mode
,is_arch
andis_plat
builtin apis in the custom scripts - Add color256 codes
- #160: Support Qt compilation environment and add
qt.console
,qt.application
rules - Add some Qt project templates
- #169: Support yasm for linux, macosx and windows
- #159: Support WDK driver compilation environment
Changes
- Add FAQ to the auto-generated xmake.lua
- Support android NDK >= r14
- Improve warning flags for swiftc
- #167: Improve custom rules
- Improve
os.files
andos.dirs
api - #171: Improve build dependence for qt rule
- Implement
make clean
for generating makefile plugin
Bugs fixed
- Fix force to add flags bug
- #157: Fix generate pdb file error if it's output directory does not exists
- Fix strip all symbols bug for macho target file
- #168: Fix generate vs201x project bug with x86/x64 architectures
新特性
- #158: 增加对Cuda编译环境的支持
- 添加
set_tools
和add_tools
接口为指定target目标设置编译工具链 - 添加内建规则:
mode.debug
,mode.release
,mode.profile
和mode.check
- 添加
is_mode
,is_arch
和is_plat
内置接口到自定义脚本域 - 添加color256代码
- #160: 增加对Qt SDK编译环境的跨平台支持,并且增加
qt.console
,qt.application
等规则 - 添加一些Qt工程模板
- #169: 支持yasm汇编器
- #159: 增加对WDK驱动编译环境支持
改进
- 添加FAQ到自动生成的xmake.lua文件,方便用户快速上手
- 支持Android NDK >= r14的版本
- 改进swiftc对warning flags的支持
- #167: 改进自定义规则:
rule()
- 改进
os.files
和os.dirs
接口,加速文件模式匹配 - #171: 改进Qt环境的构建依赖
- 在makefile生成插件中实现
make clean
Bugs修复
xmake v2.1.9
New features
- Add
del_files()
api to delete files in the files list - Add
rule()
,add_rules()
api to implement the custom build rule and improveadd_files("src/*.md", {rule = "markdown"})
- Add
os.filesize()
api - Add
core.ui.xxx
cui components - Add
xmake f --menu
to configure project with a menu configuration interface - Add
set_values
api tooption()
- Support to generate a menu configuration interface from user custom project options
- Add source file position to interpreter and search results in menu
Changes
- Improve to configure cross-toolchains, add tool alias to support unknown tool name, .e.g
xmake f [email protected]
- #151: Improve to build the share library for the mingw platform
- Improve to generate makefile plugin
- Improve the checking errors tips
- Improve
add_cxflags
.., force to set flags without auto checking:add_cxflags("-DTEST", {force = true})
- Improve
add_files
, add force block to force to set flags without auto checking:add_files("src/*.c", {force = {cxflags = "-DTEST"}})
- Improve to search the root project directory
- Improve to detect vs environment
- Upgrade luajit to 2.1.0-beta3
- Support to run xmake on linux (arm, arm64)
- Improve to generate vs201x project plugin
Bugs fixed
- Fix complation dependence
- #151: Fix
os.nuldev()
for gcc on mingw - #150: Fix the command line string limitation for
ar.exe
- Fix
xmake f --cross
error - Fix
os.cd
to the windows root path bug
新特性
- 添加
del_files()
接口去从已添加的文件列表中移除一些文件 - 添加
rule()
,add_rules()
接口实现自定义构建规则,并且改进add_files("src/*.md", {rule = "markdown"})
- 添加
os.filesize()
接口 - 添加
core.ui.xxx
等cui组件模块,实现终端可视化界面,用于实现跟用户进行短暂的交互 - 通过
xmake f --menu
实现可视化菜单交互配置,简化工程的编译配置 - 添加
set_values
接口到option - 改进option,支持根据工程中用户自定义的option,自动生成可视化配置菜单
- 在调用api设置工程配置时以及在配置菜单中添加源文件位置信息
改进
- 改进交叉工具链配置,通过指定工具别名定向到已知的工具链来支持未知编译工具名配置, 例如:
xmake f [email protected]
- #151: 改进mingw平台下动态库生成
- 改进生成makefile插件
- 改进检测错误提示
- 改进
add_cxflags
等flags api的设置,添加force参数,来禁用自动检测和映射,强制设置选项:add_cxflags("-DTEST", {force = true})
- 改进
add_files
的flags设置,添加force域,用于设置不带自动检测和映射的原始flags:add_files("src/*.c", {force = {cxflags = "-DTEST"}})
- 改进搜索工程根目录策略
- 改进vs环境探测,支持加密文件系统下vs环境的探测
- 升级luajit到最新2.1.0-beta3
- 增加对linux/arm, arm64的支持,可以在arm linux上运行xmake
- 改进vs201x工程生成插件,更好的includedirs设置支持
Bugs修复
xmake v2.1.8
New features
- Add
XMAKE_LOGFILE
environment variable to dump the output info to file - Support tinyc compiler
Changes
- Improve support for IDE/editor plugins (.e.g vscode, sublime, intellij-idea)
- Add
.gitignore
file when creating new projects - Improve to create template project
- Improve to detect toolchains on macosx without xcode
- Improve
set_config_header
to supportset_config_header("config", {version = "2.1.8", build = "%Y%m%d%H%M"})
Bugs fixed
- #145: Fix the current directory when running target
新特性
- 添加
XMAKE_LOGFILE
环境变量,启用输出到日志文件 - 添加对tinyc编译器的支持
改进
- 改进对IDE和编辑器插件的集成支持,例如:Visual Studio Code, Sublime Text 以及 IntelliJ IDEA
- 当生成新工程的时候,自动生成一个
.gitignore
文件,忽略一些xmake的临时文件和目录 - 改进创建模板工程,使用模板名代替模板id作为参数
- 改进macOS编译平台的探测,如果没有安装xcode也能够进行编译构建,如果有编译器的话
- 改进
set_config_header
接口,支持局部版本号设置,优先于全局set_version
,例如:set_config_header("config", {version = "2.1.8", build = "%Y%m%d%H%M"})
Bugs修复
- #145: 修复运行target的当前目录环境
xmake v2.1.7
New features
- Add
add_imports
to bulk import modules for the target, option and package script - Add
xmake -y/--yes
to confirm the user input by default - Add
xmake l package.manager.install xxx
to install software package - Add xmake plugin for vscode editor, xmake-vscode
- Add
xmake macro ..
to run the last command
Changes
- Support 24bits truecolors for
cprint()
- Support
@loader_path
and$ORIGIN
foradd_rpathdirs()
- Improve
set_version("x.x.x", {build = "%Y%m%d%H%M"})
and add build version - Move docs directory to xmake-docs repo
- Improve install and uninstall actions and support DESTDIR and PREFIX envirnoment variables
- Optimize to detect flags
- Add
COLORTERM=nocolor
to disable color output - Remove
and_bindings
andadd_rbindings
api - Disable to output colors code to file
- Update project templates with tbox
- Improve
lib.detect.find_program
interface - Enable colors output for windows cmd
- Add
-w|--warning
arguments to enable the warnings output
Bugs fixed
- Fix
set_pcxxheader
bug - #140: Fix
os.tmpdir()
in fakeroot - #142: Fix
os.getenv
charset bug on windows - Fix compile error with spaces path
- Fix setenv empty value bug
新特性
- 添加
add_imports
去为target,option和package的自定义脚本批量导入模块,简化自定义脚本 - 添加
xmake -y/--yes
去确认用户输入 - 添加
xmake l package.manager.install xxx
模块,进行跨平台一致性安装软件包 - 添加vscode编辑器插件支持,更加方便的使用xmake,xmake-vscode
- 添加
xmake macro ..
快速运行最近一次命令
改进
- 改进
cprint()
,支持24位真彩色输出 - 对
add_rpathdirs()
增加对@loader_path
和$ORIGIN
的内置变量支持,提供可迁移动态库加载 - 改进
set_version("x.x.x", {build = "%Y%m%d%H%M"})
支持buildversion设置 - 移除docs目录,将其放置到独立xmake-docs仓库中,减少xmake.zip的大小,优化下载安装的效率
- 改进安装和卸载脚本,支持DESTDIR和PREFIX环境变量设置
- 通过缓存优化flags探测,加速编译效率
- 添加
COLORTERM=nocolor
环境变量开关,禁用彩色输出 - 移除
add_rbindings
和add_bindings
接口 - 禁止在重定向的时候进行彩色输出,避免输出文件中带有色彩代码干扰
- 更新tbox工程模板
- 改进
lib.detect.find_program
模块接口 - 为windows cmd终端增加彩色输出
- 增加
-w|--warning
参数来启用实时警告输出