summaryrefslogtreecommitdiff
blob: 11f0baaef4256ecd001fa33a6556b45d1824110a (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
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI="3"

inherit  cmake-utils games subversion

DESCRIPTION="FreeOrion is a free and open source clone of Master Of Orion"
HOMEPAGE="http://www.freeorion.org"
ESVN_REPO_URI="https://${PN}.svn.sourceforge.net/svnroot/${PN}/trunk/FreeOrion"
ESVN_PROJECT="${PN}"

LICENSE="GPL-2 CCPL-Attribution-ShareAlike-3.0"
KEYWORDS="~amd64 ~x86"
IUSE="cg debug threads"

SLOT="0"

RDEPEND="
	!dev-games/gigi
	dev-games/gigi-fo[threads=,ogre,ois]
	>=dev-games/ogre-1.8.0[threads=]
	<dev-lang/python-3
	>=dev-libs/boost-1.50[threads=]
	media-gfx/graphviz
	>=media-libs/freealut-1.1.0
	>=media-libs/libogg-1.3.0
	>=media-libs/libvorbis-1.3.2
	>=media-libs/openal-1.14
	>=sci-physics/bullet-2.77
	media-libs/libpng:1.2
	media-libs/freetype:2
	>=sys-libs/zlib-1.2.5"

DEPEND="${RDEPEND}
	sys-devel/libtool
	dev-util/pkgconfig"

CMAKE_USE_DIR="${S}"

src_unpack() {
	subversion_src_unpack
}

src_prepare() {
	# Let's make the autorevision work.
	subversion_wc_info
	sed -i -e \
		"s:svn_revision_number ???:svn_revision_number ${ESVN_WC_REVISION}:" \
		CMakeLists.txt || die "sed FreeOrion/CMakeLists.txt failed"

	# remove cmake calls to GG
	epatch "${FILESDIR}/unbundle_gigi.patch"
}

src_configure() {
	# Due to the testing nature of gigi and freeorion,
	# and all the ogre+boost stuff, flags should be filtered:
	strip-flags

	# Type-Pun pointers always break strict aliasing rules,
	# and this thing is full of those
	append-flags -fno-strict-aliasing

	local mycmakeargs=(
		$(cmake-utils_use_enable debug DEBUG)
		$(cmake-utils_use_build debug DEBUG)
		"-DCMAKE_INSTALL_PREFIX=${GAMES_PREFIX}/${PN}"
		"-DCMAKE_INSTALL_ICONDIR=${GAMES_DATADIR_BASE}/pixmaps/"
		"-DCMAKE_INSTALL_DESKTOPDIR=${GAMES_DATADIR_BASE}/applications/"
		"-DCMAKE_DOC_DIR=/usr/share/doc/${PF}"
		"-DCMAKE_MAN_DIR=/usr/share/man"
		"-DCMAKE_DATA_DIR=${GAMES_DATADIR}"
		"-DCMAKE_DATA_PATH=${GAMES_DATADIR}"
	)

	cmake-utils_src_configure
}

src_compile() {
	cmake-utils_src_compile
}

src_install() {
	cmake-utils_src_install

	## This is a rather wild thing, but I can't think of a quicker way right now:
	# Add ogre_plugins config:

	OGRECFG="${D}/${GAMES_PREFIX}/${PN}/ogre_plugins.cfg"
	cat > ${OGRECFG} <<EOF
# Plugin folder
PluginFolder=/usr/lib64/OGRE
# Plugins
Plugin=RenderSystem_GL
Plugin=Plugin_ParticleFX
Plugin=Plugin_OctreeSceneManager
EOF

	## Extra-Plugin with cg enabled:
	use cg && echo "Plugin=Plugin_CgProgramManager" >> ${OGRECFG}

	prepgamesdirs
}