diff options
author | Michał Górny <mgorny@gentoo.org> | 2017-03-17 17:53:38 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2017-03-24 17:32:29 +0100 |
commit | f1c4804b6007f512fb5de7cc1ec14696b7737e46 (patch) | |
tree | 4c3d9c3a8501e4d7afb6f9646559cb6874a2c3e0 /eclass/eutils.eclass | |
parent | net-misc/tigervnc-1.7.1-r2: ia64 stable, bug 612632 (diff) | |
download | gentoo-f1c4804b6007f512fb5de7cc1ec14696b7737e46.tar.gz gentoo-f1c4804b6007f512fb5de7cc1ec14696b7737e46.tar.bz2 gentoo-f1c4804b6007f512fb5de7cc1ec14696b7737e46.zip |
epunt-cxx.eclass: Split C++ check punting code out of eutils
Split the epunt_cxx (plus internal code) to a dedicated eclass. This is
rarely needed, usually indicates a dead upstream and requires
the ELT-patches framework. The patches are going to be split to
a separate package, and the new eclass will therefore need to DEPEND
on it. We do not want the dependency to apply to all eutils users
though.
Diffstat (limited to 'eclass/eutils.eclass')
-rw-r--r-- | eclass/eutils.eclass | 44 |
1 files changed, 2 insertions, 42 deletions
diff --git a/eclass/eutils.eclass b/eclass/eutils.eclass index c932d685c0e9..ea2a76200f09 100644 --- a/eclass/eutils.eclass +++ b/eclass/eutils.eclass @@ -20,7 +20,8 @@ _EUTILS_ECLASS=1 # implicitly inherited (now split) eclasses case ${EAPI:-0} in 0|1|2|3|4|5|6) - inherit epatch estack ltprune multilib toolchain-funcs + # note: we want to remove epunt-cxx retroactively for #566424 + inherit epatch epunt-cxx estack ltprune multilib toolchain-funcs ;; esac @@ -740,47 +741,6 @@ built_with_use() { [[ ${opt} = "-a" ]] } -# If an overlay has eclass overrides, but doesn't actually override the -# libtool.eclass, we'll have ECLASSDIR pointing to the active overlay's -# eclass/ dir, but libtool.eclass is still in the main Gentoo tree. So -# add a check to locate the ELT-patches/ regardless of what's going on. -# Note: Duplicated in libtool.eclass. -_EUTILS_ECLASSDIR_LOCAL=${BASH_SOURCE[0]%/*} -eutils_elt_patch_dir() { - local d="${ECLASSDIR}/ELT-patches" - if [[ ! -d ${d} ]] ; then - d="${_EUTILS_ECLASSDIR_LOCAL}/ELT-patches" - fi - echo "${d}" -} - -# @FUNCTION: epunt_cxx -# @USAGE: [dir to scan] -# @DESCRIPTION: -# Many configure scripts wrongly bail when a C++ compiler could not be -# detected. If dir is not specified, then it defaults to ${S}. -# -# https://bugs.gentoo.org/73450 -epunt_cxx() { - local dir=$1 - [[ -z ${dir} ]] && dir=${S} - ebegin "Removing useless C++ checks" - local f p any_found - while IFS= read -r -d '' f; do - for p in "$(eutils_elt_patch_dir)"/nocxx/*.patch ; do - if patch --no-backup-if-mismatch -p1 "${f}" "${p}" >/dev/null ; then - any_found=1 - break - fi - done - done < <(find "${dir}" -name configure -print0) - - if [[ -z ${any_found} ]]; then - eqawarn "epunt_cxx called unnecessarily (no C++ checks to punt)." - fi - eend 0 -} - # @FUNCTION: make_wrapper # @USAGE: <wrapper> <target> [chdir] [libpaths] [installpath] # @DESCRIPTION: |