sys-kernel/ck-sources: genpatches-4.16-10
[gentoo.git] / games-strategy / freeciv / freeciv-2.6.0_beta2.ebuild
1 # Copyright 1999-2018 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=6
5 inherit flag-o-matic gnome2-utils ltprune xdg-utils
6
7 DESCRIPTION="multiplayer strategy game (Civilization Clone)"
8 HOMEPAGE="http://www.freeciv.org/"
9 SRC_URI="mirror://sourceforge/freeciv/${P/_/-}.tar.bz2"
10
11 LICENSE="GPL-2+"
12 SLOT="0"
13 [[ ${PV} != *_beta* ]] || [[ ${PV} != *_rc* ]] || \
14 KEYWORDS="~amd64 ~ppc64 ~x86"
15 IUSE="auth aimodules dedicated +gtk ipv6 mapimg modpack mysql nls qt5 readline sdl +server +sound sqlite system-lua"
16
17 # postgres isn't yet really supported by upstream
18 RDEPEND="app-arch/bzip2
19         app-arch/xz-utils
20         net-misc/curl
21         sys-libs/zlib
22         auth? (
23                 mysql? ( virtual/mysql )
24                 sqlite? ( dev-db/sqlite:3 )
25                 !mysql? ( ( !sqlite? ( virtual/mysql ) ) )
26         )
27         readline? ( sys-libs/readline:0= )
28         dedicated? ( aimodules? ( dev-libs/libltdl:0 ) )
29         !dedicated? (
30                 media-libs/libpng:0
31                 gtk? ( x11-libs/gtk+:2 )
32                 mapimg? ( media-gfx/imagemagick:= )
33                 modpack? ( x11-libs/gtk+:2 )
34                 nls? ( virtual/libintl )
35                 qt5? (
36                         dev-qt/qtcore:5
37                         dev-qt/qtgui:5
38                         dev-qt/qtwidgets:5
39                 )
40                 sdl? (
41                         media-libs/libsdl2[video]
42                         media-libs/sdl2-gfx
43                         media-libs/sdl2-image[png]
44                         media-libs/sdl2-ttf
45                 )
46                 server? ( aimodules? ( sys-devel/libtool:2 ) )
47                 sound? (
48                         media-libs/libsdl2[sound]
49                         media-libs/sdl2-mixer[vorbis]
50                 )
51                 !sdl? ( !gtk? ( x11-libs/gtk+:2 ) )
52         )
53         system-lua? ( >=dev-lang/lua-5.3 )"
54 DEPEND="${RDEPEND}
55         virtual/pkgconfig
56         !dedicated? (
57                 x11-proto/xextproto
58                 nls? ( sys-devel/gettext )
59         )"
60
61 S="${WORKDIR}/${P/_/-}"
62
63 pkg_setup() {
64         if use !dedicated && use !server ; then
65                 ewarn "Disabling server USE flag will make it impossible"
66                 ewarn "to start local games, but you will still be able to"
67                 ewarn "join multiplayer games."
68         fi
69 }
70
71 src_prepare() {
72         default
73
74         # install the .desktop in /usr/share/applications
75         # install the icons in /usr/share/pixmaps
76         sed -i \
77                 -e 's:^.*\(desktopfiledir = \).*:\1/usr/share/applications:' \
78                 -e 's:^\(icon[0-9]*dir = \)$(prefix)\(.*\):\1/usr\2:' \
79                 -e 's:^\(icon[0-9]*dir = \)$(datadir)\(.*\):\1/usr/share\2:' \
80                 client/Makefile.in \
81                 server/Makefile.in \
82                 tools/Makefile.in \
83                 data/icons/Makefile.in || die
84         sed -i -e 's/=SDL/=X-SDL/' bootstrap/freeciv-sdl.desktop.in || die
85 }
86
87 src_configure() {
88         local myclient mydatabase myeconfargs
89
90         if use auth ; then
91                 if ! use mysql && ! use sqlite ; then
92                         einfo "No database backend chosen, defaulting"
93                         einfo "to mysql!"
94                         mydatabase=mysql
95                 else
96                         use mysql && mydatabase+=" mysql"
97                         use sqlite && mydatabase+=" sqlite3"
98                 fi
99         else
100                 mydatabase=no
101         fi
102
103         if use dedicated ; then
104                 myclient="no"
105                 myeconfargs+=(
106                         --enable-server
107                         --enable-freeciv-manual=html
108                 )
109         else
110                 if use !sdl && use !gtk && ! use qt5 ; then
111                         einfo "No client backend given, defaulting to"
112                         einfo "gtk2 client!"
113                         myclient="gtk2"
114                 else
115                         use sdl && myclient+=" sdl2"
116                         use gtk && myclient+=" gtk2"
117                         if use qt5 ; then
118                                 myclient+=" qt"
119                                 append-cxxflags -std=c++11
120                         fi
121                 fi
122                 myeconfargs+=(
123                         $(use_enable server)
124                         $(use_enable server freeciv-manual html )
125                 )
126         fi
127
128         myeconfargs+=(
129                 --enable-aimodules="$(usex aimodules "yes" "no")"
130                 --enable-client="${myclient}"
131                 --enable-fcdb="${mydatabase}"
132                 --enable-fcmp="$(usex modpack "gtk2" "no")"
133                 # disabling shared libs will break aimodules USE flag
134                 --enable-shared
135                 --localedir=/usr/share/locale
136                 $(use_enable ipv6)
137                 $(use_enable mapimg)
138                 $(use_enable nls)
139                 $(use_enable sound sdl-mixer)
140                 $(use_enable system-lua sys-lua)
141                 $(use_with readline)
142         )
143         econf "${myeconfargs[@]}"
144 }
145
146 src_install() {
147         default
148
149         if use dedicated ; then
150                 rm -rf "${ED%/}/usr/share/pixmaps"
151                 rm -f "${ED%/}"/usr/share/man/man6/freeciv-{client,gtk2,gtk3,modpack,qt,sdl,xaw}*
152         else
153                 if use server ; then
154                         # Create and install the html manual. It can't be done for dedicated
155                         # servers, because the 'freeciv-manual' tool is then not built. Also
156                         # delete freeciv-manual from the GAMES_BINDIR, because it's useless.
157                         # Note: to have it localized, it should be ran from _postinst, or
158                         # something like that, but then it's a PITA to avoid orphan files...
159                         ./tools/freeciv-manual || die
160                         docinto html
161                         dodoc classic*.html
162                 fi
163                 if use sdl ; then
164                         make_desktop_entry freeciv-sdl "Freeciv (SDL)" freeciv-client
165                 else
166                         rm -f "${ED%/}"/usr/share/man/man6/freeciv-sdl*
167                 fi
168                 rm -f "${ED%/}"/usr/share/man/man6/freeciv-xaw*
169         fi
170         find "${ED}" -name "freeciv-manual*" -delete
171
172         rm -f "${ED%/}/usr/$(get_libdir)"/*.a
173         prune_libtool_files
174 }
175
176 pkg_preinst() {
177         gnome2_icon_savelist
178 }
179
180 pkg_postinst() {
181         gnome2_icon_cache_update
182 }
183
184 pkg_postrm() {
185         gnome2_icon_cache_update
186 }