summaryrefslogtreecommitdiff
blob: cf3628a1b2e26a36eefb060bd7a4f00dcf0ab1e8 (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
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/gtk-engines2.eclass,v 1.12 2005/07/11 15:08:06 swegener Exp $

# Author: Alastair Tse <liquidx@gentoo.org>
#
# This is a utility eclass for installing GTK+ Theme Engines. It detects
# whether gtk+-1 and/or gtk+-2 is installed and sets up variables to help with
# installing the engines into the right position.
#
# Variables it sets are :
#
#  HAS_GTK1 / HAS_GTK2   -- simply if GTK+1 or GTK+2 is installed
#  GTK1_ENGINES_DIR      -- directory where gtk+1 engines are installed
#  GTK2_ENGINES_DIR      -- directory where gtk+2 engines are installed
#
# *** NOTE *** If your engine has both GTK+1 and GTK+2 versions :
#
#  Set the following variables if they are in different directories:
#
#  GTK1_S  -- GTK+1 Source Directory
#  GTK2_S  -- GTK+2 Source Directory
#
#  Also note you should not set DEPEND and let the eclass set the dependencies
#
# Comments:
#
# Most theme engines include ./configure scripts that solve most of the
# path problems. Sometimes there are certain versions that have trouble
# with paths. If they do, then you can use the above variables
#
# We do not employ USE flags "gtk" and "gtk2" because they are unsuitable
# in this case. We install the whole package of themes available, both
# GTK+1 and GTK+2 if available. We assume that the user would want both
# since the space savings are negligible.
#
# Note that this deals specifically with GTK ENGINES and not GTK THEMES. Some
# engines have themes that accompany them, and they are thus installed. You
# should not be using this eclass (it won't help anyway) if you are making
# a pure GTK+ theme ebuild.
#
# - liquidx@gentoo.org (16 Jun 2003)

inherit eutils


DESCRIPTION="GTK+1/2 ${PN/gtk-engines-} Theme Engine"
HOMEPAGE="http://art.gnome.org/ http://themes.freshmeat.net/"

# --- here we define some useful variables for gtk-engines installation

if has_version "=x11-libs/gtk+-1.2*"; then
	HAS_GTK1=1
	GTK1_ENGINES_DIR=/usr/$(get_libdir)/gtk/themes/engines
fi

if has_version ">=x11-libs/gtk+-2" || use gtk2; then
	HAS_GTK2=1
	GTK2_FULL_VER=$(pkg-config gtk+-2.0 --modversion 2>/dev/null)
	GTK2_MAJOR_VER=${GTK2_FULL_VER%.*}.0
	GTK2_ENGINES_DIR=/usr/$(get_libdir)/gtk-2.0/${GTK2_MAJOR_VER}/engines
fi

# --- define some deps for binary packages
if [ -n "${HAS_GTK1}" -a ! -n "${HAS_GTK2}" ]; then
	DEPEND="${DEPEND} =x11-libs/gtk+-1.2*"
elif [ -n "${HAS_GTK1}" -a -n "${HAS_GTK2}" ]; then
	DEPEND="${DEPEND} =x11-libs/gtk+-1.2* =x11-libs/gtk+-2*"
elif [ ! -n "${HAS_GTK1}" -a -n "${HAS_GTK2}" ]; then
	DEPEND="${DEPEND} >=x11-libs/gtk+-2"
fi

# --- if we don't have any gtk version, we depend on USE flags to tell us
# --- which one to use. otherwise, we don't add any deps. make the ebuild
# --- tell us what DEPEND it wants.

if ! has_version "x11-libs/gtk+"; then
	DEPEND="gtk2? ( >=x11-libs/gtk+-2 ) !gtk2? ( =x11-libs/gtk+-1.2* )"
	use gtk2 \
		&& HAS_GTK2=1 \
		|| HAS_GTK1=1
fi

# --- if GTK1_S and GTK2_S is set, then we do both themes,
# --- otherwise, just do the normal src_compile/install wrap.

gtk-engines2_src_compile() {

	if [ -n "${GTK2_S}" -a -n "${GTK1_S}" ]; then
		if [ -n "${HAS_GTK2}" ]; then
			cd ${GTK2_S}
			econf || die "gtk2 configure failed"
			emake || die "gtk2 make failed"
	    fi
		if [ -n "${HAS_GTK1}" ]; then
			cd ${GTK1_S}
			econf || die "gtk1 configure failed"
			emake || die "gtk1 make failed"
	    fi
	else
		cd ${S}
		econf ${@} || die "configure failed"
		emake || make || die "make failed"
	fi
}

DEFAULT_DOCS="COPYING README NEWS AUTHORS ChangeLog INSTALL"

gtk-engines2_src_install() {

	if [ -n "${GTK2_S}" -a -n "${GTK1_S}" ]; then
		if [ -n "${HAS_GTK2}" ]; then
			cd ${GTK2_S}
			make DESTDIR=${D} install || die "gtk2 install failed"
			for x in ${DEFAULT_DOCS} ${DOCS}; do
				newdoc ${x} ${x}.gtk2
			done
		fi
		if [ -n "${HAS_GTK1}" ]; then
			cd ${GTK1_S}
			make DESTDIR=${D} install || die "gtk1 install failed"
			for x in ${DEFAULT_DOCS} ${DOCS}; do
				newdoc ${x} ${x}.gtk1
			done
	    fi
	else
		cd ${S}
		make DESTDIR=${D} ${@} install || die "install failed"
		dodoc ${DEFAULT_DOCS} ${DOCS}
	fi
}

EXPORT_FUNCTIONS src_compile src_install