diff --git a/sdk_container/src/third_party/portage-stable/eclass/qmake-utils.eclass b/sdk_container/src/third_party/portage-stable/eclass/qmake-utils.eclass index 67e13d7006..1f09cbd9ca 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/qmake-utils.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/qmake-utils.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2015 Gentoo Foundation +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: qmake-utils.eclass @@ -6,74 +6,29 @@ # qt@gentoo.org # @AUTHOR: # Davide Pesavento +# @SUPPORTED_EAPIS: 7 8 # @BLURB: Common functions for qmake-based packages. # @DESCRIPTION: -# Utility eclass providing wrapper functions for Qt4 and Qt5 qmake. +# Utility eclass providing wrapper functions for Qt5 qmake. # # This eclass does not set any metadata variables nor export any phase # functions. It can be inherited safely. +case ${EAPI} in + 7|8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; +esac + if [[ -z ${_QMAKE_UTILS_ECLASS} ]]; then _QMAKE_UTILS_ECLASS=1 -[[ ${EAPI:-0} == [012345] ]] && inherit eutils multilib -inherit estack toolchain-funcs - -# @FUNCTION: qt4_get_bindir -# @DESCRIPTION: -# Echoes the directory where Qt4 binaries are installed. -# EPREFIX is already prepended to the returned path. -qt4_get_bindir() { - [[ ${EAPI:-0} == [0123456] ]] || die "${FUNCNAME[1]} is banned in EAPI 7 and later" - has "${EAPI:-0}" 0 1 2 && use !prefix && EPREFIX= - - local qtbindir=${EPREFIX}$(qt4_get_libdir)/bin - if [[ -d ${qtbindir} ]]; then - echo ${qtbindir} - else - echo ${EPREFIX}/usr/bin - fi -} - -# @FUNCTION: qt4_get_headerdir -# @DESCRIPTION: -# Echoes the directory where Qt4 headers are installed. -qt4_get_headerdir() { - [[ ${EAPI:-0} == [0123456] ]] || die "${FUNCNAME[1]} is banned in EAPI 7 and later" - echo /usr/include/qt4 -} - -# @FUNCTION: qt4_get_libdir -# @DESCRIPTION: -# Echoes the directory where Qt4 libraries are installed. -qt4_get_libdir() { - [[ ${EAPI:-0} == [0123456] ]] || die "${FUNCNAME[1]} is banned in EAPI 7 and later" - echo /usr/$(get_libdir)/qt4 -} - -# @FUNCTION: qt4_get_mkspecsdir -# @DESCRIPTION: -# Echoes the directory where Qt4 mkspecs are installed. -qt4_get_mkspecsdir() { - [[ ${EAPI:-0} == [0123456] ]] || die "${FUNCNAME[1]} is banned in EAPI 7 and later" - echo /usr/share/qt4/mkspecs -} - -# @FUNCTION: qt4_get_plugindir -# @DESCRIPTION: -# Echoes the directory where Qt4 plugins are installed. -qt4_get_plugindir() { - [[ ${EAPI:-0} == [0123456] ]] || die "${FUNCNAME[1]} is banned in EAPI 7 and later" - echo $(qt4_get_libdir)/plugins -} +inherit toolchain-funcs # @FUNCTION: qt5_get_bindir # @DESCRIPTION: # Echoes the directory where Qt5 binaries are installed. # EPREFIX is already prepended to the returned path. qt5_get_bindir() { - has "${EAPI:-0}" 0 1 2 && use !prefix && EPREFIX= - echo ${EPREFIX}$(qt5_get_libdir)/qt5/bin } @@ -105,180 +60,6 @@ qt5_get_plugindir() { echo $(qt5_get_libdir)/qt5/plugins } -# @FUNCTION: qmake-utils_find_pro_file -# @RETURN: zero or one qmake .pro file names -# @INTERNAL -# @DESCRIPTION: -# Outputs a project file name that can be passed to eqmake. -# 0 *.pro files found --> outputs null string; -# 1 *.pro file found --> outputs its name; -# 2 or more *.pro files found --> if "${PN}.pro" or -# "$(basename ${S}).pro" are there, outputs one of them. -qmake-utils_find_pro_file() { - local dir_name=$(basename "${S}") - - # set nullglob to avoid expanding *.pro to the literal - # string "*.pro" when there are no matching files - eshopts_push -s nullglob - local pro_files=(*.pro) - eshopts_pop - - case ${#pro_files[@]} in - 0) - : ;; - 1) - echo "${pro_files}" - ;; - *) - for pro_file in "${pro_files[@]}"; do - if [[ ${pro_file%.pro} == ${dir_name} || ${pro_file%.pro} == ${PN} ]]; then - echo "${pro_file}" - break - fi - done - ;; - esac -} - -# @VARIABLE: EQMAKE4_EXCLUDE -# @DEFAULT_UNSET -# @DESCRIPTION: -# List of files to be excluded from eqmake4 CONFIG processing. -# Paths are relative to the current working directory (usually ${S}). -# -# Example: EQMAKE4_EXCLUDE="ignore/me.pro foo/*" - -# @FUNCTION: eqmake4 -# @USAGE: [project_file] [parameters to qmake] -# @DESCRIPTION: -# Wrapper for Qt4's qmake. If project_file is not specified, eqmake4 looks -# for one in the current directory (non-recursively). If multiple project -# files are found, then ${PN}.pro is used, if it exists, otherwise eqmake4 -# will not be able to continue. -# -# All other arguments are appended unmodified to qmake command line. -# -# For recursive build systems, i.e. those based on the subdirs template, -# you should run eqmake4 on the top-level project file only, unless you -# have a valid reason to do otherwise. During the building, qmake will -# be automatically re-invoked with the right arguments on every directory -# specified inside the top-level project file. -eqmake4() { - debug-print-function ${FUNCNAME} "$@" - - [[ ${EAPI:-0} == [0123456] ]] || die "${FUNCNAME[1]} is banned in EAPI 7 and later" - has "${EAPI:-0}" 0 1 2 && use !prefix && EPREFIX= - - ebegin "Running qmake" - - local qmake_args=("$@") - - # Check if the project file name was passed as first argument. If not, look for candidates. - local regexp='.*\.pro' - if ! [[ ${1} =~ ${regexp} ]]; then - local project_file=$(qmake-utils_find_pro_file) - if [[ -z ${project_file} ]]; then - echo - eerror "No project files found in '${PWD}'" - eerror "This shouldn't happen - please send a bug report to https://bugs.gentoo.org/" - echo - die "eqmake4 failed" - fi - qmake_args+=("${project_file}") - fi - - # Make sure the CONFIG variable is correctly set for both release and debug builds. - local config_add=release - local config_remove=debug - if in_iuse debug && use debug; then - config_add=debug - config_remove=release - fi - - local awkscript='BEGIN { - printf "### eqmake4 was here ###\n" > file; - printf "CONFIG -= debug_and_release %s\n", remove >> file; - printf "CONFIG += %s\n\n", add >> file; - fixed=0; - } - /^[[:blank:]]*CONFIG[[:blank:]]*[\+\*]?=/ { - if (gsub("\\<((" remove ")|(debug_and_release))\\>", "") > 0) { - fixed=1; - } - } - /^[[:blank:]]*CONFIG[[:blank:]]*-=/ { - if (gsub("\\<" add "\\>", "") > 0) { - fixed=1; - } - } - { - print >> file; - } - END { - print fixed; - }' - - [[ -n ${EQMAKE4_EXCLUDE} ]] && eshopts_push -o noglob - - local file - while read file; do - local excl - for excl in ${EQMAKE4_EXCLUDE}; do - [[ ${file} == ${excl} ]] && continue 2 - done - grep -q '^### eqmake4 was here ###$' "${file}" && continue - - local retval=$({ - rm -f "${file}" || echo FAIL - awk -v file="${file}" \ - -v add=${config_add} \ - -v remove=${config_remove} \ - -- "${awkscript}" || echo FAIL - } < "${file}") - - if [[ ${retval} == 1 ]]; then - einfo " - fixed CONFIG in ${file}" - elif [[ ${retval} != 0 ]]; then - eerror " - error while processing ${file}" - die "eqmake4 failed to process ${file}" - fi - done < <(find . -type f -name '*.pr[io]' -printf '%P\n' 2>/dev/null) - - [[ -n ${EQMAKE4_EXCLUDE} ]] && eshopts_pop - - "$(qt4_get_bindir)"/qmake \ - -makefile \ - QMAKE_AR="$(tc-getAR) cqs" \ - QMAKE_CC="$(tc-getCC)" \ - QMAKE_CXX="$(tc-getCXX)" \ - QMAKE_LINK="$(tc-getCXX)" \ - QMAKE_LINK_C="$(tc-getCC)" \ - QMAKE_OBJCOPY="$(tc-getOBJCOPY)" \ - QMAKE_RANLIB= \ - QMAKE_STRIP= \ - QMAKE_CFLAGS="${CFLAGS}" \ - QMAKE_CFLAGS_RELEASE= \ - QMAKE_CFLAGS_DEBUG= \ - QMAKE_CXXFLAGS="${CXXFLAGS}" \ - QMAKE_CXXFLAGS_RELEASE= \ - QMAKE_CXXFLAGS_DEBUG= \ - QMAKE_LFLAGS="${LDFLAGS}" \ - QMAKE_LFLAGS_RELEASE= \ - QMAKE_LFLAGS_DEBUG= \ - QMAKE_LIBDIR_QT="${EPREFIX}$(qt4_get_libdir)" \ - QMAKE_LIBDIR_X11="${EPREFIX}/usr/$(get_libdir)" \ - QMAKE_LIBDIR_OPENGL="${EPREFIX}/usr/$(get_libdir)" \ - "${qmake_args[@]}" - - if ! eend $? ; then - echo - eerror "Running qmake has failed! (see above for details)" - eerror "This shouldn't happen - please send a bug report to https://bugs.gentoo.org/" - echo - die "eqmake4 failed" - fi -} - # @FUNCTION: eqmake5 # @USAGE: [arguments for qmake] # @DESCRIPTION: