monolilith

Crates.iomonolilith
lib.rsmonolilith
version1.1.0
sourcesrc
created_at2022-08-28 03:14:46.717114
updated_at2022-08-31 17:41:05.062876
descriptionSimple Build System for Monorepos
homepagehttps://github.com/Zeneyra-Linux/Monolilith
repositoryhttps://github.com/Zeneyra-Linux/Monolilith
max_upload_size
id653691
size57,841
Strids (Stridsvagn69420)

documentation

https://github.com/Zeneyra-Linux/Monolilith/wiki

README

Monolilith

Simple Build System for Monorepos

Installing

Cargo

cargo install monolilith

or

RUSTFLAGS="-C target-cpu=native" cargo install monolilith

Kagero

WIP.

Source

  1. Clone the repository: git clone https://github.com/Zeneyra-Linux/Monolilith.git
  2. Go into the directory: cd Monolilith
  3. Install or build the application: cargo install --path . or cargo build --release

Optionally, you can add RUSTFLAGS="-C target-cpu=native" in front of the command like above to optimize the application for your CPU.

Usage

Project structure

You'll need a monolilith.json file. It contains a Map where the Keys are the relative paths to the application folder and the Value the Project Type.
Example:

{
    "true": "zigcc",
    "false": "zigc++",
    "fetch": "zigfast",
    "my-app": "cargo-zigbuild",
    "other-apps/server-app": "cargo",
    "other-apps/client-app": "clang",
    "gnuapp": "gcc"
}

You can use monolilith init to create an empty file. The subproject folder should also match the project name and resulting binary.

Adding and removing

Use monolilith add <ProjectPath> <ProjectType> to add a new project or monolilith remove <ProjectPath>.
Note that ProjectPath must be formatted like above.

Building

Just run monolilith and it will build all the projects and put the result into build/.

License

Monolilith is currently licensed under the EUPL-1.2 with German law, since I live in Germany, but it will soon be relicensed under the Zeneyra Public License Version 1.0 with default conditions.

Commit count: 66

cargo fmt