games-strategy/satellite-reign: Add missing unzip dependency
[gentoo.git] / games-strategy / ufoai / ufoai-2.5.0_p20180603.ebuild
1 # Copyright 1999-2018 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=6
5
6 inherit desktop flag-o-matic gnome2-utils toolchain-funcs versionator
7
8 # 2.5.0 requires several patches
9 COMMIT="8b4533e85fdc0665889ff285e1521432084ee784"
10
11 # UFO:AI v2.5.0 was uploaded to SourceForge as 2.5
12 DIST_VERSION=$(get_version_component_range 1-2)
13
14 # Install game data here
15 DATADIR="/usr/share/${PN}"
16
17 DESCRIPTION="UFO: Alien Invasion - X-COM inspired strategy game"
18 HOMEPAGE="https://ufoai.org/"
19 SRC_URI="
20         https://dev.gentoo.org/~chewi/distfiles/${PN}-code-${COMMIT}.zip
21         mirror://sourceforge/${PN}/${PN}-${DIST_VERSION}-data.tar
22         editor? ( mirror://sourceforge/${PN}/${PN}-${DIST_VERSION}-mappack.tar.bz2 )
23 "
24
25 # https://ufoai.org/licenses/
26 LICENSE="GPL-2 GPL-3 public-domain CC-BY-3.0 CC-BY-SA-3.0 MIT"
27 SLOT="0"
28 KEYWORDS="~amd64 ~x86"
29 IUSE="+client cpu_flags_x86_sse debug editor server"
30 REQUIRED_USE="|| ( client editor server )"
31
32 RDEPEND="
33         net-misc/curl
34         sys-libs/zlib
35
36         client? (
37                 media-libs/libogg
38                 media-libs/libpng:0=
39                 media-libs/libsdl2[joystick,opengl,sound,threads,video]
40                 media-libs/libtheora
41                 media-libs/libvorbis
42                 media-libs/sdl2-mixer
43                 media-libs/sdl2-ttf
44                 media-libs/xvid
45                 virtual/jpeg:0
46                 virtual/opengl
47         )
48
49         editor? (
50                 dev-libs/glib:2
51                 dev-libs/libxml2:2
52                 media-libs/libogg
53                 media-libs/libpng:0=
54                 media-libs/libsdl2[joystick,opengl,sound,threads,video]
55                 media-libs/libvorbis
56                 media-libs/openal
57                 virtual/glu
58                 virtual/jpeg:0
59                 x11-libs/gdk-pixbuf:2
60                 x11-libs/gtk+:2
61                 x11-libs/gtkglext
62                 x11-libs/gtksourceview:2.0
63         )
64
65         server? (
66                 media-libs/libsdl2[threads]
67         )
68 "
69
70 DEPEND="
71         ${RDEPEND}
72         app-arch/unzip
73         sys-devel/gettext
74         virtual/pkgconfig
75 "
76
77 S="${WORKDIR}/${PN}-code-${COMMIT}"
78 PATCHES=( "${FILESDIR}"/${P}-install.patch )
79
80 src_unpack() {
81         use editor && unpack ${PN}-${DIST_VERSION}-mappack.tar.bz2
82         unpack ${PN}-code-${COMMIT}.zip
83         cd "${S}" || die
84         unpack ${PN}-${DIST_VERSION}-data.tar
85 }
86
87 src_prepare() {
88         default
89
90         # Make the build system a bit happier, will be fixed upstream
91         mkdir -p base/{maps,models} contrib/installer/mojosetup/scripts || die
92 }
93
94 src_configure() {
95         # Avoid noise, will be present in 2.6
96         append-cxxflags -Wno-expansion-to-defined
97
98         # The configure script of UFO:AI is hand crafted and a bit special
99         # econf does not work: "invalid option --build=x86_64-pc-linux-gnu"
100         local config=(
101                 --prefix="${EPREFIX}"/usr
102                 --datadir="${EPREFIX}${DATADIR}"
103                 --libdir="${EPREFIX}"/usr/$(get_libdir)/${PN}
104                 --localedir="${EPREFIX}"/usr/share/locale
105                 --disable-dependency-tracking
106                 --disable-paranoid
107                 --disable-memory
108                 --disable-testall
109                 --disable-ufomodel
110                 --disable-ufoslicer
111                 $(use_enable cpu_flags_x86_sse sse)
112                 $(use_enable !debug release)
113                 $(use_enable server ufoded)
114                 $(use_enable client ufo)
115                 $(use_enable editor uforadiant)
116                 $(use_enable editor ufo2map)
117         )
118
119         if use client || use server; then
120                 config+=( --enable-game )
121         else
122                 config+=( --disable-game )
123         fi
124
125         echo ./configure "${config[@]}"
126
127         CC=$(tc-getCC) CXX=$(tc-getCXX) \
128           ./configure "${config[@]}" || die "configure failed"
129 }
130
131 src_compile() {
132         emake all lang Q=
133 }
134
135 src_install() {
136         newicon -s 32 src/ports/linux/ufo.png ${PN}.png
137         emake install Q= DESTDIR="${D}"
138
139         if use client; then
140                 doman debian/ufo.6
141                 make_desktop_entry ufo "UFO: Alien Invasion" ${PN}
142         fi
143
144         if use server; then
145                 doman debian/ufoded.6
146                 make_desktop_entry ufoded "UFO: Alien Invasion Server" ${PN} "Game;StrategyGame" "Terminal=true"
147         fi
148
149         if use editor; then
150                 doman debian/ufo{2map,radiant}.6
151                 make_desktop_entry uforadiant "UFO: Alien Invasion Map editor" ${PN}
152
153                 # Install map editor data (without the binary)
154                 rm radiant/uforadiant || die
155                 insinto "${DATADIR}"
156                 doins -r radiant
157
158                 # Install map sources
159                 insinto "${DATADIR}"/base/maps
160                 doins -r "${WORKDIR}"/${PN}-${DIST_VERSION}-mappack/*
161         fi
162 }
163
164 pkg_preinst() { gnome2_icon_savelist; }
165 pkg_postinst() { gnome2_icon_cache_update; }
166 pkg_postrm() { gnome2_icon_cache_update; }