summaryrefslogtreecommitdiff
blob: 20aaa6f22755a6605c6ccd92d58f41e1e61a8559 (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-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=5
WX_GTK_VER="3.0"
inherit eutils flag-o-matic multilib java-pkg-opt-2 autotools wxwidgets versionator multiprocessing

MY_P=${PN}-src-${PV}
PATH_P=${PN}-$(get_version_component_range 1-2)

DESCRIPTION="Portable 3D Game Development Kit written in C++"
HOMEPAGE="http://crystal.sourceforge.net/"
SRC_URI="mirror://sourceforge/crystal/${MY_P}.tar.bz2"

LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="3ds alsa bullet cal3d cegui cg doc java jpeg mng ode png speex truetype vorbis wxwidgets"

COMMON_DEP="virtual/opengl
	media-libs/openal
	x11-libs/libXt
	x11-libs/libXxf86vm
	sys-libs/zlib
	cg? ( media-gfx/nvidia-cg-toolkit )
	ode? ( <dev-games/ode-0.12 )
	cal3d? ( >=media-libs/cal3d-0.11 )
	jpeg? ( virtual/jpeg:0 )
	bullet? ( sci-physics/bullet )
	vorbis? ( media-libs/libvorbis )
	speex? ( media-libs/libogg
		media-libs/speex )
	truetype? ( >=media-libs/freetype-2.1 )
	alsa? ( media-libs/alsa-lib )
	mng? ( media-libs/libmng )
	png? ( media-libs/libpng:0 )
	wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
	cegui? ( >=dev-games/cegui-0.5.0 )
	3ds? ( media-libs/lib3ds )"

RDEPEND="${COMMON_DEP}
	java? ( >=virtual/jre-1.5 )"

DEPEND="${COMMON_DEP}
	java? ( >=virtual/jdk-1.5
		dev-java/ant-core )
	dev-util/ftjam
	<dev-lang/swig-3
	virtual/pkgconfig"

S=${WORKDIR}/${MY_P}

src_prepare() {
	# Installing doc conflict with dodoc on src_install
	# Removing conflicting target
	sed -i \
		-e "/^InstallDoc/d" \
		Jamfile.in \
		docs/Jamfile || die
	epatch \
		"${FILESDIR}"/${P}-gcc47.patch \
		"${FILESDIR}"/${P}-gcc52.patch \
		"${FILESDIR}"/${P}-wxgtk.patch
	use wxwidgets && append-libs -lGL
	AT_M4DIR=mk/autoconf \
		eautoreconf
}

src_configure() {
	if use wxwidgets; then
		need-wxwidgets unicode
	fi

	econf \
		--disable-as-needed \
		--enable-cpu-specific-optimizations=no \
		--disable-separate-debug-info \
		--without-lcms \
		--without-jackasyn \
		--without-perl \
		$(use_with java) \
		--disable-make-emulation \
		$(use_with bullet) \
		--without-python \
		$(use_with png) \
		$(use_with jpeg) \
		$(use_with mng) \
		$(use_with vorbis) \
		$(use_with speex) \
		$(use_with 3ds) \
		$(use_with ode) \
		$(use_with truetype freetype2) \
		$(use_with cal3d) \
		$(use_with wxwidgets wx) \
		$(use_with cegui CEGUI) \
		$(use_with cg Cg) \
		$(use_with alsa asound)
	#remove unwanted CFLAGS added by ./configure
	sed -i -e '/COMPILER\.CFLAGS\.optimize/d' \
		Jamconfig || die
}

src_compile() {
	jam -q -dx -j$(makeopts_jobs) || die
}

src_install() {
	for installTarget in bin plugin lib include data config bindings
	do
		jam -q -s DESTDIR="${D}" install_${installTarget} || die
	done
	if use doc; then
		jam -q -s DESTDIR="${D}" install_doc || die
	fi
	dodoc README docs/history*

	echo "CRYSTAL_PLUGIN=/usr/$(get_libdir)/${PATH_P}" > 90crystalspace
	echo "CRYSTAL_CONFIG=/etc/${PATH_P}" >> 90crystalspace
	doenvd 90crystalspace
}

pkg_postinst() {
	elog "Examples coming with this package, need correct light calculation"
	elog "Do the following commands, with the root account, to fix that:"
	# Fill cache directory for the examples
	local dir
	for dir in castle flarge isomap parallaxtest partsys r3dtest stenciltest \
		terrain terrainf;
	do
		elog "cslight -video=null /usr/share/${PATH_P}/data/maps/${dir}"
	done
}