6 releases
Uses new Rust 2024
0.1.5 | Apr 8, 2025 |
---|---|
0.1.4 | Apr 8, 2025 |
0.1.2 | Mar 26, 2025 |
#250 in Build Utils
539 downloads per month
15KB
137 lines
Cargo-Wrap
This crate is basically just Rust bindings for cargo
. For now supports the following flags and features:
Features
- Verbose logging (
--verbose
) - Release or Debug build modes (
--release
) - Custom job counts (
--jobs N
) - Custom target output directories (
CARGO_TARGET_DIR
) - Specify build targets (
--target X
) - Feature listing and activation (
--features X
,--no-default-features
) - Binary/Library build selection (
--bin X
,--lib X
) - Extra
rustc
flags (RUSTFLAGS
)
Installation
cargo add cargo_wrap
cargo_wrap = "0.1.5"
Examples
Basic Build
use cargo_wrap::{Builder, ProjectSettings};
use std::io;
fn main() -> io::Result<()> {
let mut settings = ProjectSettings::new("/path/to/project", None, None, false);
settings.set_release();
let builder = Builder::new(settings, 0, Some("output.log"))?;
builder.build()?;
Ok(())
}
Enable Features
use cargo_wrap::{Builder, ProjectSettings};
use std::io;
fn main() -> io::Result<()> {
let mut settings = ProjectSettings::new("/path/to/project", None, None, false);
settings.add_feature("my_feature".to_string());
let builder = Builder::new(settings, 0, None)?;
builder.build()?;
Ok(())
}
Changelog
0.1.0
- Initial commit
0.1.1
- Added additional
rustc
flag support
0.1.2
- Added
#[derive(Clone)]
support for theProjectSettings
struct
0.1.3
- Added support for manually setting build targets
- Added support for manually setting the output path
0.1.4
- Added support for manually setting the project path
0.1.5
- Fixed feature bug
License
MIT
Dependencies
~255–490KB
~11K SLoC