blob: e1f77f0b7c2b947f3d87be5f6422d5aad4e2a01e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: wxwidgets.eclass
# @MAINTAINER:
# wxwidgets@gentoo.org
# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 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.
#
# 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
_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}"
[[ -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 multilib ;; # compatibility only, not needed by eclass
7) ;;
*) die "${ECLASS}: 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 w 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}"
for w in "${CHOST:-${CBUILD}}-${wxconf}" "${wxconf}"; do
[[ -f ${ESYSROOT:-${EPREFIX}}/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_ECLASS_CONFIG="${WX_CONFIG}"
einfo
einfo "Requested wxWidgets: ${WX_GTK_VER}"
einfo "Using wxWidgets: ${wxconf}"
einfo
}
case ${EAPI:-0} in
0|1|2|3|4|5|6)
# deprecated
need-wxwidgets() {
setup-wxwidgets
}
;;
esac
fi
|