Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eliasku/hxmake
Build automation for Haxe
https://github.com/eliasku/hxmake
Last synced: 25 days ago
JSON representation
Build automation for Haxe
- Host: GitHub
- URL: https://github.com/eliasku/hxmake
- Owner: eliasku
- Created: 2016-07-03T21:27:38.000Z (over 8 years ago)
- Default Branch: develop
- Last Pushed: 2021-01-20T07:32:08.000Z (almost 4 years ago)
- Last Synced: 2024-10-15T02:46:32.371Z (2 months ago)
- Language: Haxe
- Size: 6.83 MB
- Stars: 29
- Watchers: 9
- Forks: 7
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# hxmake
Build tools for Haxe[![Build Status](https://travis-ci.org/eliasku/hxmake.svg?branch=develop)](https://travis-ci.org/eliasku/hxmake)
[![Build Status](https://ci.appveyor.com/api/projects/status/lxmpp7d9pfoyd7dq/branch/develop?svg=true)](https://ci.appveyor.com/project/eliasku/hxmake)[![Lang](https://img.shields.io/badge/language-haxe-orange.svg)](http://haxe.org)
[![Version](https://img.shields.io/badge/version-v0.2.5-green.svg)](https://github.com/eliasku/hxmake)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](http://opensource.org/licenses/MIT)### Installation
```
haxelib install hxmake
haxelib run hxmake _
```
_Enter system password if required to install alias_### Usage
`hxmake` - run hxmake
`hxmake _` - rebuild hxmake tool and reinstall command-line alias
`hxmake all arguments you need` - usage
`hxmake idea haxe` - run `idea` and `haxe` tasks for project
### Examples
- General multi-module project: https://github.com/eliasku/hxmake-example
- `hxmake` library module: https://github.com/eliasku/hxmake/blob/develop/make/HxMake.hx### Running steps and environment
1. Linked modules are scanned from current-working-directory (Haxe compiler)
2. Build scripts class-path are added at compile-time (Haxe compiler)
3. Compiled make program is running (Haxe interpreter or Neko stand-alone application)# Status
Is under development# What is hxmake about
1. Delivering make scripts and building tasks for Haxe projects
2. Haxe language for everything: makes, tasks, plugins, whatever
3. Should run on MacOS / Windows / Linux### Cache your make program cases
You able to add `--haxe` to arguments, in this case hxmake will be runned in compile-time on `macro` context,
By default file `make.n` will be generated and executed with your current `neko`. This program will include all your built-in arguments,
but you able to run it with additional arguments. You need to recompile your make if you modify your make-scripts or
change your project in multi-module perspective.Regular make program:
`hxmake` - just build your make program
`neko make.n test --override-test-target=js` - for example, run your make program with additional arguments
Specified make program:
`hxmake test --override-test-target=js` - build make program which will always run `test` task for `js` target
`neko make.n --override-test-target=flash` - and run your `test` task, but for `js` and `flash` target
### Built-in Tasks
`hxmake _` - Rebuild and install `hxmake` binary
`hxmake modules` - Prints modules in structure of project
`hxmake tasks` - Prints list of available tasks
### Built-in Options
`--verbose`: Enables `debug` and `trace` log levels
`--silent`: Mute logger output
`--make-compiler-log`: Enables compile-time logging from `CompileTime.log`
`--make-compiler-mode`: Run make in haxe compiler-mode `--interp` (EXPEREMENTAL)
`--make-compiler-time`: Show Haxe compiler time statistics, adds `--times -D macro-times`
### Logging
Use `MakeLog` or `project.logger` methods for logging in your tasks.
Use `CompileTime.log` for compilation logging.### Development
- Install with `haxelib` from git repository
```
haxelib git hxmake https://github.com/eliasku/hxmake.git
```
- or checkout manually and set to local directory using `haxelib dev` command
```
haxelib dev hxmake path/to/hxmake
```
- Then do initial rebuild command
```
haxelib run hxmake _
```### Task running details
Task will be ran in current working directory of associated module.Default Task / Sub-Tasks / Functions running order:
1. Sub-Tasks added with `prepend` method.
2. Functions registered with `doFirst` method.
3. Task's `run` logic.
4. Functions registered with `doLast` method.
5. Sub-Tasks added with `then` method.