This website works better with JavaScript
Changelog
v2.9.9
New features
#6137 : IDE integration
#6138 : Use libxmake to build binary with xmake lua apis
#6154 : Add kotlin language and kotlin-native compiler and packages support
#6279 : Add msvc midl support
Changes
#6182 : Support msstl modules for clang
#6281 : Support Verilator target build to shared library
#6270 : Improve conan generator
#6243 : Improve llvm toolchain to support for cross platform
Support for CMake 4.0
Bugs fixed
#6292 : Fix namespace issue
v2.9.8
New features
#5994 : Profile process performance
#5995 : Add profile support for vs generator
#5949 : Add rule nodejs.module
#3380 : Add namespace support
#5945 : Check pkgconfig/cmake importfiles for package
#6054 : Add xmake bundle for linux
#6071 : Improve to download package for git url, support for sparse-checkout
#5163 : Support TI-CGT C2000/C6000 compiler
#5344 : Support IAR ARM C/C++ compiler
#5554 : Add custom unknown toolchains support
Changes
#6056 : Build and release xmake/arm64 on windows.
#6097 : Add qt_host Option to Enable Cross-Platform Qt Builds Using Host SDK Tools
#6120 : Add custom preprocessor for configfiles
#6088 : Improve configfiles to generate export macro
Bugs fixed
#272 : Fix xmake stuck when readfile always return zero for msvc + /O1
#6089 : Fix depend.is_changed for cuda
v2.9.7
New features
#5813 : Add before_config and after_config for rule
#5848 : Support custom MSVC build tools, e.g. PortableBuildTools and msvc-wine
#5880 : Use msvc package to build project
#5884 : Add installtips for package
#5894 : Add package.merge_staticlibs policy to merge package libs
#5948 : Add lua.native-object rule
#5911 : Support for nuget packages
Changes
#5817 : Improve default pic for packages
#5869 : Add libstdc++ standard library modules support for gcc
#5923 : Solve the package version and configs conflict
Bugs fixed
#5856 : Fix compile c++modules for clang
#5858 : Fix the precompiled header for gcc
v2.9.6
New features
#5527 : Add set_policy("compatibility.version", "3.0") to preview v3.0 features.
#5649 : Add package.check_fcsnippets
Changes
#5631 : Add as_needed for add_linkgroups
#5702 : Improve hash module
#5688 : Improve hashset module
#5711 : Support to parse include deps for sdcc
#5727 : Improve configs for add_requires
#5762 : Improve bin2c speed
Bugs fixed
#5645 : Fix xmake watch for linux
#5686 : Fix module scanning
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 [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
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