diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 256 |
1 files changed, 185 insertions, 71 deletions
@@ -1,99 +1,213 @@ ---- -search: en ---- - -<p> -<div align="center"> - <a href="https://xmake.io"> - <img width="200" heigth="200" src="https://tboox.org/static/img/xmake/logo256c.png"> - </a> - - <h1>xmake</h1> - - <div> - <a href="https://travis-ci.org/xmake-io/xmake"> - <img src="https://img.shields.io/travis/xmake-io/xmake/master.svg?style=flat-square" alt="travis-ci" /> - </a> - <a href="https://ci.appveyor.com/project/waruqi/xmake/branch/master"> - <img src="https://img.shields.io/appveyor/ci/waruqi/xmake/master.svg?style=flat-square" alt="appveyor-ci" /> - </a> - <a href="https://aur.archlinux.org/packages/xmake"> - <img src="https://img.shields.io/aur/votes/xmake.svg?style=flat-square" alt="AUR votes" /> - </a> - <a href="https://github.com/xmake-io/xmake/releases"> - <img src="https://img.shields.io/github/release/xmake-io/xmake.svg?style=flat-square" alt="Github All Releases" /> - </a> - </div> - <div> - <a href="https://github.com/xmake-io/xmake/blob/master/LICENSE.md"> - <img src="https://img.shields.io/github/license/xmake-io/xmake.svg?colorB=f48041&style=flat-square" alt="license" /> - </a> - <a href="https://www.reddit.com/r/tboox/"> - <img src="https://img.shields.io/badge/chat-on%20reddit-ff3f34.svg?style=flat-square" alt="Reddit" /> - </a> - <a href="https://gitter.im/tboox/tboox?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"> - <img src="https://img.shields.io/gitter/room/tboox/tboox.svg?style=flat-square&colorB=96c312" alt="Gitter" /> - </a> - <a href="https://t.me/tbooxorg"> - <img src="https://img.shields.io/badge/chat-on%20telegram-blue.svg?style=flat-square" alt="Telegram" /> - </a> - <a href="https://jq.qq.com/?_wv=1027&k=5hpwWFv"> - <img src="https://img.shields.io/badge/chat-on%20QQ-ff69b4.svg?style=flat-square" alt="QQ" /> - </a> - <a href="https://xmake.io/pages/donation.html#donate"> - <img src="https://img.shields.io/badge/donate-us-orange.svg?style=flat-square" alt="Donate" /> - </a> - </div> - - <p>A cross-platform build utility based on Lua</p> -</div> -</p> - -## Introduction - -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. - ## Installation -#### Master - -##### via curl +#### via curl ```bash bash <(curl -fsSL https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh) ``` -##### via wget +#### via wget ```bash bash <(wget https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh -O -) ``` -##### via powershell +#### via powershell ```bash Invoke-Expression (Invoke-Webrequest 'https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.ps1' -UseBasicParsing).Content ``` -#### Windows +## Simple description + +<img src="/assets/img/index/showcode1.png" width="40%" /> + +## Package dependences + +<img src="/assets/img/index/add_require.png" width="70%" /> + +An official xmake package repository: [xmake-repo](https://github.com/xmake-io/xmake-repo) + +## Build project + +```bash +$ xmake +``` + +## Run target + +```bash +$ xmake run console +``` + +## Debug target + +```bash +$ xmake run -d console +``` + +## Configure platform + +```bash +$ xmake f -p [windows|linux|macosx|android|iphoneos ..] -a [x86|arm64 ..] -m [debug|release] +$ xmake +``` + +## Menu configuration + +```bash +$ xmake f --menu +``` + +<img src="/assets/img/index/menuconf.png" width="80%" /> + +## Package management + +<img src="/assets/img/index/package_manage.png" width="80%" /> + +## Support platforms + +* Windows (x86, x64) +* Macosx (i386, x86_64) +* Linux (i386, x86_64, cross-toolchains ...) +* Android (armv5te, armv6, armv7-a, armv8-a, arm64-v8a) +* iPhoneOS (armv7, armv7s, arm64, i386, x86_64) +* WatchOS (armv7k, i386) +* Mingw (i386, x86_64) + +## Support Languages + +* C/C++ +* Objc/Objc++ +* Swift +* Assembly +* Golang +* Rust +* Dlang +* Cuda + +## Support Projects -##### via installer +* Static Library +* Shared Library +* Console +* Cuda Program +* Qt Application +* WDK Driver (umdf/kmdf/wdm) +* WinSDK Application -1. Download xmake windows installer from [Releases](https://github.com/xmake-io/xmake/releases) -2. Run xmake-[version].exe +## Builtin Plugins -##### via scoop +#### Macros script plugin ```bash -scoop install xmake +$ 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 ``` -#### MacOS +#### Run the custom lua script plugin ```bash -$ brew install xmake +$ xmake l ./test.lua +$ xmake l -c "print('hello xmake!')" +$ xmake l lib.detect.find_tool gcc ``` +#### Generate IDE project file plugin(makefile, vs2002 - vs2017 .. ) + +```bash +$ xmake project -k vs2017 -m "debug,release" +``` + +#### Generate doxygen document plugin + +```bash +$ xmake doxygen [srcdir] +``` + +## More Plugins + +Please download and install from the plugins repository [xmake-plugins](https://github.com/xmake-io/xmake-plugins). + +## IDE/Editor Integration + +* [xmake-vscode](https://github.com/xmake-io/xmake-vscode) + +<img src="https://raw.githubusercontent.com/tboox/xmake-vscode/master/res/problem.gif" width="60%" /> + +* [xmake-sublime](https://github.com/xmake-io/xmake-sublime) + +<img src="https://raw.githubusercontent.com/tboox/xmake-sublime/master/res/problem.gif" width="60%" /> + +* [xmake-idea](https://github.com/xmake-io/xmake-idea) + +<img src="https://raw.githubusercontent.com/tboox/xmake-idea/master/res/problem.gif" width="60%" /> + +* [xmake.vim](https://github.com/luzhlon/xmake.vim) (third-party, thanks [@luzhlon](https://github.com/luzhlon)) + +## More Examples + +Debug and release modes: + +```lua +add_rules("mode.debug", "mode.release") + +target("console") + set_kind("binary") + add_files("src/*.c") + if is_mode("debug") then + add_defines("DEBUG") + end +``` + +Download and use remote packages: + +```lua +add_requires("libuv master", "ffmpeg", "zlib 1.20.*") +add_requires("tbox >1.6.1", {optional = true, debug = true}) +target("test") + set_kind("shared") + add_files("src/*.c") + add_packages("libuv", "ffmpeg", "tbox", "zlib") +``` + +Find and use local packages: + +```lua +target("test") + set_kind("shared") + add_files("src/*.c") + on_load(function (target) + import("lib.detect.find_package") + target:add(find_package("zlib")) + target:add(find_package("openssl")) + end) +``` + +## Project Examples + +Some projects using xmake: + +* [tbox](https://github.com/tboox/tbox) +* [gbox](https://github.com/tboox/gbox) +* [vm86](https://github.com/tboox/vm86) +* [more](https://github.com/tboox/awesome-xmake) + +## Example Video + +<a href="https://asciinema.org/a/133693"> +<img src="https://asciinema.org/a/133693.png" width="60%" /> +</a> + +## Contacts + +* Email:[waruqi@gmail.com](mailto:waruqi@gmail.com) +* Homepage:[tboox.org](https://tboox.org) +* Community:[/r/tboox on reddit](https://www.reddit.com/r/tboox/) +* ChatRoom:[Char on telegram](https://t.me/tbooxorg), [Chat on gitter](https://gitter.im/tboox/tboox?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +* Source Code:[Github](https://github.com/xmake-io/xmake), [Gitee](https://gitee.com/tboox/xmake) |
