NAME
cargo-module
—
devel/cargo port module
DESCRIPTION
This manual page documents the behavior of setting
MODULES=devel/cargo
in the
ports(7) tree.
Automates download and compilation of dependencies of a Rust project using cargo(1).
During fetch
, static dependencies
("crates") listed in MODCARGO_CRATES
are
downloaded using MODCARGO_DIST_SUBDIR
as
DIST_SUBDIR
.
During post-extract
, crates defined in
MODCARGO_CRATES
are moved to the
MODCARGO_VENDOR_DIR
directory.
During post-patch
, crate-metadata are
generated using devel/cargo-generate-vendor.
With CONFIGURE_STYLE
set to
‘cargo’, cargo is configured to use
MODCARGO_VENDOR_DIR
instead of the standard
crates-io network source. Finally, any crates listed in
MODCARGO_CRATES_UPDATE
are updated.
MODCARGO_RUSTFLAGS
can be used to pass
custom flags to all
rustc(1) invocations.
lang/rust is added to
MODULES
, and
devel/cargo-generate-vendor is added to
BUILD_DEPENDS
.
This module defines:
MODCARGO_CARGOTOML
- Path to cargo manifest. Defaults to ${WRKSRC}/Cargo.toml.
MODCARGO_CRATES
- Crates that will be downloaded by the module.
MODCARGO_CRATES_UPDATE
- List of crates to update, overriding the version listed in Cargo.lock.
MODCARGO_FEATURES
- List of features to be used when building.
MODCARGO_INSTALL_TARGET_PATHS
- List of paths to pass to
cargo install
instead of .. Needs to be set for some virtual manifests. MODCARGO_VENDOR_DIR
- Name of the local directory for vendoring crates. Defaults to ${WRKSRC}/modcargo-crates.
MODCARGO_WANTLIB
- Architecture-specific
WANTLIB
entries required by all Rust code. It is a copy ofMODRUST_WANTLIB
provided for simplicity.
This module adds three make(1) targets:
modcargo-metadata
- Rerun the generation of crates' metadata.
modcargo-gen-crates
- Generate the
MODCARGO_CRATES
list from Cargo.lock (a preliminary crates list is not required). modcargo-gen-crates-licenses
- Generate the
MODCARGO_CRATES
list with license information from crates present in theMODCARGO_VENDOR_DIR
directory.