From a978c074e4272bb901fbe4a10de0a7b2af574f17 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 4 May 2021 22:28:33 +0100 Subject: gentoo resync : 04.05.2021 --- eclass/wxwidgets.eclass | 137 ++++++++++++++++-------------------------------- 1 file changed, 46 insertions(+), 91 deletions(-) (limited to 'eclass/wxwidgets.eclass') diff --git a/eclass/wxwidgets.eclass b/eclass/wxwidgets.eclass index e1f77f0b7c2b..4357e7367cc7 100644 --- a/eclass/wxwidgets.eclass +++ b/eclass/wxwidgets.eclass @@ -4,14 +4,14 @@ # @ECLASS: wxwidgets.eclass # @MAINTAINER: # wxwidgets@gentoo.org -# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 7 +# @SUPPORTED_EAPIS: 7 # @BLURB: Manages build configuration for wxGTK-using packages. # @DESCRIPTION: # This eclass sets up the proper environment for ebuilds using the wxGTK # libraries. Ebuilds using wxPython do not need to inherit this eclass. # # More specifically, this eclass controls the configuration chosen by the -# /usr/bin/wx-config wrapper. +# ${ESYSROOT}/usr/bin/wx-config wrapper. # # Using the eclass is simple: # @@ -21,107 +21,71 @@ # The configuration chosen is based on the version required and the flags # wxGTK was built with. -if [[ -z ${_WXWIDGETS_ECLASS} ]]; then -_WXWIDGETS_ECLASS=1 - -inherit flag-o-matic - case ${EAPI:-0} in - 0|1|2|3|4|5) - inherit eutils multilib - - # This was used to set up a sane default for ebuilds so they could - # avoid calling need-wxwidgets if they didn't need a particular build. - # This was a bad idea for a couple different reasons, and because - # get_libdir() is now illegal in global scope in EAPI 6 we can't do it - # anymore. All ebuilds must now use setup-wxwidgets and this code is - # only here for backwards compatability. - if [[ -z ${WX_CONFIG} ]]; then - if [[ -n ${WX_GTK_VER} ]]; then - for _wxtoolkit in mac gtk2 base; do - # newer versions don't have a seperate debug config - for _wxdebug in xxx release- debug-; do - _wxconf="${_wxtoolkit}-unicode-${_wxdebug/xxx/}${WX_GTK_VER}" + [0-6]) die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}" ;; + 7) ;; + *) die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}" ;; +esac - [[ -f ${EPREFIX}/usr/$(get_libdir)/wx/config/${_wxconf} ]] \ - || continue +if [[ -z ${_WXWIDGETS_ECLASS} ]]; then +_WXWIDGETS_ECLASS=1 - WX_CONFIG="${EPREFIX}/usr/$(get_libdir)/wx/config/${_wxconf}" - WX_ECLASS_CONFIG="${WX_CONFIG}" - break - done - [[ -n ${WX_CONFIG} ]] && break - done - [[ -n ${WX_CONFIG} ]] && export WX_CONFIG WX_ECLASS_CONFIG - fi - fi - unset _wxtoolkit - unset _wxdebug - unset _wxconf - ;; - 6) inherit multilib ;; # compatibility only, not needed by eclass - 7) ;; - *) die "${ECLASS}: EAPI ${EAPI:-0} is not supported" ;; +# @ECLASS-VARIABLE: WX_GTK_VER +# @PRE_INHERIT +# @REQUIRED +# @DESCRIPTION: +# The SLOT of the x11-libs/wxGTK you're targeting. Needs to be defined before +# inheriting the eclass. Can be either "3.0" or "3.0-gtk3". +case ${WX_GTK_VER} in + 3.0|3.0-gtk3) ;; + "") die "WX_GTK_VER not declared" ;; + *) die "Invalid WX_GTK_VER: must be set to a valid wxGTK SLOT ('3.0' or '3.0-gtk3')" ;; esac +readonly WX_GTK_VER + +inherit flag-o-matic # @FUNCTION: setup-wxwidgets # @DESCRIPTION: -# Call this in your ebuild to set up the environment for wxGTK. Besides -# controlling the wx-config wrapper this exports WX_CONFIG containing -# the path to the config in case it needs to be passed to a build system. +# Call this in your ebuild to set up the environment for wxGTK in src_configure. +# Besides controlling the wx-config wrapper, this exports WX_CONFIG containing +# the path to the config in case it needs to be passed to the build system. # -# In wxGTK-2.9 and later it also controls the level of debugging output -# from the libraries. In these versions debugging features are enabled -# by default and need to be disabled at the package level. Because this -# causes many warning dialogs to pop up during runtime we add -DNDEBUG to -# CPPFLAGS to disable debugging features (unless your ebuild has a debug -# USE flag and it's enabled). If you don't like this behavior you can set -# WX_DISABLE_NDEBUG to override it. +# This function also controls the level of debugging output from the libraries. +# Debugging features are enabled by default and need to be disabled at the +# package level. Because this causes many warning dialogs to pop up during +# runtime, we add -DNDEBUG to CPPFLAGS to disable debugging features (unless +# your ebuild has a debug USE flag and it's enabled). If you don't like this +# behavior, you can set WX_DISABLE_NDEBUG to override it. # -# See: http://docs.wxwidgets.org/trunk/overview_debugging.html - +# See: https://docs.wxwidgets.org/trunk/overview_debugging.html setup-wxwidgets() { - local w wxtoolkit wxdebug wxconf + local w wxtoolkit wxconf - [[ -z ${WX_GTK_VER} ]] \ - && die "WX_GTK_VER must be set before calling $FUNCNAME." - - case "${WX_GTK_VER}" in - 3.0-gtk3) - wxtoolkit=gtk3 - if [[ -z ${WX_DISABLE_NDEBUG} ]]; then - ( in_iuse debug && use debug ) || append-cppflags -DNDEBUG - fi - ;; - 2.9|3.0) - wxtoolkit=gtk2 - if [[ -z ${WX_DISABLE_NDEBUG} ]]; then - ( in_iuse debug && use debug ) || append-cppflags -DNDEBUG - fi - ;; - 2.8) - wxtoolkit=gtk2 - wxdebug="release-" - has_version x11-libs/wxGTK:${WX_GTK_VER}[debug] && wxdebug="debug-" - ;; - *) - die "Invalid WX_GTK_VER: must be set to a valid wxGTK SLOT" - ;; + case ${WX_GTK_VER} in + 3.0-gtk3) wxtoolkit=gtk3 ;; + 3.0) wxtoolkit=gtk2 + eqawarn "This package relies on the deprecated GTK 2 slot, which will go away soon (https://bugs.gentoo.org/618642)" + ;; esac + if [[ -z ${WX_DISABLE_NDEBUG} ]]; then + { in_iuse debug && use debug; } || append-cppflags -DNDEBUG + fi + # toolkit overrides - if has_version "x11-libs/wxGTK:${WX_GTK_VER}[aqua]"; then + if has_version -d "x11-libs/wxGTK:${WX_GTK_VER}[aqua]"; then wxtoolkit="mac" - elif ! has_version "x11-libs/wxGTK:${WX_GTK_VER}[X]"; then + elif ! has_version -d "x11-libs/wxGTK:${WX_GTK_VER}[X]"; then wxtoolkit="base" fi - wxconf="${wxtoolkit}-unicode-${wxdebug}${WX_GTK_VER}" + wxconf="${wxtoolkit}-unicode-${WX_GTK_VER}" for w in "${CHOST:-${CBUILD}}-${wxconf}" "${wxconf}"; do - [[ -f ${ESYSROOT:-${EPREFIX}}/usr/$(get_libdir)/wx/config/${w} ]] && wxconf=${w} && break + [[ -f ${ESYSROOT}/usr/$(get_libdir)/wx/config/${w} ]] && wxconf=${w} && break done || die "Failed to find configuration ${wxconf}" - export WX_CONFIG="${ESYSROOT:-${EPREFIX}}/usr/$(get_libdir)/wx/config/${wxconf}" + export WX_CONFIG="${ESYSROOT}/usr/$(get_libdir)/wx/config/${wxconf}" export WX_ECLASS_CONFIG="${WX_CONFIG}" einfo @@ -130,13 +94,4 @@ setup-wxwidgets() { einfo } -case ${EAPI:-0} in - 0|1|2|3|4|5|6) - # deprecated - need-wxwidgets() { - setup-wxwidgets - } - ;; -esac - fi -- cgit v1.2.3