git: 87916ecbfac7 - main - gem: make it possible to generate gems that require rust/cargo
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 06 Jan 2024 08:18:44 UTC
The branch main has been updated by mfechner:
URL: https://cgit.FreeBSD.org/ports/commit/?id=87916ecbfac7532b4d3de63efa36ed8f8e637e36
commit 87916ecbfac7532b4d3de63efa36ed8f8e637e36
Author: Matthias Fechner <mfechner@FreeBSD.org>
AuthorDate: 2024-01-03 09:32:55 +0000
Commit: Matthias Fechner <mfechner@FreeBSD.org>
CommitDate: 2024-01-06 08:18:36 +0000
gem: make it possible to generate gems that require rust/cargo
Make sure cargo.mk and gem.mk can work together.
If you want to use rust for your gem, have a look on
devel/rubygem-prometheus-client-mmap as an example.
Differential Revision: https://reviews.freebsd.org/D43292
---
Mk/Uses/gem.mk | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/Mk/Uses/gem.mk b/Mk/Uses/gem.mk
index a1e77273932a..69924ae3d172 100644
--- a/Mk/Uses/gem.mk
+++ b/Mk/Uses/gem.mk
@@ -23,9 +23,10 @@ IGNORE= Incorrect 'USES+= gem:${gem_ARGS}' usage: argument [${arg}] is not recog
.include "${USESDIR}/ruby.mk"
PKGNAMEPREFIX?= rubygem-
-EXTRACT_SUFX= .gem
-EXTRACT_ONLY=
-DIST_SUBDIR= rubygem
+GEM_EXT= .gem
+# needs to be disabled that rust cargo directories are correctly extracted
+#EXTRACT_ONLY=
+GEM_DIST_SUBDIR?= rubygem
BUILD_DEPENDS+= ${RUBYGEMBIN}:devel/ruby-gems
EXTRACT_DEPENDS+= ${RUBYGEMBIN}:devel/ruby-gems
@@ -63,15 +64,16 @@ PLIST_SUB+= PORTVERSION="${PORTVERSION}" \
GEM_DOC_DIR="${GEM_DOC_DIR}" \
GEM_SPEC="${GEM_SPEC}" \
GEM_CACHE="${GEM_CACHE}" \
- EXTRACT_SUFX="${EXTRACT_SUFX}"
+ GEM_EXT="${GEM_EXT}"
RUBYGEMBIN= ${LOCALBASE}/bin/gem
. if defined(DISTFILES)
-GEMFILES= ${DISTFILES:C/:[^:]+$//}
+GEMFILES?= ${DISTFILES:C/:[^:]+$//}
. else
-GEMFILES= ${DISTNAME}${EXTRACT_SUFX}
+GEMFILES?= ${DISTNAME}${GEM_EXT}
. endif
+DISTFILES+= ${GEM_DIST_SUBDIR}/${GEMFILES}
RUBYGEM_ARGS=-l --no-update-sources --install-dir ${STAGEDIR}${PREFIX}/lib/ruby/gems/${RUBY_VER} --ignore-dependencies --bindir=${STAGEDIR}${PREFIX}/bin
@@ -81,17 +83,16 @@ RUBYGEM_ARGS+= --document rdoc,ri
RUBYGEM_ARGS+= --no-document
. endif
-. if !target(do-extract)
-do-extract:
- @${SETENV} ${GEM_ENV} ${RUBYGEMBIN} unpack --target=${WRKDIR} ${DISTDIR}/${DIST_SUBDIR}/${GEMFILES}
- @(cd ${BUILD_WRKSRC}; if ! ${SETENV} ${GEM_ENV} ${RUBYGEMBIN} spec --ruby ${DISTDIR}/${DIST_SUBDIR}/${GEMFILES} > ${GEMSPEC} ; then \
+_USES_extract+= 590:gem-extract
+gem-extract:
+ @${SETENV} ${GEM_ENV} ${RUBYGEMBIN} unpack --target=${WRKDIR} ${DISTDIR}/${GEM_DIST_SUBDIR}/${GEMFILES}
+ @(cd ${BUILD_WRKSRC}; if ! ${SETENV} ${GEM_ENV} ${RUBYGEMBIN} spec --ruby ${DISTDIR}/${GEM_DIST_SUBDIR}/${GEMFILES} > ${GEMSPEC} ; then \
if [ -n "${BUILD_FAIL_MESSAGE}" ] ; then \
${ECHO_MSG} "===> Extraction failed unexpectedly."; \
(${ECHO_CMD} "${BUILD_FAIL_MESSAGE}") | ${FMT_80} ; \
fi; \
${FALSE}; \
fi)
-. endif
. if !target(do-build)
do-build: