2020-06-09 12:42:28 +00:00
|
|
|
# $OpenBSD: cargo.port.mk,v 1.19 2020/06/09 12:42:28 semarie Exp $
|
2016-12-26 13:55:11 +00:00
|
|
|
|
|
|
|
CATEGORIES += lang/rust
|
|
|
|
|
|
|
|
# List of static dependencies. The format is cratename-version.
|
|
|
|
# MODCARGO_CRATES will be downloaded from MASTER_SITES_CRATESIO.
|
|
|
|
MODCARGO_CRATES ?=
|
|
|
|
|
|
|
|
# List of features to build (space separated list).
|
|
|
|
MODCARGO_FEATURES ?=
|
|
|
|
|
2019-12-11 12:35:06 +00:00
|
|
|
# Force using only MODCARGO_FEATURES if Yes
|
|
|
|
MODCARGO_NO_DEFAULT_FEATURES ?= No
|
|
|
|
|
2016-12-26 13:55:11 +00:00
|
|
|
# List of crates to update (no version).
|
|
|
|
# Used to override a dependency with newer version.
|
|
|
|
MODCARGO_CRATES_UPDATE ?=
|
|
|
|
|
2018-02-24 18:40:28 +00:00
|
|
|
# RUSTFLAGS variable to pass to cargo.
|
|
|
|
MODCARGO_RUSTFLAGS ?=
|
|
|
|
|
2016-12-26 13:55:11 +00:00
|
|
|
# Name of the local directory for vendoring crates.
|
|
|
|
MODCARGO_VENDOR_DIR ?= ${WRKSRC}/modcargo-crates
|
|
|
|
|
|
|
|
# Default path for cargo manifest.
|
|
|
|
MODCARGO_CARGOTOML ?= ${WRKSRC}/Cargo.toml
|
|
|
|
|
|
|
|
# Define MASTER_SITES_CRATESIO for crates.io
|
|
|
|
MASTER_SITES_CRATESIO = https://crates.io/api/v1/crates/
|
|
|
|
|
|
|
|
# Save crates inside particular DIST_SUBDIR by default.
|
|
|
|
# If you use DIST_SUBDIR, adjust MODCARGO_DIST_SUBDIR.
|
2017-02-15 12:49:42 +00:00
|
|
|
.if defined(DIST_SUBDIR) && !defined(MODCARGO_DIST_SUBDIR)
|
|
|
|
ERRORS += "Fatal: MODCARGO_DIST_SUBDIR should be defined if DIST_SUBDIR is defined"
|
|
|
|
.endif
|
2016-12-26 13:55:11 +00:00
|
|
|
MODCARGO_DIST_SUBDIR ?= cargo
|
|
|
|
|
|
|
|
.if empty(MODCARGO_DIST_SUBDIR)
|
|
|
|
_MODCARGO_DIST_SUBDIR =
|
|
|
|
.else
|
|
|
|
_MODCARGO_DIST_SUBDIR = ${MODCARGO_DIST_SUBDIR}/
|
|
|
|
.endif
|
|
|
|
|
|
|
|
# Use MASTER_SITES9 to grab crates by default.
|
|
|
|
# Could be changed by setting MODCARGO_MASTER_SITESN.
|
|
|
|
MODCARGO_MASTER_SITESN ?= 9
|
|
|
|
MASTER_SITES${MODCARGO_MASTER_SITESN} ?= ${MASTER_SITES_CRATESIO}
|
|
|
|
|
|
|
|
# Generated list of DISTFILES.
|
2018-12-16 08:50:11 +00:00
|
|
|
.for _cratename _cratever in ${MODCARGO_CRATES}
|
|
|
|
DISTFILES += ${_MODCARGO_DIST_SUBDIR}${_cratename}-${_cratever}.tar.gz{${_cratename}/${_cratever}/download}:${MODCARGO_MASTER_SITESN}
|
2016-12-26 13:55:11 +00:00
|
|
|
.endfor
|
|
|
|
|
|
|
|
# post-extract target for preparing crates directory.
|
|
|
|
# It will put all crates in the local crates directory.
|
|
|
|
MODCARGO_post-extract = \
|
|
|
|
${ECHO_MSG} "[modcargo] moving crates to ${MODCARGO_VENDOR_DIR}" ; \
|
|
|
|
mkdir ${MODCARGO_VENDOR_DIR} ;
|
2018-12-16 08:50:11 +00:00
|
|
|
.for _cratename _cratever in ${MODCARGO_CRATES}
|
2016-12-26 13:55:11 +00:00
|
|
|
MODCARGO_post-extract += \
|
2018-12-16 08:50:11 +00:00
|
|
|
mv ${WRKDIR}/${_cratename}-${_cratever} ${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever} ;
|
2016-12-26 13:55:11 +00:00
|
|
|
.endfor
|
|
|
|
|
2020-03-12 10:30:05 +00:00
|
|
|
# post-extract target to provide clean environment for specific crates
|
|
|
|
# in order to avoid rebuilding libraries from source behind us.
|
|
|
|
MODCARGO_CRATES_BUILDDEP ?= Yes
|
|
|
|
.if ${MODCARGO_CRATES_BUILDDEP:L} == "yes"
|
|
|
|
. for _cratename _cratever in ${MODCARGO_CRATES}
|
|
|
|
|
|
|
|
. if "${_cratename}" == "pkg-config"
|
|
|
|
# configure to build no static by default
|
|
|
|
MODCARGO_ENV += PKG_CONFIG_ALL_DYNAMIC=1
|
|
|
|
|
|
|
|
. elif "${_cratename}" == "bzip2-sys"
|
|
|
|
MODCARGO_post-extract += \
|
|
|
|
${ECHO_MSG} "[modcargo] Removing libsrc for ${_cratename}-${_cratever}" ; \
|
|
|
|
rm -rf -- ${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever}/bzip2-* ; \
|
|
|
|
echo 'fn main() { println!("cargo:rustc-link-lib=bz2\ncargo:rustc-link-search=${LOCALBASE}/lib"); }' \
|
|
|
|
> ${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever}/build.rs ;
|
|
|
|
|
|
|
|
. elif "${_cratename}" == "curl-sys"
|
|
|
|
MODCARGO_post-extract += \
|
|
|
|
${ECHO_MSG} "[modcargo] Removing libsrc for ${_cratename}-${_cratever}" ; \
|
|
|
|
rm -rf -- ${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever}/curl ;
|
|
|
|
|
|
|
|
. elif "${_cratename}" == "gettext-sys"
|
|
|
|
MODCARGO_ENV += GETTEXT_DIR=${LOCALBASE}
|
|
|
|
MODCARGO_post-extract += \
|
|
|
|
${ECHO_MSG} "[modcargo] Removing libsrc for ${_cratename}-${_cratever}" ; \
|
|
|
|
rm -f -- ${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever}/gettext-*.tar.xz ;
|
|
|
|
|
|
|
|
. elif "${_cratename}" == "libdbus-sys"
|
|
|
|
# no libsrc, fail if lib not found
|
|
|
|
|
|
|
|
. elif "${_cratename}" == "libgit2-sys"
|
|
|
|
MODCARGO_ENV += LIBGIT2_SYS_USE_PKG_CONFIG=1
|
|
|
|
MODCARGO_post-extract += \
|
|
|
|
${ECHO_MSG} "[modcargo] Removing libsrc for ${_cratename}-${_cratever}" ; \
|
|
|
|
rm -rf -- ${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever}/libgit2 ;
|
|
|
|
|
2020-03-16 10:55:36 +00:00
|
|
|
. elif "${_cratename}" == "libsodium-sys"
|
|
|
|
MODCARGO_ENV += SODIUM_SHARED=1
|
|
|
|
MODCARGO_post-extract += \
|
|
|
|
${ECHO_MSG} "[modcargo] Removing libsrc for ${_cratename}-${_cratever}" ; \
|
|
|
|
rm -f -- ${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever}/libsodium-*.tar.gz ;
|
|
|
|
|
2020-03-12 10:30:05 +00:00
|
|
|
. elif "${_cratename}" == "libsqlite3-sys"
|
|
|
|
MODCARGO_post-extract += \
|
|
|
|
${ECHO_MSG} "[modcargo] Removing libsrc for ${_cratename}-${_cratever}" ; \
|
|
|
|
rm -rf -- ${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever}/sqlite3 ;
|
|
|
|
|
|
|
|
. elif "${_cratename}" == "libssh2-sys"
|
|
|
|
MODCARGO_ENV += LIBSSH2_SYS_USE_PKG_CONFIG=1
|
|
|
|
MODCARGO_post-extract += \
|
|
|
|
${ECHO_MSG} "[modcargo] Removing libsrc for ${_cratename}-${_cratever}" ; \
|
|
|
|
rm -rf -- ${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever}/libssh2 ;
|
|
|
|
|
|
|
|
. elif "${_cratename}" == "libz-sys"
|
|
|
|
MODCARGO_ENV += LIBZ_SYS_STATIC=0
|
|
|
|
MODCARGO_post-extract += \
|
|
|
|
${ECHO_MSG} "[modcargo] Removing libsrc for ${_cratename}-${_cratever}" ; \
|
|
|
|
rm -rf -- ${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever}/src/zlib ;
|
|
|
|
|
|
|
|
. elif "${_cratename}" == "lua52-sys"
|
|
|
|
MODCARGO_post-extract += \
|
|
|
|
${ECHO_MSG} "[modcargo] Removing libsrc for ${_cratename}-${_cratever}" ; \
|
|
|
|
rm -rf -- ${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever}/lua ; \
|
|
|
|
${ECHO_MSG} "[modcargo] Patching ${_cratename}-${_cratever} to find lang/lua/5.2" ; \
|
|
|
|
sed -i -e 's,find_library("lua5.2"),find_library("lua52"),' \
|
|
|
|
${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever}/build.rs ;
|
|
|
|
|
|
|
|
. elif "${_cratename}" == "openssl-sys"
|
|
|
|
MODCARGO_post-extract += \
|
|
|
|
${ECHO_MSG} "[modcargo] Patching ${_cratename}-${_cratever} for supporting -current" ; \
|
|
|
|
sed -i -e "/ => ('.', '.'),/h" \
|
|
|
|
-e "/ => ('.', '.', '.'),/h" \
|
|
|
|
-e "/_ => version_error(),/{g; s/(.*) =>/_ =>/; }" \
|
|
|
|
${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever}/build/main.rs ;
|
|
|
|
|
|
|
|
. elif "${_cratename}" == "pcre2-sys"
|
|
|
|
MODCARGO_post-extract += \
|
|
|
|
${ECHO_MSG} "[modcargo] Removing libsrc for ${_cratename}-${_cratever}" ; \
|
|
|
|
rm -rf -- ${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever}/pcre2 ;
|
|
|
|
|
|
|
|
. elif "${_cratename}" == "portaudio-sys"
|
|
|
|
# no libsrc, fail if lib not found
|
|
|
|
|
|
|
|
. elif "${_cratename}" == "pq-sys"
|
|
|
|
# no libsrc, fail if lib not found
|
|
|
|
|
|
|
|
. elif "${_cratename}" == "onig_sys"
|
|
|
|
MODCARGO_ENV += RUSTONIG_SYSTEM_LIBONIG=1
|
|
|
|
MODCARGO_post-extract += \
|
|
|
|
${ECHO_MSG} "[modcargo] Removing libsrc for ${_cratename}-${_cratever}" ; \
|
|
|
|
rm -rf -- ${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever}/oniguruma ;
|
|
|
|
|
|
|
|
. elif "${_cratename}" == "sass-sys"
|
|
|
|
MODCARGO_post-extract += \
|
|
|
|
${ECHO_MSG} "[modcargo] Removing libsrc for ${_cratename}-${_cratever}" ; \
|
|
|
|
rm -rf -- ${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever}/libsass ;
|
|
|
|
|
|
|
|
. endif
|
|
|
|
. endfor
|
|
|
|
.endif
|
|
|
|
|
2016-12-26 13:55:11 +00:00
|
|
|
# post-patch target for generating metadata of crates.
|
2018-12-16 08:50:11 +00:00
|
|
|
.for _cratename _cratever in ${MODCARGO_CRATES}
|
2016-12-26 13:55:11 +00:00
|
|
|
MODCARGO_post-patch += \
|
2018-12-16 08:50:11 +00:00
|
|
|
${ECHO_MSG} "[modcargo] Generating metadata for ${_cratename}-${_cratever}" ; \
|
2016-12-26 13:55:11 +00:00
|
|
|
${LOCALBASE}/bin/cargo-generate-vendor \
|
2018-12-16 08:50:11 +00:00
|
|
|
${FULLDISTDIR}/${_MODCARGO_DIST_SUBDIR}${_cratename}-${_cratever}.tar.gz \
|
|
|
|
${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever} ;
|
2016-12-26 13:55:11 +00:00
|
|
|
.endfor
|
|
|
|
|
|
|
|
# configure hook. Place a config file for overriding crates-io index by
|
2020-06-09 06:51:59 +00:00
|
|
|
# local source directory, and set compilation options (based on release).
|
|
|
|
# Enabled by use of "CONFIGURE_STYLE=cargo".
|
2016-12-26 13:55:11 +00:00
|
|
|
MODCARGO_configure = \
|
|
|
|
mkdir -p ${WRKDIR}/.cargo; \
|
|
|
|
\
|
2017-01-01 18:49:58 +00:00
|
|
|
echo "[source.modcargo]" >${WRKDIR}/.cargo/config; \
|
2016-12-26 13:55:11 +00:00
|
|
|
echo "directory = '${MODCARGO_VENDOR_DIR}'" \
|
|
|
|
>>${WRKDIR}/.cargo/config; \
|
|
|
|
echo "[source.crates-io]" >>${WRKDIR}/.cargo/config; \
|
|
|
|
echo "replace-with = 'modcargo'" >>${WRKDIR}/.cargo/config; \
|
|
|
|
|
2020-06-09 06:51:59 +00:00
|
|
|
# set profile (based on 'release' profile) for 'build' and 'test'
|
|
|
|
# see https://doc.rust-lang.org/cargo/reference/profiles.html#release
|
|
|
|
# only 'opt-level' differs from default
|
|
|
|
.for _profile in release bench
|
|
|
|
MODCARGO_configure += \
|
|
|
|
echo "" >>${WRKDIR}/.cargo/config; \
|
|
|
|
echo "[profile.${_profile}]" >>${WRKDIR}/.cargo/config; \
|
|
|
|
echo "opt-level = 2" >>${WRKDIR}/.cargo/config; \
|
|
|
|
echo "debug = 0" >>${WRKDIR}/.cargo/config; \
|
|
|
|
echo "debug-assertions = false" >>${WRKDIR}/.cargo/config; \
|
|
|
|
echo "overflow-checks = false" >>${WRKDIR}/.cargo/config; \
|
2020-06-09 12:42:28 +00:00
|
|
|
echo "lto = false" >>${WRKDIR}/.cargo/config; \
|
2020-06-09 06:51:59 +00:00
|
|
|
echo "panic = 'unwind'" >>${WRKDIR}/.cargo/config; \
|
|
|
|
echo "incremental = false" >>${WRKDIR}/.cargo/config; \
|
|
|
|
echo "codegen-units = 4" >>${WRKDIR}/.cargo/config; \
|
|
|
|
echo "rpath = false" >>${WRKDIR}/.cargo/config;
|
|
|
|
.endfor
|
2016-12-26 13:55:11 +00:00
|
|
|
|
2017-01-01 18:49:58 +00:00
|
|
|
# Update crates: place all crates on the same command line.
|
2017-01-08 08:51:31 +00:00
|
|
|
.if !empty(MODCARGO_CRATES_UPDATE)
|
2017-01-01 18:49:58 +00:00
|
|
|
MODCARGO_configure += \
|
|
|
|
${MODCARGO_CARGO_UPDATE}
|
2016-12-26 13:55:11 +00:00
|
|
|
.for _crate in ${MODCARGO_CRATES_UPDATE}
|
|
|
|
MODCARGO_configure += \
|
2017-01-01 18:49:58 +00:00
|
|
|
--package ${_crate}
|
2016-12-26 13:55:11 +00:00
|
|
|
.endfor
|
2017-01-01 18:49:58 +00:00
|
|
|
MODCARGO_configure += ;
|
|
|
|
.endif
|
2016-12-26 13:55:11 +00:00
|
|
|
|
|
|
|
# Build dependencies.
|
2017-07-31 13:16:08 +00:00
|
|
|
MODCARGO_BUILD_DEPENDS = lang/rust
|
2016-12-26 13:55:11 +00:00
|
|
|
|
|
|
|
# devel/cargo-generate-vendor is mandatory for hooks.
|
|
|
|
BUILD_DEPENDS += devel/cargo-generate-vendor
|
|
|
|
|
|
|
|
MODCARGO_BUILDDEP ?= Yes
|
|
|
|
.if ${MODCARGO_BUILDDEP:L} == "yes"
|
|
|
|
BUILD_DEPENDS += ${MODCARGO_BUILD_DEPENDS}
|
|
|
|
.endif
|
|
|
|
|
|
|
|
# Location of cargo binary (default to devel/cargo binary)
|
|
|
|
MODCARGO_CARGO_BIN ?= ${LOCALBASE}/bin/cargo
|
|
|
|
|
|
|
|
# Location of the cargo output directory.
|
|
|
|
MODCARGO_TARGET_DIR ?= ${WRKBUILD}/target
|
|
|
|
|
|
|
|
# Environment for cargo
|
|
|
|
# - CARGO_HOME: local cache of the registry index
|
|
|
|
# - CARGO_BUILD_JOBS: configure number of jobs to run
|
|
|
|
# - CARGO_TARGET_DIR: location of where to place all generated artifacts
|
|
|
|
# - RUSTC: path of rustc binary (default to lang/rust)
|
|
|
|
# - RUSTDOC: path of rustdoc binary (default to lang/rust)
|
|
|
|
# - RUSTFLAGS: custom flags to pass to all compiler invocations that Cargo performs
|
|
|
|
#
|
|
|
|
# XXX LDFLAGS => -C link-arg=$1 (via RUSTFLAGS)
|
|
|
|
MODCARGO_ENV += \
|
|
|
|
CARGO_HOME=${WRKDIR}/cargo-home \
|
|
|
|
CARGO_BUILD_JOBS=${MAKE_JOBS} \
|
|
|
|
CARGO_TARGET_DIR=${MODCARGO_TARGET_DIR} \
|
|
|
|
RUSTC=${LOCALBASE}/bin/rustc \
|
|
|
|
RUSTDOC=${LOCALBASE}/bin/rustdoc \
|
2018-02-24 18:40:28 +00:00
|
|
|
RUSTFLAGS="${MODCARGO_RUSTFLAGS}"
|
2016-12-26 13:55:11 +00:00
|
|
|
|
|
|
|
# Helper to shorten cargo calls.
|
|
|
|
MODCARGO_CARGO_RUN = \
|
|
|
|
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MODCARGO_ENV} \
|
|
|
|
${MODCARGO_CARGO_BIN}
|
|
|
|
|
|
|
|
# User arguments for cargo targets.
|
|
|
|
MODCARGO_BUILD_ARGS ?=
|
|
|
|
MODCARGO_INSTALL_ARGS ?=
|
|
|
|
MODCARGO_TEST_ARGS ?=
|
|
|
|
|
|
|
|
# Manage crate features.
|
|
|
|
.if !empty(MODCARGO_FEATURES)
|
2019-12-11 12:35:06 +00:00
|
|
|
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
|
2016-12-26 13:55:11 +00:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# Helper for updating a crate.
|
|
|
|
MODCARGO_CARGO_UPDATE = \
|
|
|
|
${MODCARGO_CARGO_RUN} update \
|
|
|
|
--manifest-path ${MODCARGO_CARGOTOML} \
|
2017-01-01 18:49:58 +00:00
|
|
|
--verbose
|
2016-12-26 13:55:11 +00:00
|
|
|
|
|
|
|
# Use module targets ?
|
|
|
|
MODCARGO_BUILD ?= Yes
|
|
|
|
MODCARGO_INSTALL ?= Yes
|
|
|
|
MODCARGO_TEST ?= Yes
|
|
|
|
|
|
|
|
# Define the build target.
|
|
|
|
MODCARGO_BUILD_TARGET = \
|
|
|
|
${MODCARGO_CARGO_RUN} build \
|
|
|
|
--manifest-path ${MODCARGO_CARGOTOML} \
|
2019-12-11 12:35:06 +00:00
|
|
|
--offline \
|
2016-12-26 13:55:11 +00:00
|
|
|
--release \
|
|
|
|
--verbose \
|
|
|
|
${MODCARGO_BUILD_ARGS} ;
|
|
|
|
|
|
|
|
.if !target(do-build) && ${MODCARGO_BUILD:L} == "yes"
|
|
|
|
do-build:
|
|
|
|
@${MODCARGO_BUILD_TARGET}
|
|
|
|
.endif
|
|
|
|
|
|
|
|
# Define the install target.
|
|
|
|
MODCARGO_INSTALL_TARGET = \
|
|
|
|
${MODCARGO_CARGO_RUN} install \
|
|
|
|
--root="${PREFIX}" \
|
2020-01-21 05:27:18 +00:00
|
|
|
--path . \
|
2019-12-11 12:35:06 +00:00
|
|
|
--offline \
|
2016-12-26 13:55:11 +00:00
|
|
|
--verbose \
|
|
|
|
${MODCARGO_INSTALL_ARGS} ; \
|
|
|
|
rm -- "${PREFIX}/.crates.toml" ;
|
|
|
|
|
|
|
|
.if !target(do-install) && ${MODCARGO_INSTALL:L} == "yes"
|
|
|
|
do-install:
|
|
|
|
@${MODCARGO_INSTALL_TARGET}
|
|
|
|
.endif
|
|
|
|
|
|
|
|
# Define the test target.
|
|
|
|
MODCARGO_TEST_TARGET = \
|
|
|
|
${MODCARGO_CARGO_RUN} test \
|
|
|
|
--manifest-path ${MODCARGO_CARGOTOML} \
|
2019-12-11 12:35:06 +00:00
|
|
|
--offline \
|
2016-12-26 13:55:11 +00:00
|
|
|
--release \
|
|
|
|
--verbose \
|
|
|
|
${MODCARGO_TEST_ARGS} ;
|
|
|
|
|
|
|
|
.if !target(do-test) && ${MODCARGO_TEST:L} == "yes"
|
|
|
|
do-test:
|
|
|
|
@${MODCARGO_TEST_TARGET}
|
|
|
|
.endif
|
|
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
# Helper targets for port maintainer
|
|
|
|
#
|
|
|
|
|
2017-01-01 18:49:58 +00:00
|
|
|
# modcargo-metadata: regenerate metadata. useful target when working on a port.
|
|
|
|
modcargo-metadata: patch
|
2019-09-14 17:34:46 +00:00
|
|
|
@${_PMAKE} _modcargo-metadata
|
|
|
|
|
|
|
|
# run as _pbuild
|
|
|
|
_modcargo-metadata:
|
2017-01-01 18:49:58 +00:00
|
|
|
@${MODCARGO_post-patch}
|
|
|
|
|
2017-02-08 17:36:33 +00:00
|
|
|
# modcargo-gen-crates will output crates list from Cargo.lock file.
|
|
|
|
modcargo-gen-crates: extract
|
2020-02-08 14:06:49 +00:00
|
|
|
@awk '/^name = / { n=$$3; gsub("\"", "", n); } /^version = / { v=$$3; gsub("\"", "", v); print "MODCARGO_CRATES += " n " " v; }' \
|
2017-02-15 12:49:42 +00:00
|
|
|
<${MODCARGO_CARGOTOML:toml=lock}
|
2016-12-26 13:55:11 +00:00
|
|
|
|
2017-02-08 17:36:33 +00:00
|
|
|
# modcargo-gen-crates-licenses will try to grab license information from downloaded crates.
|
|
|
|
modcargo-gen-crates-licenses: configure
|
2018-12-16 08:50:11 +00:00
|
|
|
.for _cratename _cratever in ${MODCARGO_CRATES}
|
|
|
|
@echo -n "MODCARGO_CRATES += ${_cratename} ${_cratever} # "
|
2020-02-08 18:56:20 +00:00
|
|
|
@sed -ne '/^license.*=/{;s/^license.*= *"\([^"]*\)".*/\1/p;q;};$$s/^.*$$/XXX missing license/p' \
|
|
|
|
${MODCARGO_VENDOR_DIR}/${_cratename}-${_cratever}/Cargo.toml
|
2018-12-16 08:50:11 +00:00
|
|
|
.endfor
|