From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- eclass/wxwidgets.eclass | 139 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 eclass/wxwidgets.eclass (limited to 'eclass/wxwidgets.eclass') diff --git a/eclass/wxwidgets.eclass b/eclass/wxwidgets.eclass new file mode 100644 index 000000000000..63e8e22e64c0 --- /dev/null +++ b/eclass/wxwidgets.eclass @@ -0,0 +1,139 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# @ECLASS: wxwidgets.eclass +# @MAINTAINER: +# wxwidgets@gentoo.org +# @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. +# +# Using the eclass is simple: +# +# - set WX_GTK_VER equal to a SLOT of wxGTK +# - call setup-wxwidgets() +# +# The configuration chosen is based on the version required and the flags +# wxGTK was built with. + +if [[ -z ${_WXWIDGETS_ECLASS} ]]; then + +case ${EAPI} in + 0|1|2|3|4|5) + inherit eutils flag-o-matic 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}" + + [[ -f ${EPREFIX}/usr/$(get_libdir)/wx/config/${_wxconf} ]] \ + || continue + + 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 flag-o-matic multilib + ;; + *) + die "EAPI=${EAPI:-0} is not supported" + ;; +esac + +# @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. +# +# 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. +# +# See: http://docs.wxwidgets.org/trunk/overview_debugging.html + +setup-wxwidgets() { + local wxtoolkit wxdebug 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" + ;; + esac + + # toolkit overrides + if has_version "x11-libs/wxGTK:${WX_GTK_VER}[aqua]"; then + wxtoolkit="mac" + elif ! has_version "x11-libs/wxGTK:${WX_GTK_VER}[X]"; then + wxtoolkit="base" + fi + + wxconf="${wxtoolkit}-unicode-${wxdebug}${WX_GTK_VER}" + + [[ ! -f ${EPREFIX}/usr/$(get_libdir)/wx/config/${wxconf} ]] \ + && die "Failed to find configuration ${wxconf}" + + export WX_CONFIG="${EPREFIX}/usr/$(get_libdir)/wx/config/${wxconf}" + export WX_ECLASS_CONFIG="${WX_CONFIG}" + + echo + einfo "Requested wxWidgets: ${WX_GTK_VER}" + einfo "Using wxWidgets: ${wxconf}" + echo +} + +# deprecated +need-wxwidgets() { + setup-wxwidgets +} + +_WXWIDGETS_ECLASS=1 +fi -- cgit v1.2.3