This is a mirror page, please see the original page:
https://xmake.io/#/about/changelog
Changelog
v2.9.5
New features
- #5462: Add
xmake l cli.bisect
- #5488: Support for using cosmocc to build xmake binary
- #5491: Provide single xmake binary with embeded lua files
- #5580: Add
@builtin/xrepo
to add envs for xrepo env shell
Changes
- #5507: Use treeless to improve git.clone
- #5536: Add jar generate in swig mode
- #5573: Improve vsxmake generator performance
- #5601: Improve utils.symbols.export_all rule to filter sourcefile path
Bugs fixed
- #4750: Fix compile_commands generator for
xmake tests
- #5465: Fix lock package requires
- #4760: Fix distcc client issue
v2.9.4
New features
- #5278: Add
build.intermediate_directory
policy to disable and custom intermediate directory
- #5313: Add windows arm/arm64ec support
- #5296: Add Intel LLVM Fortran Compiler support
- #5384: Add
add_bindirs
for package
Changes
- #5280: Add missing C++20 Modules file extension
- #5251: Update 7z/curl for windows installer
- #5286: Improve json to parse hex string
- #5302: Improve Vala support
- #5335: Improve
xmake install
and xpack
, Add set_prefixdir
api for target
- #5387: Improve
xmake test
- #5376: Improve module objectfiles handling and moduleonly package
Bugs Fixed
- #5288: Fix
xmake test
for unity build
- #5270: Fix pch/include for gcc/clang
- #5276: Fix find vc6
- #5259: Fix the failure of the command line completion function
v2.9.3
New features
- #4637: Add mix generator for xpack
- #5107: Add deb generator for xpack
- #5148: Add on_source in package
Changes
- #5156: Improve to install cargo packages for rust
Bugs fixed
- #5176: Fix VS toolset v144
v2.9.2
New features
- #5005: Show all apis
- #5003: Add build.fence policy
- #5060: Support Verilator target build to static library
- #5074: Add
xrepo download
command to download package source
- #5086: Add check support for package
- #5103: Add qt ts files building
- #5104: Call where in find_program
Changes
- #5077: Use x64 host compiler for msvc when building x86 target
- #5109: Support runpath/rpath for add_rpathdirs
- #5132: Improve ifort/icc/icx support on windows
Bugs Fixed
- #5059: Fix load huge targets stuck
- #5029: Fix crash on termux
v2.9.1
New features
- #4874: Add Harmony SDK support
- #4889: Add signal module to register signal handler in lua
- #4925: Add native modules support
- #4938: Support for cppfront/h2
Changes
- Improve packages to support for clang-cl
- #4893: Improve rc includes deps
- #4928: Improve to build and link speed
- #4931: Update pdcurses
- #4973: Improve to select script
Bugs fixed
- #4882: Fix install deps with --group
- #4877: Fix compile error for xpack with unity build
- #4887: Fix object deps
v2.8.9
New features
- #4843: Endianness/Byte-order detection on build machine
Changes
- #4798: Improve wasi sdk detect
- #4772: Improve tools.cmake to support vs2022 preview (v144)
- #4813: Add gb2312 encoding
- #4864: Improve to extract symbols for gdb
- #4831: Allow target:fileconfig() for headerfiles
- #4846: Improve to show progress
Bugs Fixed
- Fix select_script match pattern
- #4763: Fix {force = true}
- #4807: Fix nimble::find_package
- #4857: Fix parse basic options
v2.8.8
Changes
- Add
package:check_sizeof()
Bugs Fixed
- #4774: Fix android symbol strip
- #4769: Fix cross toolchain and format
- #4776: Fix soname for linux
- #4638: Fix vsxmake with --menu config
v2.8.7
New features
- #4544: Support to wait process timeout for
xmake test
- #4606: Add
add_versionfiles
api in package
- #4709: Add cosmocc toolchain support
- #4715: Add is_cross() api in description scope
- #4747: Add
build.always_update_configfiles
policy
Changes
- #4575: Check invalid scope name
- Add more loong64 support
- Improve dlang/dmd support for frameworks
- #4571: Improve
xmake test
output
- #4609: Improve to detect vs build tool envirnoments
- #4614: Support android ndk 26b
- #4473: Enable warning output by default
- #4477: Improve runtimes to support libc++/libstdc++
- #4657: Improve to select script pattern
- #4673: Refactor modules support
- #4746: Add native modules support for cmake generator
Bugs Fixed
- #4596: Fix remote build cache
- #4689: Fix deps inherit
v2.8.6
New features
- Add
network.mode
policy
- #1433: Add
xmake pack
command to generate NSIS/zip/tar.gz/rpm/srpm/runself packages like cmake/cpack
- #4435: Support batchsize for UnityBuild in Group Mode
- #4485: Support package.install_locally
- Support NetBSD
Changes
- #4484: Improve swig rule
- Improve Haiku support
Bugs fixed
v2.8.5
New features
- #1452: Improve link mechanism and order
- #1438: Support code amalgamation
- #3381: Add
xmake test
support
- #4276: Support custom scope api
- #4286: Add Apple XROS support
- #4345: Support check sizeof
- #4369: Add windows.manifest.uac policy
Changes
- #4284: Improve builtin includes
Bugs fixed
- #4256: Fix intellisense for vsxmake/c++modules
v2.8.3
New features
- #4122: Support Lua Debugger (EmmyLua)
- #4132: Support cppfront
- #4147: Add hlsl2spv rule
- #4226: Support sanitizers for package and policy
- Add lib.lua.package module
- Add
run.autobuild
policy
- Add global policies
xmake g --policies=
Changes
- #4119: Improve to support emcc toolchain and emscripten package
- #4154: Add
xmake -r --shallow target
to rebuild target without deps
- Add global ccache storage directory
- #4137: Support Qt6 for Wasm
- #4173: Add recheck argument to on_config
- #4200: Improve remote build to support debugging xmake source code.
- #4209: Add extra and pedantic warnings
Bugs fixed
- #4110: Fix extrafiles
- #4115: Fix compile_commands generator for clangd
- #4199: Fix compile_commands generator for c++ modules
- Fix os.mv fail on window
- #4214: Fix rust workspace build error
v2.8.2
New features
- #4002: Add soname and version support
- #1613: Add avx512 and sse4.2 for add_vectorexts
- #2471: Add set_encodings to set source/target encodings
- #4071: Support the stm8 assembler on the sdcc toolchain.
- #4101: Add force includes for c/c++
- #2384: Add extrafiles for vs/vsxmake generator
Changes
- #3960: Improve msys2/crt64 support
- #4032: Remove some old deprecated apis
- Improve to upgrade vcproj files in tools.msbuild
- Support add_requires("xmake::xxx") package
- #4049: Improve rust to support cross-compilation
- Improve clang modules support
Bugs fixed
- Fix exit all child processes on macOS/Linux
v2.8.1
New features
- #3821: Add longpath option for windows installer
- #3828: Add support for zypper package manager
- #3871: Improve tools.msbuild to support for upgrading vsproj
- #3148: Support grpc for protobuf
- #3889: Support to add library path for add_links
- #3912: Add set_pmxxheader to support objc precompiled header
- add_links support library file path
Changes
- #3752: Improve os.getenvs for windows
- #3371: Improve tools.cmake to support ninja generator for wasm
- #3777: Improve to find package from pkg-config
- #3815: Improve tools.xmake to pass toolchains for windows
- #3857: Improve to generate compile_commands.json
- #3892: Improve to search packages from description
- #3916: Improve to build swift program, support for multiple modules
- Update lua runtime to 5.4.6
Bugs fixed
- #3755: Fix find_tool from xmake/packages
- #3787: Fix packages from conan 2.x
- #3839: Fix vs_runtime for conan 2.x
v2.7.9
New features
- #3613: Add
wasm.preloadfiles
configuration for wasm
- #3703: Support for conan >=2.0.5
Changes
- #3669: Improve cmake generator to support add_cxflags with the given tool
- #3679: Improve
xrepo clean
- #3662: Improve cmake/make generator for lex/yacc project
- #3697: Improve trybuild/cmake
- #3730: Improve c++modules package installation
Bugs fixed
- #3596: Fix check_cxxfuncs and check_cxxsnippets
- #3603: Fix
xmake update
- #3614: Fix qt envirnoment when running target
- #3628: Fix msys2/mingw setenv and os.exec issue
- Fix setenv for msys/mingw
v2.7.8
New features
- #3518: Profile compile and link performance
- #3522: Add has_cflags, has_xxx for target
- #3537: Add --fix for clang.tidy checker
Changes
- #3433: Improve to build Qt project on msys2/mingw64 and wasm
- #3419: Support fish shell envirnoment
- #3455: Dlang incremental build support
- #3498: Improve to bind package virtual envirnoments
- #3504: Add swig java support
- #3508: Improve trybuild/cmake to support for switching toolchain
- disable build cache for msvc, because msvc's preprocessor is too slow.
Bugs fixed
- #3436: Fix complete and menuconf
- #3463: Fix c++modules cache issue
- #3545: Fix parsedeps for armcc
v2.7.7
New features
- Add Haiku support
- #3326: Add
xmake check
to check project code (clang-tidy) and configuration
- #3332: add custom http headers when downloading packages
Changes
- #3318: Improve dlang toolchains
- #2591: Improve target analysis
- #3342: Improve to configure working and build directories
- #3373: Improve std modules support for clang-17
- Improve to strip/optimization for dmd/ldc2
Bugs fixed
- #3317: Fix languages for qt project.
- #3321: Fix dependfile when generating configiles
- #3296: Fix build error on macOS arm64
v2.7.6
New features
- #3228: Add support of importing modules from packages
- #3257: Add support for iverilog and verilator
- Support for xp and vc6.0
- #3214: Completion on xrepo install packages
Changes
- #3255: Improve clang libc++ module support
- Support for compiling xmake using mingw
- Improve compatibility issues with xmake running on win xp
- Add pure lua json implementation instead of lua-cjson if the external dependencies are enabled
Bugs fixed
- #3229: Fix find rc.exe for vs2015
- #3271: Fix macro defines with spaces
- #3273: Fix nim link error
- #3286: Fix compile_commands for clangd
v2.7.5
New features
- #3201: Add completer and xrepo complete
- #3233: Add MASM32 sdk toolchain
Changes
- #3216: Add intel one api toolkits detection
- #3020: Add
--lsp=clangd
to improve to generate compile_commands.json
- #3215: Add includedirs and defines to c51
- #3251: Improve to build zig and c program
Bugs fixed
- #3203: Fix compile_commands
- #3222: Fix precompiled headers in ObjC
- #3240: Fix target run with single arguments
- #3238: Fix clang module mapper
v2.7.4
New features
- #3049: Add
xmake format
plugin
- Add
plugin.compile_commands.autoupdate
rule
- #3172: Add xmake.sh
- #3168: add support of C++23 standard modules on msvc
Changes
- #3056: Improve zig support
- #3060: Improve to detect msys2 for clang toolchains envirnoment
- #3071: Support rc for llvm/clang toolchain
- #3122: Generate dependencies of preprocessed modules to avoid importing #ifdef import
- #3125: Compile private C++20 modules
- #3133: Add support of internal partitions
- #3146: Add default components for packages
- #3192: JSON output for auto complete
Bugs fixed
- Fix requires-lock bug
- #3065: Fix missing package dependences
- #3082: Fix build.ninja generator
- #3092: Fix xrepo add-repo error handing
- #3013: Fix and support windows UNC path
- #2902: Fix file not access by another process occupied
- #3074: Fix CMakelists generator
- #3141: Fix import order on GCC and force it on clang and msvc #3141
- Fix tools/xmake package build directory
- #3159: Fix compile_commands for CLion
v2.7.3
New features
- A new optional configuration syntax. It is LSP friendly, automatically calls target_end() to achieve scope isolation.
- #2944: Add
gnu-rm.binary
and gnu-rm.static
rules and tests for embed project
- #2636: Support package components
- Support armasm/armasm64 for msvc
- #3023: Add support for debugging with renderdoc
- #3022: Add flags for specific compilers and linkers
- #3025: C++ exception enabled/disabled switch method
- #3017: Support ispc compiler
Changes
- #2925: Improve doxygen plugin
- #2948: Support OpenBSD
- Add
xmake g --insecure-ssl=y
option to disable ssl certificate when downloading packages
- #2971: Stabilize vs and vsxmake project generation
- #3000: Incremental compilation support for modules
- #3016: Improve clang/msvc to better support std modules
Bugs fixed
- #2949: Fix vs group
- #2952: Fix armlink for long args
- #2954: Fix c++ module partitions path issue
- #3033: Detect circular modules dependency
v2.7.2
New features
- #2140: Support Windows Arm64
- #2719: Add
package.librarydeps.strict_compatibility
to strict compatibility for package linkdeps
- #2810: Support os.execv to run shell script file
- #2817: Improve rule to support dependence order
- #2824: Pass cross-file to meson.install and trybuild
- #2856: Improve to debug package using the debug source directory
- #2859: Improve trybuild to build 3rd source library using xmake-repo scripts
- #2879: Support for dynamic creation and injection of rules and targets in script scope
- #2374: Allow xmake package to embed rules and scripts
- Add clang-cl toolchain
Changes
- #2745: Improve os.cp to support symlink
- #2773: Improve vcpkg packages to support freebsd
- #2778: Improve Improve xrepo.env for target
- #2783: Add digest algorithm option for wdk signtool
- #2787: Improve json to support empty array
- #2782: Improve to find matlab and runtime
- #2793: Improve mconfdialog
- #2804: Support macOS arm64/x86_64 cross-compilation for installing packages
- #2809: Improve cl optimization option
- Improve trybuild for meson/cmake/autoconf
- #2846: Improve to generate config files
- #2866: Better control over the order of execution of rules
Bugs fixed
- #2740: Fix build c++ modules stuck and slower for msvc
- #2875: Fix build linux driver error
- #2885: Fix pch not found with msvc/ccache
v2.7.1
New features
- #2555: Add fwatcher module and
xmake watch
plugin command
- Add
xmake service --pull 'build/**' outputdir
to pull the given files in remote server
- #2641: Improve C++20 modules, support headerunits and project generators
- #2679: Support Mac Catalyst
Changes
- #2576: More flexible package fetching from cmake
- #2577: Improve add_headerfiles(), add
{install = false}
support
- #2603: Disable
-fdirectives-only
for ccache by default
- #2580: Set stdout to line buffering
- #2571: Improve task scheduling for parallel and distributed compilation based on memory/cpu usage
- #2410: Improve cmakelists generator
- #2690: Improve to pass toolchains to packages
- #2686: Support for incremental compilation and parse header file deps for keil/armcc/armclang
- #2562: Improve include deps for rc.exe
- Improve the default parallel building jobs number
Bugs fixed
- #2614: Fix building submodules2 tests for msvc
- #2620: Fix build cache for incremental compilation
- #2177: Fix python.library segmentation fault for macosx
- #2708: Fix link error for mode.coverage rule
- Fix rpath for macos/iphoneos frameworks and application
v2.6.9
New features
- #2474: Add icx and dpcpp toolchains
- #2523: Improve LTO support
- #2527: Add set_runargs api
Changes
- Improve tools.cmake to support wasm
- #2491: Fallback to local compiler/cache from remote if server is unreachable
- #2514: Disable Unity Build for project generator
- #2473: Improve apt::find_package to find it from pc files
- #2512: Improve remote service to support timeout configuration
Bugs fixed
- #2488: Fix remote compilation from windows to linux
- #2504: Fix remote build bug on msys2/cygwin
- #2525: Fix install package deps and stuck
- #2557: Fix cmake.find_package links bug
- Fix cache-induced path conflicts in preprocessed files
v2.6.8
New features
- #2447: Add qt.qmlplugin rule and support of qmltypesregistrar
- #2446: Support target group for
xmake install
- #2469: Generate vcpkg-configuration.json
Changes
- Add
preprocessor.linemarkers
policy to disable linemarkers to speed up ccache/distcc
- #2389: Improve
xmake run
to parallel running of targets
- #2417: Switch the default value of option/showmenu
- #2440: Improve package installation error messages
- #2438: Make sure the solution and project file unchanged by sorting those tables
- #2434: Improve plugins manager, allow to handle multiples plugin repositories
- #2421: Improve config option menu
- #2425: Add
preprocessor.gcc.directives_only
policy
- #2455: Improve optimize options for emcc
- #2467: Add compile fallback for msvc/ccache
- #2452: Add build.warning policy
Bugs Fixed
- #2435: fix the search bug when the package name has an extension name.
- #2445: Fix ccache bug for msvc
- #2452: Fix warnings output for ccache
v2.6.7
New features
- #2318: Add
xmake f --policies=
config argument to modify project policies
Changes
- fallback to source code build if the precompiled package is error
- #2387: Improve pkgconfig and find_package
- Add
build.ccache
policy
Bugs fixed
- #2382: Fix headeronly package configs
- #2388: Fix path bug
- #2385: Fix cmake/find_package
- #2395: Fix c++modules
- Fix find_qt bug
v2.6.6
New features
- #2327: Support nvc/nvc++/nvfortran in nvidia-hpc-sdk
- Add path instance interfaces
- #2344: Add lz4 compress module
- #2349: Add keil/c51 project support
- #274: Distributed compilation support
- Use builtin local cache instead of ccache
Changes
- #2309: Support user authorization for remote compilation
- Improve remote compilation to support lz4 compression
Bugs fixed
- Fix lua stack when select package versions
v2.6.5
New features
- #2138: Support template package
- #2185: Add
--appledev=simulator
to improve apple simulator support
- #2227: Improve cargo package with Cargo.toml file
- Improve
add_requires
to support git commit as version
- #622: Support remote compilation
- #2282: Add
add_filegroups
to support file group for vs/vsxmake/cmake generator
Changes
- #2137: Improve path module
- Reduce 50% xmake binary size on macOS
- Improve tools/autoconf,cmake to support toolchain switching.
- #2221: Improve registry api to support unicode
- #2225: Support to parse import dependencies for protobuf
- #2265: Sort CMakeLists.txt
- Speed up
os.files
Bugs fixed
- #2233: Fix c++ modules deps
v2.6.4
New features
- #2011: Support to inherit base package
- Support to build and run xmake on sparc, alpha, powerpc, s390x and sh4
- Add on_download for package()
- #2021: Support Swift for linux and windows
- #2024: Add asn1c support
- #2031: Support linker scripts and version scripts for add_files
- #2033: Catch ctrl-c to get current backtrace for debugging stuck
- #2059: Add
xmake update --integrate
to integrate for shell
- #2070: Add built-in xrepo environments
- #2117: Support to pass toolchains to package for other platforms
- #2121: Support to export the given symbols list
Changes
- #2036: Improve xrepo to install packages from configuration file, e.g.
xrepo install xxx.lua
- #2039: Improve filter directory for vs generator
- #2025: Support phony and headeronly target for vs generator
- Improve to find vstudio and codesign speed
- #2077: Improve vs project generator to support cuda
Bugs fixed
- #2005: Fix path.extension
- #2008: Fix windows manifest
- #2016: Fix object filename confict for vs project generator
v2.6.3
New features
- #1298: Support vcpkg manifest mode and select version for package/install
- #1896: Add
python.library
rule to build pybind modules
- #1939: Add
remove_files
, remove_headerfiles
and mark del_files
as deprecated
- Made on_config as the official api for rule/target
- Add riscv32/64 support
- #1970: Add CMake wrapper for Xrepo C and C++ package manager.
- Add builtin github mirror pac files,
xmake g --proxy_pac=github_mirror.lua
Changes
- #1923: Improve to build linux driver, support set custom linux-headers path
- #1962: Improve armclang toolchain to support to build asm
- #1959: Improve vstudio project generator
- #1969: Add default option description
Bugs fixed
- #1875: Fix deploy android qt apk issue
- #1973: Fix merge static archive
v2.6.2
New features
- #1902: Support to build linux kernel driver modules
- #1913: Build and run targets with given group pattern
Change
- #1872: Escape characters for set_configvar
- #1888: Improve windows installer to avoid remove other files
- #1895: Improve
plugin.vsxmake.autoupdate
rule
- #1893: Improve to detect icc and ifort toolchains
- #1905: Add support of external headers without experimental for msvc
- #1904: Improve vs201x generator
- Add
XMAKE_THEME
envirnoment variable to switch theme
- #1907: Add
-f/--force
to force to create project in a non-empty directory
- #1917: Improve to find_package and configurations
Bugs fixed
- #1885: Fix package:fetch_linkdeps
- #1903: Fix package link order
v2.6.1
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
v2.5.9
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
v2.5.8
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
v2.5.7
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
v2.5.6
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_defaultarchs
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
v2.5.5
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
v2.5.4
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
v2.5.3
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
v2.5.2
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
v2.5.1
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
v2.3.9
New features
- Add new xrepo command to manage C/C++ packages
- Support for installing packages of cross-compilation
- Add musl.cc toolchains
- #1009: Support select and install any version package, e.g.
add_requires("libcurl 7.73.0", {verify = false})
- #1016: Add license checking for target/packages
- #1017: Support external/system include directories
add_sysincludedirs
for package and toolchains
- #1020: Support to find and install pacman package on archlinux and msys2
- Support mouse for
xmake f --menu
Change
- #997: Support to set std lanuages for
xmake project -k cmake
- #998: Support to install vcpkg packages with windows-static-md
- #996: Improve to find vcpkg directory
- #1008: Improve cross toolchains
- #1030: Improve xcode.framework and xcode.application rules
- #1051: Add
edit
and embed
to set_symbols()
only for msvc
- #1062: Improve
xmake project -k vs
plugin.
v2.3.8
New features
- #955: Add zig project templates
- #956: Add wasm platform and support Qt/Wasm SDK
- Upgrade luajit vm and support for runing on mips64 device
- #972: Add
depend.on_changed()
api to simplify adding dependent files
- #981: Add
set_fpmodels()
for math optimization mode
- #980: Support Intel C/C++ and Fortran Compiler
- #986: Support for
c11
and c17
for MSVC Version 16.8 and Above
- #979: Add Abstraction for OpenMP.
add_rules("c++.openmp")
Change
- #958: Improve mingw platform to support llvm-mingw toolchain
- Improve
add_requires("zlib~xxx")
to support for installing multi-packages at same time
- #977: Improve find_mingw for windows
- #978: Improve toolchain flags order
- Improve Xcode toolchain to support for macOS/arm64
Bugs fixed
- #951: Fix emcc support for windows
- #992: Fix filelock bug
v2.3.7
New features
- #2941: Add support for winget
- Add xmake-tinyc installer without msvc compiler for windows
- Add tinyc compiler toolchain
- Add emcc compiler toolchain (emscripten) to compiling to asm.js and WebAssembly
- #947: Add
xmake g --network=private
to enable the private network
Change
- #907: Improve to the linker optimization for msvc
- Improve to detect qt sdk environment
- #918: Improve to support cuda11 toolchains
- Improve Qt support for ubuntu/apt
- Improve CMake project generator
- #931: Support to export packages with all dependences
- #930: Support to download package without version list directly
- #927: Support to switch arm/thumb mode for android ndk
- Improve trybuild/cmake to support android/mingw/iphoneos/watchos toolchains
Bugs fixed
- #903: Fix install vcpkg packages fails
- #912: Fix the custom toolchain
- #914: Fix bad light userdata pointer for lua on some aarch64 devices
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
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
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
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
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
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
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
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
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
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
v2.2.5
New features
- Add
string.serialize
and string.deserialize
to serialize and deserialize object, function and others.
- Add
xmake g --menu
- #283: Add
target:installdir()
and set_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
and find_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
and option.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 builtin find_packages("zlib 1.x", "openssl", {xxx = ...})
api
- Mark
set_modes()
as deprecated, we use add_rules("mode.debug", "mode.release")
instead of it
- #353: Improve
target:set
, target:add
and add target: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 exists add_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
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
and lib.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
v2.2.2
New features
- Support fasm assembler
- Add
has_config
, get_config
, and is_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
v2.2.1
New features
- #158: Support CUDA Toolkit and Compiler
- Add
set_tools
and add_tools
apis to change the toolchains for special target
- Add builtin rules:
mode.debug
, mode.release
, mode.profile
and mode.check
- Add
is_mode
, is_arch
and is_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
and os.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
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 improve add_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 to option()
- 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 --cc=gcc@ccmips.exe
- #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
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 support set_config_header("config", {version = "2.1.8", build = "%Y%m%d%H%M"})
Bugs fixed
- #145: Fix the current directory when running target
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
for add_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
and add_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
v2.1.6
Changes
- Improve
add_files
to configure the compile option of the given files
- Inherit links and linkdirs from the dependent targets and options
- Improve
target.add_deps
and add inherit config, .e.g add_deps("test", {inherit = false})
- Remove the binary files of
tbox.pkg
- Use
/Zi
instead of /ZI
for msvc
Bugs fixed
- Fix target deps
- Fix
target:add
and option:add
bug
- Fix compilation and installation bug on archlinux
v2.1.5
New features
- #83: Add
add_csnippet
and add_cxxsnippet
into option
for detecting some compiler features.
- #83: Add user extension modules to detect program, libraries and files.
- Add
find_program
, find_file
, find_library
, find_tool
and find_package
module interfaces.
- Add
net.*
and devel.*
extension modules
- Add
val()
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")
- Support to compile the microsoft resource file (.rc)
- Add
has_flags
, features
and has_features
for detect module interfaces.
- Add
option.on_check
, option.after_check
and option.before_check
api
- Add
target.on_load
api
- #132: Add
add_frameworkdirs
api
- Add
lib.detect.has_xxx
and lib.detect.find_xxx
apis.
- Add
add_moduledirs
api
- Add
includes
api instead of add_subdirs
and add_subfiles
- #133: Improve the project plugin to generate
compile_commands.json
by run xmake project -k compile_commands
- Add
set_pcheader
and set_pcxxheader
to support the precompiled header, support gcc, clang, msvc
- Add
xmake f -p cross
platform and support the custom platform
Changes
- #87: Add includes and links from target deps automatically
- Improve
import
to load user extension and global modules
- #93: Improve
xmake lua
to run a single line command
- Improve to print gcc error and warning info
- Improve
print
interface to dump table
- #111: Add
--root
common option to allow run xmake command as root
- #113: Privilege manage when running as root, store the root privilege and degrade.
- Improve
xxx_script
in xmake.lua
to support pattern match, .e.g on_build("iphoneos|arm*", function (target) end)
- improve builtin-variables to support to get the value envirnoment and registry
- Improve to detect vstudio sdk and cross toolchains envirnoment
- #71: Improve to detect compiler and linker from env vars
- Improve the option detection (cache and multi-jobs) and increase 70% speed
- #129: Check link deps and cache the target file
- Support
*.asm
source files for vs201x project plugin
- Mark
add_bindings
and add_rbindings
as deprecated
- Optimize
xmake rebuild
speed on windows
- Move
core.project.task
to core.base.task
- Move
echo
and app2ipa
plugins to xmake-plugins repo.
- Add new api
set_config_header("config.h", {prefix = ""})
instead of set_config_h
and set_config_h_prefix
Bugs fixed
- Fix
try-catch-finally
- Fix interpreter bug when parsing multi-level subdirs
- #115: Fix the path problem of the install script
get.sh
- Fix cache bug for import()
v2.1.4
New features
- #68: Add
$(programdir)
and $(xmake)
builtin variables
- add
is_host
api to get current host operating system
- #79: Improve
xmake lua
to run interactive commands, read-eval-print (REPL)
Changes
- Modify option menu color.
- #71: Improve to map optimization flags for cl.exe
- #73: Attempt to get executable path as xmake's program directory
- Improve the scope of
xmake.lua
in add_subdirs
and use independent sub-scope to avoid dirty scope
- #78: Get terminal size in runtime and soft-wrap the help printing
- Avoid generate
.xmake
directory if be not in project
Bugs fixed
- #67: Fix
sudo make install
permission problem
- #70: Fix check android compiler error
- Fix temporary file path conflict
- Fix
os.host
and os.arch
interfaces
- Fix interpreter bug for loading root api
- #77: fix
cprint
no color reset eol
v2.1.3
New features
- #65: Add
set_default
api for target to modify default build and install behavior
- Allows to run
xmake
command in project subdirectories, it will find the project root directory automatically
- Add
add_rpathdirs
for target and option
Changes
- #61: Provide safer
xmake install
and xmake uninstall
task with administrator permission
- Provide
rpm
, deb
and osxpkg
install package
- #63: More safer build and install xmake
- #61: Check run command as root
- Improve check toolchains and implement delay checking
- Add user tips when scanning and generating
xmake.lua
automatically
Bugs fixed
- Fix error tips for checking xmake min version
- #60: Fix self-build for macosx and windows
- #64: Fix compile android
armv8-a
error
- #50: Fix only position independent executables issue for android program
v2.1.2
New features
- Add aur package script and support to install xmake from yaourt
- Add set_basename api for target
Changes
- Support vs2017
- Support compile rust for android
- Improve vs201x project plugin and support multi-modes compilation.
Bugs fixed
- Fix cannot find android sdk header files
- Fix checking option bug
- #57: Fix code files mode to 0644
v2.1.1
New features
- Add
--links
, --linkdirs
and --includedirs
configure arguments
- Add app2ipa plugin
- Add dictionary syntax style for
xmake.lua
- Provide smart scanning and building mode without
xmake.lua
- Add
set_xmakever
api for xmake.lua
- Add
add_frameworks
api for objc
and swift
- Support multi-languages extension and add
golang
, dlang
and rust
language
- Add optional
target_end
, option_end
, task_end
apis for scope
- Add
golang
, dlang
and rust
project templates
Changes
- Support vs2017 for the project plugin
- Improve gcc error and warning tips
- Improve lanuage module
- Improve print interface, support lua print and format output
- Automatically scan project files and generate it for building if xmake.lua not exists
- Modify license to Apache License 2.0
- Remove some binary tools
- Remove install.bat script and provide nsis install package
- Rewrite documents using docute
- Improve
os.run
, os.exec
, os.cp
, os.mv
and os.rm
interfaces and support wildcard pattern
- Optimize the output info and add
-q|--quiet
option
- Improve makefile generator, uses $(XX) variables for tools and flags
Bugs fixed
- #41: Fix checker bug for windows
- #43: Avoid to generate unnecessary .xmake directory
- Add c++ stl search directories for android
- Fix compile error for rhel 5.10
- Fix
os.iorun
bug
v2.0.5
New features
- Add some interpreter builtin-modules
- Support ml64 assembler for windows x64
Changes
- Improve ipairs and pairs interfaces and support filter
- Add filters for generating vs201x project
- Remove
core/tools
(msys toolchains) and uses xmake to compile core sources on windows
- Remove
xmake/packages
for templates
Bugs fixed
- Fix
-def:xxx.def
flags failed for msvc
- Fix ml.exe assembler script
- Fix options linking order bug
v2.0.4
New features
- Add native shell support for
xmake.lua
. .e.g add_ldflags("$(shell pkg-config --libs sqlite3)")
- Enable pdb symbol files for windows
- Add debugger support on windows (vsjitdebugger, ollydbg, windbg ... )
- Add
getenv
interface for the global scope of xmake.lua
- Add plugin for generating vstudio project file (vs2002 - vs2015)
- Add
set_default
api for option
Changes
- Improve builtin-variable format
- Support option for string type
Bugs fixed
- Fix check ld failed without g++ on linux
- Fix compile
*.cxx
files failed
v2.0.3
New features
- Add check includes dependence automatically
- Add print colors
- Add debugger support, .e.g
xmake run -d program ...
Changes
- Improve the interfaces of run shell
- Upgrade luajit to v2.0.4
- Improve to generate makefile plugin
- Optimizate the multitasking compiling speed
Bugs fixed
- Fix install directory bug
- Fix the root directory error for
import
interface
- Fix check visual stdio error on windows
v2.0.2
Changes
- Change install and uninstall actions
- Update templates
- Improve to check function
Bugs fixed
- #7: Fix create project bug with '[targetname]'
- #9: Support clang with c++11
- Fix api scope leaks bug
- Fix path bug for windows
- Fix check function bug
- Fix check toolchains failed
- Fix compile failed for android on windows
v2.0.1
New features
- Add task api for running custom tasks
- Add plugin expansion and provide some builtin plugins
- Add export ide project plugin(.e.g makefile and will support to export other projects for vs, xcode in feature)
- Add demo plugin for printing 'hello xmake'
- Add make doxygen documents plugin
- Add macro script plugin
- Add more modules for developing plugin
- Add exception using try/catch and simplify grammar for plugin script
- Add option bindings
- Show progress when building
Changes
- Rewrite interpreter for xmake.lua
- More strict syntax detection mechanism
- More strict api scope for xmake.lua
- Simplify template development
- Extend platforms, tools, templates and actions fastly
- Simplify api and support import modules
- Remove dependence for gnu make/nmake, no longer need makefile
- Optimize speed for building and faster x4 than v1.0.4
- Optimize automatic detection
- Modify some api name, but be compatible with the old version
- Optimize merging static library
- Simplify cross compilation using argument
--sdk=xxx
- Simplify boolean option for command line, .e.g
xmake config --xxx=[y|n|yes|no|true|false]
- Merge iphoneos and iphonesimulator platforms
- Merge watchos and watchsimulator platformss
Bugs fixed
- #3: ArchLinux compilation failed
- #4: Install failed for windows
- Fix envirnoment variable bug for windows
v1.0.4
New features
- Support windows assembler
- Add some project templates
- Support swift codes
- Add -v argument for outputing more verbose info
- Add apple platforms:watchos, watchsimulator
- Add architecture x64, amd64, x86_amd64 for windows
- Support switch static and share library
- Add
-j/--jobs
argument for supporting multi-jobs
Changes
- Improve
add_files
api and support to add *.o/obj/a/lib
files for merging static library and object files
- Optimize installation and remove some binary files
Bugs fixed
- #1: Install failed for win7
- Fix checking toolchains bug
- Fix install script bug
- Fix install bug for linux x86_64
v1.0.3
New features
- Add
set_runscript
api and support custom action
- Add import api and support import modules in xmake.lua, .e.g os, path, utils ...
- Add new architecture: arm64-v8a for android
Bugs fixed
- Fix api bug for
set_installscript
- Fix install bug for windows
x86_64
- Fix relative path bug