1 stable release
1.1.0 | Aug 31, 2022 |
---|---|
1.0.2 |
|
#106 in #monorepo
37KB
631 lines
Monolilith
Simple Build System for Monorepos
Installing
Cargo
cargo install monolilith
or
RUSTFLAGS="-C target-cpu=native" cargo install monolilith
Kagero
WIP.
Source
- Clone the repository:
git clone https://github.com/Zeneyra-Linux/Monolilith.git
- Go into the directory:
cd Monolilith
- Install or build the application:
cargo install --path .
orcargo 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.
Dependencies
~2.5–4MB
~72K SLoC