xrepo download
command to download package sourcepackage:check_sizeof()
xmake test
add_versionfiles
api in packagebuild.always_update_configfiles
policyxmake test
outputnetwork.mode
policyxmake pack
command to generate NSIS/zip/tar.gz/rpm/srpm/runself packages like cmake/cpackxmake test
supportrun.autobuild
policyxmake g --policies=
xmake -r --shallow target
to rebuild target without depsxrepo clean
xmake update
xmake check
to check project code (clang-tidy) and configuration--lsp=clangd
to improve to generate compile_commands.jsonxmake format
pluginplugin.compile_commands.autoupdate
rulegnu-rm.binary
and gnu-rm.static
rules and tests for embed projectxmake g --insecure-ssl=y
option to disable ssl certificate when downloading packagespackage.librarydeps.strict_compatibility
to strict compatibility for package linkdepsxmake watch
plugin commandxmake service --pull 'build/**' outputdir
to pull the given files in remote server{install = false}
support-fdirectives-only
for ccache by defaultxmake install
preprocessor.linemarkers
policy to disable linemarkers to speed up ccache/distccxmake run
to parallel running of targetspreprocessor.gcc.directives_only
policyxmake f --policies=
config argument to modify project policiesbuild.ccache
policy--appledev=simulator
to improve apple simulator supportadd_requires
to support git commit as versionadd_filegroups
to support file group for vs/vsxmake/cmake generatoros.files
xmake update --integrate
to integrate for shellxrepo install xxx.lua
python.library
rule to build pybind modulesremove_files
, remove_headerfiles
and mark del_files
as deprecatedxmake g --proxy_pac=github_mirror.lua
plugin.vsxmake.autoupdate
ruleXMAKE_THEME
envirnoment variable to switch theme-f/--force
to force to create project in a non-empty directoryutils.glsl2spv
rules to compile .vert/.frag shader files to spirv file and binary c header fileset_runtimes("microlib")
xmake f --menu
not responding in vscode and support ConPTY terminal virtkeysset_kind("headeronly")
for target to install files for headeronly libraryxmake l cli.amalgamate
xrepo env
-Gd
for ml.exe/x86check_macros
set_symbols("debug")
to generate pdb file for clang on windowsc++latest
and clatest
for set_languages
save_scope
and restore_scope
to fix check_xxx
apisos.joinenvs()
and improve package tools envirnomentsset_allowedmodes
, set_allowedplats
and set_allowedarchs
set_defaultmode
, set_defaultplat
and set_defaultarch
xmake package
to generate new local/remote packagesappletvos
platform support for AppleTV, xmake f -p appletvos
vs_runtime
xrepo env
apt
, add_requires("apt::zlib1g-dev")
xrepo env shell
and support load envs from add_requires/xmake.lua
add_requires/add_deps
find_package
and add package:find_package
for xmake packageset_config_h
and set_config_h_prefix
apisxrepo env shell
to support powershelladd_files("*.def")
to export symbols for windows/dllfind_package("nvtx")
platform.linux.bpf
rule to build linux/bpf programutils.install.pkgconfig_importfiles
rule to install *.pc
import fileutils.install.cmake_importfiles
rule to install *.cmake
import filesplatform.longpaths
policy to support git longpathscore.base.cpu
module and improve os.cpuinfo()
add_configfiles
zig cc
and zig c++
as c/c++ compilerrule("utils.symbols.export_all")
to export all symbols for windows/dllutils.platform.gnu2mslib(mslib, gnulib)
module api to convert mingw/xxx.dll.a to msvc xxx.libadd_extsources
to improve find external packagesxrepo remove --all
to remove all packagesadd_defines_h_if_ok
and add_defines_h
apis for optionadd_rules("plugin.vsxmake.autoupdate")
xmake f --vs_runtime=MT
and set_runtimes("MT")
to set vs runtime for targets and packagesadd_requireconfs()
api to rewrite configs of depend packagesluarocks.module
rule for luarocks-build-xmakexmake f --menu
set_arch()
settingadd_defines()
bug (contain spaces)add_requires("libcurl 7.73.0", {verify = false})
add_sysincludedirs
for package and toolchainsxmake f --menu
xmake project -k cmake
edit
and embed
to set_symbols()
only for msvcxmake project -k vs
plugin.depend.on_changed()
api to simplify adding dependent filesset_fpmodels()
for math optimization modec11
and c17
for MSVC Version 16.8 and Aboveadd_rules("c++.openmp")
add_requires("zlib~xxx")
to support for installing multi-packages at same timexmake g --network=private
to enable the private networkxmake project -k xcode
generator (use cmake)/sourceDependencies xxx.json
xmake show -l envs
to show all builtin envirnoment variablesadd_files("src/*.c", {rules = {"xx", override = true}})
set_toolchains()
when cross-compilation is supported, specific target can be switched to host toolchain and compiled at the same timeset_policy()
to set and modify some builtin policiesxmake show
plugin to show some builtin configuration values and infosxmake g --theme=ninja
xmake f --menu
xmake --dry-run -v
to dry run building target and only show verbose build command.homebrew/cmake
pacakges*.c
as c++, add_files("*.c", {sourcekind = "cxx"})
.xmake project -k ninja
, support for build.ninjaxmake project -k xmakefile
generator~/.xmakerc.lua
for all projects.core.base.socket
module.qt.widgetapp
and qt.quickapp
rulesset_toolchain
instead of add_tools
and set_tools
xmake create
actionxmake require
command too slowlyxmake project -k vsxmake
plugin to support call xmake from vs/msbuildadd_cleanfiles
api for targetset_runenv
api to override os/envsxmake f --cu=clang
set_rundir()
and add_runenvs()
api for target/runon_link
, before_link
and after_link
for rule and targetadd_rules("lex", "yacc")
rules to support lex/yacc projectsadd_cugencodes()
api to improve set codegen for cudaxmake update github:xmake-io/xmake#dev
xmake update --scriptonly dev
widgetapp_qt
, quickapp_qt_static
and widgetapp_qt_static
--cu-cxx
config arguments to nvcc/-ccbin
--ndk_stdcxx=y
and --ndk_cxxstl=gnustl_static
argument options for android NDKtarget:on_xxx
scripts to support to match android|armv7-a@macosx,linux|x86_64
patternstring.serialize
and string.deserialize
to serialize and deserialize object, function and others.xmake g --menu
target:installdir()
and set_installdir()
api for targetadd_platformdirs
api, we can define custom platformsadd_installfiles
api to targetadd_requires
and find_package
to integrate the 3rd package managerfind_packages("pcre2", "zlib")
to find multiple packagesxmake project
pluginprivate, public, interface
to improve dependency inheritance like cmakepackage()
add_headerfiles
to improve to set header files and directoriesincludes()
, e.g. check_cfuncs
xmake update dev
on windowsxmake f/g --mingw=xxx
configuration option and improve to find_mingwoption.add_features
, option.add_cxxsnippets
and option.add_csnippets
add_option_xxx
lib.detect.find_package
lib.detect.find_package
and add builtin find_packages("zlib 1.x", "openssl", {xxx = ...})
apiset_modes()
as deprecated, we use add_rules("mode.debug", "mode.release")
instead of ittarget:set
, target:add
and add target:del
to modify target configurationqt_add_static_plugins()
api to support static Qt sdkset_optimize()
to set optimization flags when exists add_rules("mode.release")
option.add_includedirs
for cudaxmake plugin --help
add_syslinks
api to add system libraries dependencexmake l time xmake [--rebuild]
to record compilation timexmake f --vs_sdkver=10.0.15063.0
to change windows sdk versionlib.luajit.ffi
and lib.luajit.jit
extension modules-D
and --diagnosis
instead of --backtrace
add_packages("xxx", {links = {}})
has_config
, get_config
, and is_config
apisset_config
to set the default configuration$xmake --try
to try building project using third-party buildsystemset_enabled(false)
to disable targetadd_requires("tbox ~1.6.1")
add_files()
on windowsdetect.sdks.find_qt
lib.detect.find_package
to support vcpkg$ xmake f --menu
set_tools
and add_tools
apis to change the toolchains for special targetmode.debug
, mode.release
, mode.profile
and mode.check
is_mode
, is_arch
and is_plat
builtin apis in the custom scriptsqt.console
, qt.application
rulesos.files
and os.dirs
apimake clean
for generating makefile plugindel_files()
api to delete files in the files listrule()
, add_rules()
api to implement the custom build rule and improve add_files("src/*.md", {rule = "markdown"})
os.filesize()
apicore.ui.xxx
cui componentsxmake f --menu
to configure project with a menu configuration interfaceset_values
api to option()
xmake f --cc=gcc@ccmips.exe
add_cxflags
.., force to set flags without auto checking: add_cxflags("-DTEST", {force = true})
add_files
, add force block to force to set flags without auto checking: add_files("src/*.c", {force = {cxflags = "-DTEST"}})
os.nuldev()
for gcc on mingwar.exe
xmake f --cross
erroros.cd
to the windows root path bugXMAKE_LOGFILE
environment variable to dump the output info to file.gitignore
file when creating new projectsset_config_header
to support set_config_header("config", {version = "2.1.8", build = "%Y%m%d%H%M"})
add_imports
to bulk import modules for the target, option and package scriptxmake -y/--yes
to confirm the user input by defaultxmake l package.manager.install xxx
to install software packagexmake macro ..
to run the last commandcprint()
@loader_path
and $ORIGIN
for add_rpathdirs()
set_version("x.x.x", {build = "%Y%m%d%H%M"})
and add build versionCOLORTERM=nocolor
to disable color outputand_bindings
and add_rbindings
apilib.detect.find_program
interface-w|--warning
arguments to enable the warnings outputset_pcxxheader
bugos.tmpdir()
in fakerootos.getenv
charset bug on windowsadd_files
to configure the compile option of the given filestarget.add_deps
and add inherit config, e.g. add_deps("test", {inherit = false})
tbox.pkg
/Zi
instead of /ZI
for msvctarget:add
and option:add
bugadd_csnippet
and add_cxxsnippet
into option
for detecting some compiler features.find_program
, find_file
, find_library
, find_tool
and find_package
module interfaces.net.*
and devel.*
extension modulesval()
api to get the value of builtin-variable, e.g. val("host")
, val("env PATH")
, val("shell echo hello")
and val("reg HKEY_LOCAL_MACHINE\\XX;Value")
has_flags
, features
and has_features
for detect module interfaces.option.on_check
, option.after_check
and option.before_check
apitarget.on_load
apiadd_frameworkdirs
apilib.detect.has_xxx
and lib.detect.find_xxx
apis.add_moduledirs
apiincludes
api instead of add_subdirs
and add_subfiles
compile_commands.json
by run xmake project -k compile_commands
set_pcheader
and set_pcxxheader
to support the precompiled header, support gcc, clang, msvcxmake f -p cross
platform and support the custom platformimport
to load user extension and global modulesxmake lua
to run a single line commandprint
interface to dump table--root
common option to allow run xmake command as rootxxx_script
in xmake.lua
to support pattern match, e.g. on_build("iphoneos|arm*", function (target) end)
*.asm
source files for vs201x project pluginadd_bindings
and add_rbindings
as deprecatedxmake rebuild
speed on windowscore.project.task
to core.base.task
echo
and app2ipa
plugins to xmake-plugins repo.set_config_header("config.h", {prefix = ""})
instead of set_config_h
and set_config_h_prefix
try-catch-finally
get.sh
$(programdir)
and $(xmake)
builtin variablesis_host
api to get current host operating systemxmake lua
to run interactive commands, read-eval-print (REPL)xmake.lua
in add_subdirs
and use independent sub-scope to avoid dirty scope.xmake
directory if be not in projectsudo make install
permission problemos.host
and os.arch
interfacescprint
no color reset eolset_default
api for target to modify default build and install behaviorxmake
command in project subdirectories, it will find the project root directory automaticallyadd_rpathdirs
for target and optionxmake install
and xmake uninstall
task with administrator permissionrpm
, deb
and osxpkg
install packagexmake.lua
automaticallyarmv8-a
error--links
, --linkdirs
and --includedirs
configure argumentsxmake.lua
xmake.lua
set_xmakever
api for xmake.lua
add_frameworks
api for objc
and swift
golang
, dlang
and rust
languagetarget_end
, option_end
, task_end
apis for scopegolang
, dlang
and rust
project templatesos.run
, os.exec
, os.cp
, os.mv
and os.rm
interfaces and support wildcard pattern-q|--quiet
optionos.iorun
bugcore/tools
(msys toolchains) and uses xmake to compile core sources on windowsxmake/packages
for templates-def:xxx.def
flags failed for msvcxmake.lua
. e.g. add_ldflags("$(shell pkg-config --libs sqlite3)")
getenv
interface for the global scope of xmake.lua
set_default
api for option*.cxx
files failedxmake run -d program ...
import
interface--sdk=xxx
xmake config --xxx=[y|n|yes|no|true|false]
-j/--jobs
argument for supporting multi-jobsadd_files
api and support to add *.o/obj/a/lib
files for merging static library and object filesset_runscript
api and support custom actionset_installscript
x86_64
xrepo download
命令去快速下载包源码package:check_sizeof()
xmake test
,支持等待进程超时add_versionfiles
接口build.always_update_configfiles
策略xmake test
的输出支持network.mode
策略xmake pack
命令去生成 NSIS/zip/tar.gz/rpm/srpm/runself 安装包xmake test
支持run.autobuild
策略开启运行前自动构建xmake g --policies=
xmake -r --shallow target
去改进重建目标,避免重建所有依赖目标xrepo clean
--lsp=clangd
去改进 compile_commands.json 的生成xmake run
处理单个参数不正确问题xmake format
插件plugin.compile_commands.autoupdate
规则gnu-rm.binary
和 gnu-rm.static
规则和测试工程xmake g --insecure-ssl=y
配置选项去禁用 ssl 证书检测package.librarydeps.strict_compatibility
策略严格限制包依赖兼容性xmake watch
插件命令xmake service --pull 'build/**' outputdir
命令去拉取远程构建服务器上的文件{install = false}
支持-fdirectives-only
preprocessor.linemarkers
策略去禁用 linemarkers 去加速 ccache/distccxmake run
支持并行运行目标程序preprocessor.gcc.directives_only
策略xmake f --policies=
配置参数去修改默认策略build.ccache
策略,用于在工程中配置编译缓存--appledev=simulator
去改进 Apple 模拟器目标编译支持add_requires
支持 git command 作为版本add_filegroups
接口为 vs/vsxmake/cmake generator 增加文件组支持xmake update --integrate
命令去整合 shellxrepo install xxx.lua
python.library
规则去构建 pybind 模块,并且支持 soabiremove_files
, remove_headerfiles
并且标记 del_files
作为废弃接口xmake g --proxy_pac=github_mirror.lua
plugin.vsxmake.autoupdate
规则XMAKE_THEME
环境变量去切换主题配置-f/--force
参数使得 xmake create
可以在费控目录被强制创建utils.glsl2spv
规则去编译 .vert/.frag shader 文件生成 spirv 文件和二进制 C 头文件set_runtimes("microlib")
xmake f --menu
在 vscode 终端下按键无响应,并且支持 ConPTY 终端虚拟按键set_kind("headeronly")
更好的处理 headeronly 库的安装xmake l cli.amalgamate
命令支持代码合并xrepo env
管理和切换指定的环境配置-Gd
选项check_macros
检测接口set_symbols("debug")
支持 clang/windows 生成 pdb 文件set_languages
新增 c++latest
和 clatest
配置值save_scope
和 restore_scope
去修复 check_xxx
相关接口os.joinenvs()
和改进包工具环境set_allowedmodes
, set_allowedplats
和 set_allowedarchs
set_defaultmode
, set_defaultplat
和 set_defaultarch
xmake package
去产生新的本地包格式,无缝集成 add_requires
,并且新增生成远程包支持appletvos
编译平台支持, xmake f -p appletvos
vs_runtime
xrepo env
add_requires("apt::zlib1g-dev")
xrepo env shell
并且支持从 add_requires/xmake.lua
加载包环境add_requires/add_deps
添加私有包支持find_package
并且添加 package:find_package
接口在包定义中方便查找包set_config_h
和 set_config_h_prefix
接口add_files("*.def")
添加 def 文件去导出 windows/dll 符号find_package("nvtx")
platform.linux.bpf
规则去构建 linux/bpf 程序utils.install.pkgconfig_importfiles
规则去安装 *.pc
文件utils.install.cmake_importfiles
规则去安装 *.cmake
导入文件platform.longpaths
策略去支持 git longpathscore.base.cpu
模块并且改进 os.cpuinfo()
add_configfiles
添加内建的 git 变量zig cc
和 zig c++
作为 c/c++ 编译器rule("utils.symbols.export_all")
自动导出所有 windows/dll 中的符号utils.platform.gnu2mslib(mslib, gnulib)
模块接口去转换 mingw/xxx.dll.a 到 msvc xxx.libadd_extsources
去改进外部包的查找xrepo remove --all
命令去移除所有的包,并且支持模式匹配add_defines_h_if_ok
and add_defines_h
接口add_rules("plugin.vsxmake.autoupdate")
xmake f --vs_runtime=MT
和 set_runtimes("MT")
去更方便的对 target 和 package 进行设置add_requireconfs()
接口去重写依赖包的配置luarocks.module
构建规则xmake f --menu
增加 utf8 支持set_arch()
设置add_defines()
中带有双引号和空格导致无法正确处理宏定义的问题add_requires("libcurl 7.73.0", {verify = false})
add_sysincludedirs
,依赖包默认使用-isystem
xmake f --menu
菜单配置,支持鼠标操作xmake project -k cmake
插件增加对 set_languages
的支持edit
和 embed
调试信息格式类型到 set_symbols()
xmake project -k vs
插件depend.on_changed()
去简化依赖文件的处理set_fpmodels()
去抽象化设置math/float-point编译优化模式c11
/c17
支持add_rules("c++.openmp")
add_requires("zlib~xxx")
模式使得能够支持同时安装带有多种配置的同一个包,作为独立包存在xmake g --network=private
配置设置私有网络模式,避免远程依赖包下载访问外网导致编译失败xmake project -k cmake
(当前采用cmake生成)add_files("src/*.c", {rules = {"xx", override = true}})
set_toolchains()
支持交叉编译的时候,特定target可以切换到host工具链同时编译set_policy()
去设置修改一些内置的策略,比如:禁用自动flags检测和映射xmake show
插件去显示xmake内置的各种信息xmake g --theme=ninja
xmake f --menu
可视化配置菜单支持窗口大小Resize调整xmake --dry-run -v
命令去空运行构建,仅仅为了查看详细的构建命令*.c
作为c++代码编译, add_files("*.c", {sourcekind = "cxx"})
。xmake project -k ninja
,增加对build.ninja生成支持xmake project -k xmakefile
生成器~/.xmakerc.lua
配置文件,对所有本地工程生效.core.base.socket
模块,为下一步远程编译和分布式编译做准备。qt.application
拆分成qt.widgetapp
和qt.quickapp
两个构建规则set_toolchain
替代add_tools
和set_tools
,解决老接口使用歧义,提供更加易理解的设置方式xmake create
创建模板工程find_package
支持在macOS上对.tbd系统库文件的查找-jN
风格传参xmake project -k vsxmake
去更好的支持vs工程的生成,内部直接调用xmake来编译xmake --files="src/*.c"
支持指定一批文件进行编译。add_cleanfiles
接口,实现快速定制化清理文件set_runenv
接口去覆盖写入系统envsxmake f --cu=clang
set_rundir()
和add_runenvs()
接口设置on_link
,before_link
和after_link
阶段自定义脚本支持add_rules("lex", "yacc")
规则去支持lex/yacc项目add_cugencodes()
api为cuda改进设置codegenxmake update github:xmake-io/xmake#dev
xmake update --scriptonly dev
widgetapp_qt
, quickapp_qt_static
and widgetapp_qt_static
--cu-cxx
配置参数到nvcc/-ccbin
--ndk_stdcxx=y
和--ndk_cxxstl=gnustl_static
参数选项target:on_xxx
自定义脚本,去支持匹配android|armv7-a@macosx,linux|x86_64
模式string.serialize
和string.deserialize
去序列化,反序列化对象,函数以及其他类型xmake g --menu
去图形化配置全局选项target:installdir()
和set_installdir()
接口add_platformdirs
接口,用户现在可以自定义扩展编译平台add_installfiles
接口到target去自定义安装文件add_requires
和find_package
使其支持对第三方包管理的集成支持find_packages("pcre2", "zlib")
去同时查找多个依赖包,不需要通过import导入即可直接调用add_configfiles
和set_configvar
xmake project
插件,新增CMakelist.txt生成支持private, public, interface
属性设置去继承target配置add_configs()
添加和传递用户自定义配置到package()
add_headerfiles
接口去改进头文件的设置includes()
添加一些内置的辅助函数,例如:check_cfuncs
xmake update dev
xmake f/g --mingw=xxx
配置选线,并且改进find_mingw检测option.add_features
, option.add_cxxsnippets
和 option.add_csnippets
add_option_xxx
lib.detect.find_package
增加对conan包管理器的支持lib.detect.find_package
并且添加内建的find_packages("zlib 1.x", "openssl", {xxx = ...})
接口set_modes()
作为废弃接口, 我们使用add_rules("mode.debug", "mode.release")
来替代它target:set
, target:add
并且添加target:del
去动态修改target配置qt_add_static_plugins()
接口去支持静态Qt sdkset_optimize()
设置优化选项,如果存在add_rules("mode.release")
的情况下option.add_includedirs
对cuda编译不生效xmake plugin --help
add_syslinks
接口去设置系统库依赖,分离与add_links
添加的库依赖之间的链接顺序xmake l time xmake [--rebuild]
去记录编译耗时xmake f --vs_sdkver=10.0.15063.0
去改变windows sdk版本lib.luajit.ffi
和lib.luajit.jit
扩展模块-D
和--diagnosis
去替换--backtrace
,改进诊断信息显示add_packages("xxx", {links = {}})
has_config
, get_config
和is_config
接口去快速判断option和配置值set_config
接口去设置默认配置$xmake --try
去尝试构建工程set_enabled(false)
去显示的禁用targetadd_requires("tbox ~1.6.1")
add_files()
在windows上支持大小写不敏感路径模式匹配detect.sdks.find_qt
对于Qt根目录的探测lib.detect.find_package
支持vcpkg$ xmake f --menu
中Exit问题以及cpu过高问题set_tools
和add_tools
接口为指定target目标设置编译工具链mode.debug
, mode.release
, mode.profile
和mode.check
is_mode
, is_arch
和is_plat
内置接口到自定义脚本域qt.console
, qt.application
等规则rule()
os.files
和os.dirs
接口,加速文件模式匹配make clean
add_ldflags("xx", "xx", {force = true})
强制设置多个flags的问题del_files()
接口去从已添加的文件列表中移除一些文件rule()
, add_rules()
接口实现自定义构建规则,并且改进add_files("src/*.md", {rule = "markdown"})
os.filesize()
接口core.ui.xxx
等cui组件模块,实现终端可视化界面,用于实现跟用户进行短暂的交互xmake f --menu
实现可视化菜单交互配置,简化工程的编译配置set_values
接口到optionxmake f --cc=gcc@ccmips.exe
add_cxflags
等flags api的设置,添加force参数,来禁用自动检测和映射,强制设置选项:add_cxflags("-DTEST", {force = true})
add_files
的flags设置,添加force域,用于设置不带自动检测和映射的原始flags:add_files("src/*.c", {force = {cxflags = "-DTEST"}})
os.nuldev()
在mingw上传入gcc时出现问题xmake f --cross
无法配置问题os.cd
到windows根路径问题XMAKE_LOGFILE
环境变量,启用输出到日志文件.gitignore
文件,忽略一些xmake的临时文件和目录set_config_header
接口,支持局部版本号设置,优先于全局set_version
,例如:set_config_header("config", {version = "2.1.8", build = "%Y%m%d%H%M"})
add_imports
去为target,option和package的自定义脚本批量导入模块,简化自定义脚本xmake -y/--yes
去确认用户输入xmake l package.manager.install xxx
模块,进行跨平台一致性安装软件包xmake macro ..
快速运行最近一次命令cprint()
,支持24位真彩色输出add_rpathdirs()
增加对@loader_path
和$ORIGIN
的内置变量支持,提供可迁移动态库加载set_version("x.x.x", {build = "%Y%m%d%H%M"})
支持buildversion设置COLORTERM=nocolor
环境变量开关,禁用彩色输出add_rbindings
和add_bindings
接口lib.detect.find_program
模块接口-w|--warning
参数来启用实时警告输出set_pcxxheader
编译没有继承flags配置问题os.tmpdir()
在fakeroot下的冲突问题os.getenv
在windows上的中文编码问题add_files
,支持对files粒度进行编译选项的各种配置,更加灵活。target.add_deps
接口,添加继承配置,允许手动禁止依赖继承,例如:add_deps("test", {inherit = false})
tbox.pkg
二进制依赖,直接集成tbox源码进行编译target:add
和option:add
问题/ZI
的兼容性问题,用/Zi
替代add_csnippet
,add_cxxsnippet
到option
来检测一些编译器特性find_program
, find_file
, find_library
, find_tool
和find_package
等模块接口net.*
和devel.*
扩展模块val()
接口去获取内置变量,例如:val("host")
, val("env PATH")
, val("shell echo hello")
and val("reg HKEY_LOCAL_MACHINE\\XX;Value")
has_flags
, features
和has_features
等探测模块接口option.on_check
, option.after_check
和 option.before_check
接口target.on_load
接口add_frameworkdirs
接口lib.detect.has_xxx
和lib.detect.find_xxx
接口add_moduledirs
接口在工程中定义和加载扩展模块includes
接口替换add_subdirs
和add_subfiles
xmake project -k compile_commands
来导出compile_commands.json
set_pcheader
和set_pcxxheader
去支持跨编译器预编译头文件,支持gcc
, clang
和msvc
xmake f -p cross
平台用于交叉编译,并且支持自定义平台名includes
和 links
import
接口,去加载用户扩展模块xmake lua
,支持运行单行命令和模块print
接口去更好些显示table数据--root
通用选项去临时支持作为root运行xxx_script
工程描述api,支持多平台模式选择, 例如:on_build("iphoneos|arm*", function (target) end)
*.asm
文件的支持add_bindings
和add_rbindings
为废弃接口xmake rebuild
在windows上的构建速度core.project.task
模块迁移至core.base.task
echo
和 app2ipa
插件迁移到 xmake-plugins 仓库set_config_header("config.h", {prefix = ""})
代替 set_config_h
和 set_config_h_prefix
try-catch-finally
get.sh
的路径问题import()
导入接口的缓存问题add_subdirs
中的子xmake.lua
中,使用独立子作用域,避免作用域污染导致的干扰问题xmake --help
输出.xmake
目录,如果不在工程中的时候sudo make install
命令权限问题os.host
, os.arch
等接口cprint
色彩打印中断问题set_default
接口用于修改默认的构建所有targets行为xmake
命令进行构建,xmake会自动检测所在的工程根目录add_rpathdirs
api到target和option,支持动态库的自动加载运行xmake install
and xmake uninstall
任务,更友好的处理root安装问题rpm
, deb
和osxpkg
安装包xmake.lua
时,添加更友好的用户提示,避免用户无操作armv8-a
架构失败问题yaourt
包管理器进行安装。--links
, --linkdirs
and --includedirs
配置参数xmake.lua
工程描述增加dictionay语法风格xmake.lua
等工程描述文件的情况下,也能直接快速编译xmake.lua
工程描述添加set_xmakever
接口,更加友好的处理版本兼容性问题objc
和swift
程序添加add_frameworks
接口golang
, dlang
和rust
程序构建的支持target_end
, option_end
和task_end
等可选api,用于显示结束描述域,进入根域设置,提高可读性golang
, dlang
和rust
工程模板os.run
, os.exec
, os.cp
, os.mv
和 os.rm
等接口,支持通配符模式匹配和批量文件操作-q|--quiet
选项实现静默构建makefile
生成插件,抽取编译工具和编译选项到全局变量os.iorun
返回数据不对问题core/tools
目录以及msys工具链,在windows上使用xmake自编译core源码进行安装,优化xmake源码磁盘空间xmake/packages
,默认模板安装不再内置二进制packages,暂时需要手动放置,以后再做成自动包依赖下载编译-def:xxx.def
xmake.lua
中添加原生shell支持,例如:add_ldflags("$(shell pkg-config --libs sqlite3)")
getenv
接口到xmake.lua
的全局作用域中set_default
接口*.cxx
编译失败问题xmake run -d program ...
windows/linux/macosx
等大部分pc平台import
根目录错误问题add_files("*.a")
,修复一些bug--sdk=xxx
参数实现更加方便智能的进行交叉编译配置,简化mingw平台的编译配置xmake config --xxx=[y|n|yes|no|true|false]
等开关值add_files
接口,支持直接添加*.o/obj/a/lib
文件,并且支持静态库的合并Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》