summaryrefslogtreecommitdiff
blob: ccfccf61ae7a2f374623d37085c3abce6298abea (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
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/gtk-engines2.eclass,v 1.2 2003/06/21 13:43:05 liquidx 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)

ECLASS="gtk-engines2"
INHERITED="$INHERITED $ECLASS"

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/lib/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)
	GTK2_MAJOR_VER=${GTK2_FULL_VER%.*}.0
	GTK2_ENGINES_DIR=/usr/lib/gtk-2.0/${GTK2_MAJOR_VER}/engines
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
	use gtk2 \
		&& newdepend ">=x11-libs/gtk+-2" \
		|| newdepend "=x11-libs/gtk+-1.2*"
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