forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
0ad-0.0.20_alpha.ebuild
151 lines (123 loc) · 3.42 KB
/
0ad-0.0.20_alpha.ebuild
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
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
WX_GTK_VER="3.0"
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE="threads,ssl"
inherit eutils wxwidgets toolchain-funcs gnome2-utils python-any-r1 games
MY_P=0ad-${PV/_/-}
DESCRIPTION="A free, real-time strategy game"
HOMEPAGE="http://play0ad.com/"
SRC_URI="mirror://sourceforge/zero-ad/${MY_P}-unix-build.tar.xz"
LICENSE="GPL-2 LGPL-2.1 MIT CC-BY-SA-3.0 ZLIB"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="editor +lobby nvtt pch sound test"
RESTRICT="test"
RDEPEND="
dev-libs/boost:=
dev-libs/icu:=
dev-libs/libxml2
dev-libs/nspr
~games-strategy/0ad-data-${PV}
media-libs/libpng:0
media-libs/libsdl2[X,opengl,video]
net-libs/enet:1.3
net-libs/miniupnpc:=
net-misc/curl
sys-libs/zlib
virtual/jpeg:0
virtual/opengl
x11-libs/libX11
x11-libs/libXcursor
editor? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
lobby? ( net-libs/gloox )
nvtt? ( media-gfx/nvidia-texture-tools )
sound? ( media-libs/libvorbis
media-libs/openal )"
DEPEND="${RDEPEND}
${PYTHON_DEPS}
virtual/pkgconfig
test? ( dev-lang/perl )"
S=${WORKDIR}/${MY_P}
pkg_setup() {
games_pkg_setup
python-any-r1_pkg_setup
}
src_prepare() {
epatch "${FILESDIR}"/${P}-gentoo.patch
}
src_configure() {
local myconf=(
--with-system-nvtt
--with-system-miniupnpc
--minimal-flags
$(usex nvtt "" "--without-nvtt")
$(usex pch "" "--without-pch")
$(usex test "" "--without-tests")
$(usex sound "" "--without-audio")
$(usex editor "--atlas" "")
$(usex lobby "" "--without-lobby")
--collada
--bindir="${GAMES_BINDIR}"
--libdir="$(games_get_libdir)"/${PN}
--datadir="${GAMES_DATADIR}"/${PN}
)
# stock premake4 does not work, use the shipped one
emake -C "${S}"/build/premake/premake4/build/gmake.unix
# regenerate scripts.c so our patch applies
cd "${S}"/build/premake/premake4 || die
"${S}"/build/premake/premake4/bin/release/premake4 embed || die
# rebuild premake again... this is the most stupid build system
emake -C "${S}"/build/premake/premake4/build/gmake.unix clean
emake -C "${S}"/build/premake/premake4/build/gmake.unix
# run premake to create build scripts
cd "${S}"/build/premake || die
"${S}"/build/premake/premake4/bin/release/premake4 \
--file="premake4.lua" \
--outpath="../workspaces/gcc/" \
--platform=$(usex amd64 "x64" "x32") \
--os=linux \
"${myconf[@]}" \
gmake || die "Premake failed"
}
src_compile() {
tc-export AR
# build bundled and patched spidermonkey
cd libraries/source/spidermonkey || die
JOBS="${MAKEOPTS}" ./build.sh || die
cd "${S}" || die
# build 3rd party fcollada
emake -C libraries/source/fcollada/src
# build 0ad
emake -C build/workspaces/gcc verbose=1
}
src_test() {
cd binaries/system || die
./test -libdir "${S}/binaries/system" || die "test phase failed"
}
src_install() {
newgamesbin binaries/system/pyrogenesis 0ad
use editor && newgamesbin binaries/system/ActorEditor 0ad-ActorEditor
insinto "${GAMES_DATADIR}"/${PN}
doins -r binaries/data/l10n
exeinto "$(games_get_libdir)"/${PN}
doexe binaries/system/libCollada.so
doexe libraries/source/spidermonkey/lib/*.so
use editor && doexe binaries/system/libAtlasUI.so
dodoc binaries/system/readme.txt
doicon -s 128 build/resources/${PN}.png
make_desktop_entry ${PN}
prepgamesdirs
}
pkg_preinst() {
games_pkg_preinst
gnome2_icon_savelist
}
pkg_postinst() {
games_pkg_postinst
gnome2_icon_cache_update
}
pkg_postrm() {
gnome2_icon_cache_update
}