https://github.com/eliasku/hxmake
Build automation for Haxe
https://github.com/eliasku/hxmake
Last synced: 5 months ago
JSON representation
Build automation for Haxe
- Host: GitHub
- URL: https://github.com/eliasku/hxmake
- Owner: eliasku
- Created: 2016-07-03T21:27:38.000Z (about 10 years ago)
- Default Branch: develop
- Last Pushed: 2021-01-20T07:32:08.000Z (over 5 years ago)
- Last Synced: 2025-08-17T16:34:57.060Z (11 months ago)
- Language: Haxe
- Size: 6.83 MB
- Stars: 29
- Watchers: 8
- Forks: 7
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# hxmake
Build tools for Haxe
[](https://travis-ci.org/eliasku/hxmake)
[](https://ci.appveyor.com/project/eliasku/hxmake)
[](http://haxe.org)
[](https://github.com/eliasku/hxmake)
[](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.