Crates.io | cargo-aragonite |
lib.rs | cargo-aragonite |
version | 0.1.0 |
source | src |
created_at | 2024-05-04 21:25:59.167872 |
updated_at | 2024-05-04 21:25:59.167872 |
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).