Hi,
The following diff to devel/cargo module introduces two things:
- build rust crates using cargo --offline to enforce "no network" build. It
means that if network would be necessary, cargo will abort with error instead
of
using (or trying to use) network.
- provide proper MODCARGO_FEATURES functionality. currently the flags are passed
only to build stage, resulting the install stage to rebuild things without the
flags before installing.
- add a MODCARGO_NO_DEFAULT_FEATURES knob to permit overriding completely
features defined in Cargo.toml. Without it, features are added to default
ones.
Comments or OK ?
--
Sebastien Marie
diff 6deeda83e36cd06f0fc98a19fbf83dc54a799766 /home/semarie/repos/openbsd/ports
blob - 7e465f5957edcde8dfb487eb610b363a505ca700
file + devel/cargo/cargo.port.mk
--- devel/cargo/cargo.port.mk
+++ devel/cargo/cargo.port.mk
@@ -9,6 +9,9 @@ MODCARGO_CRATES ?=
# List of features to build (space separated list).
MODCARGO_FEATURES ?=
+# Force using only MODCARGO_FEATURES if Yes
+MODCARGO_NO_DEFAULT_FEATURES ?= No
+
# List of crates to update (no version).
# Used to override a dependency with newer version.
MODCARGO_CRATES_UPDATE ?=
@@ -143,10 +146,17 @@ MODCARGO_TEST_ARGS ?=
# Manage crate features.
.if !empty(MODCARGO_FEATURES)
-MODCARGO_BUILD_ARGS += --features='${MODCARGO_FEATURES}'
-MODCARGO_TEST_ARGS += --features='${MODCARGO_FEATURES}'
+MODCARGO_BUILD_ARGS += --features='${MODCARGO_FEATURES}'
+MODCARGO_INSTALL_ARGS += --features='${MODCARGO_FEATURES}'
+MODCARGO_TEST_ARGS += --features='${MODCARGO_FEATURES}'
.endif
+.if ${MODCARGO_NO_DEFAULT_FEATURES:L} == "yes"
+MODCARGO_BUILD_ARGS += --no-default-features
+MODCARGO_INSTALL_ARGS += --no-default-features
+MODCARGO_TEST_ARGS += --no-default-features
+.endif
+
# Helper for updating a crate.
MODCARGO_CARGO_UPDATE = \
${MODCARGO_CARGO_RUN} update \
@@ -162,6 +172,7 @@ MODCARGO_TEST ?= Yes
MODCARGO_BUILD_TARGET = \
${MODCARGO_CARGO_RUN} build \
--manifest-path ${MODCARGO_CARGOTOML} \
+ --offline \
--release \
--verbose \
${MODCARGO_BUILD_ARGS} ;
@@ -175,6 +186,7 @@ do-build:
MODCARGO_INSTALL_TARGET = \
${MODCARGO_CARGO_RUN} install \
--root="${PREFIX}" \
+ --offline \
--verbose \
${MODCARGO_INSTALL_ARGS} ; \
rm -- "${PREFIX}/.crates.toml" ;
@@ -188,6 +200,7 @@ do-install:
MODCARGO_TEST_TARGET = \
${MODCARGO_CARGO_RUN} test \
--manifest-path ${MODCARGO_CARGOTOML} \
+ --offline \
--release \
--verbose \
${MODCARGO_TEST_ARGS} ;