diff options
author | V3n3RiX <venerix@koprulu.sector> | 2021-12-05 02:47:11 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2021-12-05 02:47:11 +0000 |
commit | 2771f79232c273bc2a57d23bf335dd81ccf6af28 (patch) | |
tree | c8af0fd04194aed03cf067d44e53c7edd3e9ab84 /eclass/ruby-fakegem.eclass | |
parent | e9d044d4b9b71200a96adfa280848858c0f468c9 (diff) |
gentoo resync : 05.12.2021
Diffstat (limited to 'eclass/ruby-fakegem.eclass')
-rw-r--r-- | eclass/ruby-fakegem.eclass | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/eclass/ruby-fakegem.eclass b/eclass/ruby-fakegem.eclass index 7f88c292e536..3832165761c9 100644 --- a/eclass/ruby-fakegem.eclass +++ b/eclass/ruby-fakegem.eclass @@ -123,6 +123,13 @@ RUBY_FAKEGEM_BINDIR="${RUBY_FAKEGEM_BINDIR-bin}" # the configuration script that needs to be run to generate the # extension. +# @ECLASS-VARIABLE: RUBY_FAKEGEM_EXTENSION_OPTIONS +# @DEFAULT_UNSET +# @DESCRIPTION: +# Additional options that are passed when configuring the +# extension. Some extensions use this to locate paths or turn specific +# parts of the extionsion on or off. + # @ECLASS-VARIABLE: RUBY_FAKEGEM_EXTENSION_LIBDIR # @DESCRIPTION: # The lib directory where extensions are copied directly after they have @@ -404,7 +411,7 @@ EOF each_fakegem_configure() { tc-export PKG_CONFIG for extension in "${RUBY_FAKEGEM_EXTENSIONS[@]}" ; do - ${RUBY} --disable=did_you_mean -C ${extension%/*} ${extension##*/} || die + CC=$(tc-getCC) ${RUBY} --disable=did_you_mean -C ${extension%/*} ${extension##*/} --with-cflags="${CFLAGS}" --with-ldflags="${LDFLAGS}" ${RUBY_FAKEGM_EXTENSION_OPTIONS} || die done } @@ -539,6 +546,24 @@ if [[ ${RUBY_FAKEGEM_RECIPE_TEST} != none ]]; then } fi +# @FUNCTION: ruby_fakegem_extensions_installed +# @DESCRIPTION: +# Install the marker indicating that extensions have been +# installed. This is normally done as part of the extension +# installation, but may be useful when we handle extensions manually. +ruby_fakegem_extensions_installed() { + mkdir -p "${ED}$(ruby_fakegem_extensionsdir)" || die + touch "${ED}$(ruby_fakegem_extensionsdir)/gem.build_complete" || die +} + +# @FUNCTION: ruby_fakegem_extensionsdir +# @DESCRIPTION: +# The directory where rubygems expects extensions for this package +# version. +ruby_fakegem_extensionsdir() { + echo "$(ruby_fakegem_gemsdir)/extensions/$(ruby_rbconfig_value 'arch')/$(ruby_rbconfig_value 'ruby_version')/${RUBY_FAKEGEM_NAME}-${RUBY_FAKEGEM_VERSION}" +} + # @FUNCTION: each_fakegem_install # @DESCRIPTION: # Install the package for each ruby target. @@ -555,14 +580,12 @@ each_fakegem_install() { if [[ -n ${RUBY_FAKEGEM_EXTENSIONS} ]] && [ ${#RUBY_FAKEGEM_EXTENSIONS[@]} -ge 0 ]; then einfo "installing extensions" - local _extensionsdir="$(ruby_fakegem_gemsdir)/extensions/$(ruby_rbconfig_value 'arch')/$(ruby_rbconfig_value 'ruby_version')/${RUBY_FAKEGEM_NAME}-${RUBY_FAKEGEM_VERSION}" for extension in ${RUBY_FAKEGEM_EXTENSIONS[@]} ; do - emake V=1 sitearchdir="${ED}${_extensionsdir}" sitelibdir="${ED}$(ruby_rbconfig_value 'sitelibdir')" -C ${extension%/*} install + emake V=1 sitearchdir="${ED}$(ruby_fakegem_extensionsdir)" sitelibdir="${ED}$(ruby_rbconfig_value 'sitelibdir')" -C ${extension%/*} install done - # Add the marker to indicate that the extensions are installed - touch "${ED}${_extensionsdir}/gem.build_complete" || die + ruby_fakegem_extensions_installed fi } |