| Crates.io | cargo-aragonite |
| lib.rs | cargo-aragonite |
| version | 0.1.0 |
| created_at | 2024-05-04 21:25:59.167872+00 |
| updated_at | 2024-05-04 21:25:59.167872+00 |
| description | a cargo wrapper for use with the aragonite framework |
| homepage | |
| repository | https://www.gitlab.com/aragonite-rs/aragonite |
| max_upload_size | |
| id | 1229844 |
| size | 22,106 |
cargo-aragonite is a cargo extension for building aragonite projects as .bin files for use as position-independent shellcode.
It is a simple wrapper around cargo that sets up extra arguments when it detects the build command. All other arguments are passed transparently to the underlying cargo process.
cargo install cargo-aragonite
Ensure your $PATH variable is setup to use cargo install binaries correctly.
The basic usage is:
cargo aragonite build [any other arguments here]
The examples in this workspace can be built using:
cargo aragonite build -p examples --bin linux_x64
or
cargo aragonite build -p examples --bin win_x64
Note: at this time, cargo-aragonite only supports building one .bin at a time
The process that cargo-aragonite provides is as follows:
aragonite optimized with space (z)Because cargo-aragonite needs to use a rust build script to build arguments, cargo-aragonite can also be used as a build-dependency for more complex workflows. Add cargo-aragonite as a build dependency:
# Cargo.toml
[build-dependencies]
cargo-aragonite = "0.1.0"
And then use the build function to do the necessary setup:
// build.rs
fn main() {
cargo_aragonite::build();
// any other build steps as required
}
Please note, that you will still need to use cargo aragonite build to perform the rest of the steps as outlined above.
Also note, that for workspaces this is not strictly necessary, but without it, your current working directory must be within the specific workspace member that you are trying to build (rather than, using cargo aragonite build -p [project name] from anywhere within the workspace).