A make-like build utility based on Lua
-
## Introduction xmake is a make-like 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. * [Website](http://xmake.io) * [Github](https://github.com/waruqi/xmake) ####Features - Create projects and supports many project templates - Support c/c++, objc/c++, swift and assembly language - Automatically probe the host environment and configure project - Provide some built-in actions (config, build, package, clean, install, uninstall and run) - Provide some built-in plugins (doxygen, macro, project) - Provide some built-in macros (batch packaging) - Describe the project file using lua script, more flexible and simple - Custom packages, platforms, plugins, templates, tasks, macros, options and actions - Do not generate makefile and build project directly - Support multitasking with argument: -j ####Actions - config: Configure project before building. - global: Configure the global options for xmake. - build: Build project. - clean: Remove all binary and temporary files. - create: Create a new project using template. - package: Package the given target - install: Install the project binary files. - uninstall: Uninstall the project binary files. - run: Run the project target. ####Plugins - The doxygen plugin: Make doxygen document from source codes - The macro plugin: Record and playback commands - The hello plugin: A simple plugin demo to show 'hello xmake!' - The project plugin: Create the project file for IDE (.e.g makefile and vs, xcode in the feature ...) ####Languages - C/C++ - Objc/Objc++ - Swift - Assembly ####Platforms - Windows (x86, x64, amd64, x86_amd64) - 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) ####In the plans - Manage package and dependence - Download package automaticlly - Create package repository for porting other third-party source codes, it's goal is that one people port it and many people shared. - Implement more plugins - Create more project file for IDE (.e.g vs, xcode ..) ####Examples Create a c++ console project: xmake create -l c++ -t 1 console or xmake create --