xmake is a cross-platform build utility based on lua.
The project focuses on making development and building easier and provides many features (.e.g package, install, plugin, macro, action, option, task ...),
so that any developer can quickly pick it up and enjoy the productivity boost when developing and building project.
If you want to known more, please refer to:
_
__ ___ __ __ __ _| | ______
\ \/ / | \/ |/ _ | |/ / __ \
> < | \__/ | /_| | < ___/
/_/\_\_|_| |_|\__ \|_|\_\____|
by ruki, tboox.org
bash <(curl -fsSL https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh)
bash <(wget https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh -O -)
Invoke-Expression (Invoke-Webrequest 'https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.ps1' -UseBasicParsing).Content
An official xmake package repository: xmake-repo
$ xmake
$ xmake run console
$ xmake run -d console
$ xmake f -p [windows|linux|macosx|android|iphoneos ..] -a [x86|arm64 ..] -m [debug|release]
$ xmake
$ xmake f --menu
$ xmake m -b # start to record
$ xmake f -p iphoneos -m debug
$ xmake
$ xmake f -p android --ndk=~/files/android-ndk-r16b
$ xmake
$ xmake m -e # stop to record
$ xmake m . # playback commands
$ xmake l ./test.lua
$ xmake l -c "print('hello xmake!')"
$ xmake l lib.detect.find_tool gcc
$ xmake project -k vs2017 -m "debug,release"
$ xmake doxygen [srcdir]
Please download and install from the plugins repository xmake-plugins.
Debug and release modes:
add_rules("mode.debug", "mode.release")
target("console")
set_kind("binary")
add_files("src/*.c")
if is_plat("windows", "mingw") then
add_defines("XXX")
end
Custom script:
target("test")
set_kind("static")
add_files("src/*.cpp")
after_build(function (target)
print("build %s ok!", target:targetfile())
end)
Extension Modules:
target("test")
set_kind("shared")
add_files("src/*.c")
on_load(function (target)
import("lib.detect.find_package")
target:add(find_package("zlib"))
end)
Some projects using xmake:
This project exists thanks to all the people who have contributed:
Thank you to all our backers! 🙏 [Become a backer]
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]