#build #workspace #ci #make #build-tool

app hull

Build tool to aid Rust development

4 releases

Uses old Rust 2015

0.1.3 Jul 20, 2018
0.1.2 Jun 27, 2018
0.1.1 Mar 29, 2018
0.1.0 Mar 28, 2018

#24 in #make

MIT license

14KB
228 lines

Hull

Hull is a build tool to aid Rust development across Linux and Windows.

Contents

Usage

Single Crates:

# Compile binaries, tests, and examples:
hull build

# Compile binaries, tests, and examples in release mode:
hull build -- --release

# Compile and specify features:
hull build -- --features "feature1 feature2"

Workspaces:

# Compile binaries, tests, and examples:
hull build

# Compile binaries, tests, and examples in release mode:
hull build -- --release

# Arbitrary command
hull each -- bash -c 'echo ${PWD}' # Linux, Windows Git Bash
hull each -- cmd /Q /C echo %cd%   # Windows Cmd

# Don't do this, because `hull build` automatically detects whether the crate is a workspace:
hull each -- hull build
# If you really need to, you can use this:
hull each -- hull build --no-detect-workspace

Installation

From crates.io:

cargo install hull

From source:

(git clone git@github.com:azriel91/hull.git && cd hull && cargo install)

Status

Currently this is in experimental mode, I will gradually productionize the code quality over time.

Roadmap:

  • Test all code.
  • Use a logging framework.
  • Use failure to handle and report failures.
  • Use indicatif to reduce log spam when run interactively.

Motivation

This tool was created out of frustration that I couldn't simply "just run this" and compile all my crate compilables across OSes.

cargo-make solved many of my build issues, but Windows had too many quirks that meant I'd have to code my build steps in both Bash and Batch to allow seamless integration, but Batch is a language you never want to touch *shudder*. So I decided to write a build tool in Rust.

Questions

  • What about OSX?

    I don't have a Mac currently, theoretically it should simply work but no guarantees.

Dependencies

~6MB
~116K SLoC