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} ;

Reply via email to