summaryrefslogtreecommitdiff
blob: aed316e3b02766e46843ff255229941e5f3aa752 (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
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-python/wxpython/wxpython-2.6.1.0.ebuild,v 1.6 2005/10/17 15:16:37 gustavoz Exp $

inherit python wxwidgets eutils multilib

MY_P="${P/wxpython-/wxPython-src-}"
DESCRIPTION="A blending of the wxWindows C++ class library with Python"
HOMEPAGE="http://www.wxpython.org/"
SRC_URI="mirror://sourceforge/wxpython/${MY_P}.tar.gz"

LICENSE="wxWinLL-3"
SLOT="2.6"
KEYWORDS="alpha ~amd64 arm hppa ia64 ~ppc sparc x86"
IUSE="gtk gtk2 unicode opengl"

RDEPEND=">=dev-lang/python-2.1
	=x11-libs/wxGTK-2.6*
	!<dev-python/wxpython-2.4.2.4-r1
	gtk2? ( >=x11-libs/gtk+-2.0
		>=x11-libs/pango-1.2
		>=dev-libs/glib-2.0 )
	unicode? ( >=x11-libs/gtk+-2.0
		>=x11-libs/pango-1.2
		>=dev-libs/glib-2.0 )
	!gtk2? ( =x11-libs/gtk+-1.2*
		=dev-libs/glib-1.2* )
	media-libs/libpng
	media-libs/jpeg
	media-libs/tiff
	>=sys-libs/zlib-1.1.4
	opengl? ( >=dev-python/pyopengl-2.0.0.44 )
	!<dev-python/wxpython-2.4.2.4-r1"

DEPEND="${RDEPEND}
	gtk2? ( dev-util/pkgconfig )
	sys-apps/sed"

S="${WORKDIR}/${MY_P}/wxPython/"

pkg_setup() {
	if  use unicode; then
		! use gtk2 && die "You must put gtk2 in your USE if you need unicode support"
	fi
}

src_unpack() {
	unpack ${A}
	cd ${S} || die "failed to cd to ${S}"
	sed -i "s:cflags.append('-O3'):pass:" config.py || die "sed failed"
	epatch ${FILESDIR}/scripts-multiver-${PV}.diff
}

src_compile() {
	local mypyconf
	export WX_GTK_VER="2.6"
	if ! use gtk2; then
		need-wxwidgets gtk
	elif use unicode; then
		need-wxwidgets unicode
	else
		need-wxwidgets gtk2
	fi

	mypyconf="${mypyconf} WX_CONFIG=${WX_CONFIG}"
	use opengl \
		&& 	mypyconf="${mypyconf} BUILD_GLCANVAS=1" \
		|| mypyconf="${mypyconf} BUILD_GLCANVAS=0"

	use gtk2 \
		&&	mypyconf="${mypyconf} WXPORT=gtk2" \
		|| mypyconf="${mypyconf} WXPORT=gtk"

	use unicode && mypyconf="${mypyconf} UNICODE=1"

	python setup.py ${mypyconf} build || die "build failed"
}

src_install() {
	python_version
	local mypyconf
	local site_pkgs=/usr/$(get_libdir)/python${PYVER}/site-packages
	dodir ${site_pkgs}

	if ! use gtk2; then
		need-wxwidgets gtk || die "Emerge wxGTK with wxgtk1 in USE"
	elif use unicode; then
		need-wxwidgets unicode || die "Emerge wxGTK with unicode in USE"
	else
		need-wxwidgets gtk2 || die "Emerge wxGTK with gtk2 in USE"
	fi

	mypyconf="${mypyconf} WX_CONFIG=${WX_CONFIG}"
	use opengl \
		&& mypyconf="${mypyconf} BUILD_GLCANVAS=1" \
		|| mypyconf="${mypyconf} BUILD_GLCANVAS=0"

	use gtk2 \
		&& mypyconf="${mypyconf} WXPORT=gtk2" \
		|| mypyconf="${mypyconf} WXPORT=gtk"

	use unicode && mypyconf="${mypyconf} UNICODE=1"

	python setup.py ${mypyconf} install --prefix=/usr --root=${D} || die

	if [ -e "${site_pkgs}/wx.pth" ] && [ "`grep -o 2.4 ${site_pkgs}/wx.pth`" = "2.4" ]; then
		rm ${D}/${site_pkgs}/wx.pth
		einfo "Keeping 2.4 as system default wxPython"
	else
		if use unicode; then
			wx_name=wx-${PV:0:3}-gtk2-unicode
		elif use gtk2; then
			wx_name=wx-${PV:0:3}-gtk2-ansi
		else
			wx_name=wx-${PV:0:3}-gtk-ansi
		fi

		einfo "Setting ${wx_name} as system default wxPython"
		echo ${wx_name} > ${D}/${site_pkgs}/wx.pth || \
			die "Couldn't create wx.pth"

	fi

	cp ${FILESDIR}/wxpy-config.py ${D}/${site_pkgs}/

	#Add ${PV} suffix to all /usr/bin/* programs to avoid clobbering SLOT'd
	for filename in ${D}/usr/bin/* ; do
		mv ${filename} ${filename}-2.6
	done
}

pkg_postinst() {

	einfo "Gentoo now uses the Multi-version method for SLOT'ing"
	einfo "Developers see this site for instructions on using 2.4 or 2.6"
	einfo "with your apps:"
	einfo "http://wiki.wxpython.org/index.cgi/MultiVersionInstalls"
	einfo "2.4 is still the default wxpython for now, but 2.6 apps should"
	einfo "see the above website for selecting the 2.6 lib"
}