summaryrefslogtreecommitdiff
blob: ccb8680431bd7892fc5f2be7e2a94c3fa6a7a903 (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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-games/cegui/cegui-0.7.9.ebuild,v 1.1 2013/01/18 21:57:16 hasufell Exp $

EAPI=4
inherit eutils

MY_P=CEGUI-${PV}
MY_D=CEGUI-DOCS-${PV}
DESCRIPTION="Crazy Eddie's GUI System"
HOMEPAGE="http://www.cegui.org.uk/"
SRC_URI="mirror://sourceforge/crayzedsgui/${MY_P}.tar.gz
	doc? ( mirror://sourceforge/crayzedsgui/${MY_D}.tar.gz )"

LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 -ppc ~x86"
IUSE="bidi debug devil doc examples expat gtk irrlicht lua ogre opengl pcre static-libs tinyxml truetype xerces-c +xml zip"
REQUIRED_USE="|| ( expat tinyxml xerces-c xml )" # bug 362223

RDEPEND="bidi? ( dev-libs/fribidi )
	devil? ( media-libs/devil )
	expat? ( dev-libs/expat )
	truetype? ( media-libs/freetype:2 )
	irrlicht? ( dev-games/irrlicht )
	lua? (
		dev-lang/lua
		dev-lua/toluapp
	)
	ogre? ( >=dev-games/ogre-1.7 )
	opengl? (
		virtual/opengl
		virtual/glu
		media-libs/freeglut
		media-libs/glew
	)
	pcre? ( dev-libs/libpcre )
	tinyxml? ( dev-libs/tinyxml )
	xerces-c? ( dev-libs/xerces-c )
	xml? ( dev-libs/libxml2 )
	zip? ( sys-libs/zlib[minizip] )"
DEPEND="${RDEPEND}
	virtual/pkgconfig
	doc? ( app-doc/doxygen )"

S=${WORKDIR}/${MY_P}
S2=${WORKDIR}/${MY_P}_static

src_prepare() {
	# use minizip from zlib rather than local code
	if use zip ; then
		sed -i \
			-e '/CEGUI_BUILD_MINIZIP_RESOURCE_PROVIDER_TRUE/{
					s:minizip/ioapi.cpp minizip/unzip.cpp::;
					s:libCEGUIBase@cegui_bsfx@_la-ioapi.lo::;
					s:libCEGUIBase@cegui_bsfx@_la-unzip.lo::
				}' \
			-e '/^ZLIB_LIBS/s:=.*:= -lminizip:' \
			cegui/src/Makefile.in || die
	fi
	rm -rf cegui/src/minizip

	if use examples ; then
		cp -r Samples Samples.clean
		rm -f $(find Samples.clean -name 'Makefile*')
	fi

	if use static-libs ; then
		cp -a "${S}" "${S2}" || die
	fi
}

src_configure() {
	local myconf=(
		$(use_enable bidi bidirectional-text)
		$(use_enable debug)
		$(use_enable devil)
		$(use_enable examples samples)
		$(use_enable expat)
		$(use_enable truetype freetype)
		$(use_enable irrlicht irrlicht-renderer)
		$(use_enable lua lua-module)
		$(use_enable lua toluacegui)
		--enable-external-toluapp
		$(use_enable ogre ogre-renderer)
		$(use_enable opengl opengl-renderer)
		--enable-external-glew
		$(use_enable pcre)
		$(use_enable tinyxml)
		--enable-external-tinyxml
		$(use_enable xerces-c)
		$(use_enable xml libxml)
		$(use_enable zip minizip-resource-provider)
		--enable-null-renderer
		--enable-stb
		--enable-tga
		--disable-corona
		--disable-dependency-tracking
		--disable-freeimage
		--disable-rapidxml
		--disable-samples
		--disable-silly
		$(use_with gtk gtk2)
	)

	econf \
		"${myconf[@]}" \
		--disable-static \
		--enable-shared

	if use static-libs ; then
		cd "${S2}" || die
		econf \
			"${myconf[@]}" \
			--enable-static \
			--disable-shared
	fi

	# we are doing a double build here cause
	# the build system does not permit
	# "--enable-static --enable-shared"
}

src_compile() {
	default

	if use static-libs ; then
		emake -C "${S2}"
	fi
}

src_install() {
	local i
	default

	if use doc ; then
		emake html || die
		dohtml -r doc/doxygen/html/* || die
	fi
	if use examples ; then
		insinto /usr/share/doc/${PF}/Samples
		doins -r Samples.clean/* || die
	fi

	if use static-libs ; then
		find "${S2}" -name "*CEGUI*.a" -exec dolib.a '{}' \;

		# fix/merge .la files
		for i in `find "${D}" -name "*.la"` ; do
			sed \
				-e "s/old_library=''/old_library='$(basename ${i%.la}).a'/" \
				-i ${i} || die "fixing .la files failed"
		done
	else
		# remove .la files
		prune_libtool_files --all
	fi
}