1 # Copyright 1999-2019 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
6 MY_PV="${PV/_beta/-beta}"
7 MY_PV="${MY_PV/_rc/-RC}"
9 inherit desktop flag-o-matic xdg
11 DESCRIPTION="multiplayer strategy game (Civilization Clone)"
12 HOMEPAGE="http://www.freeciv.org/"
14 if [[ ${PV} != *_beta* ]] && [[ ${PV} != *_rc* ]] ; then
15 SRC_URI="mirror://sourceforge/freeciv/${MY_P}.tar.bz2"
16 KEYWORDS="~amd64 ~x86"
21 IUSE="aimodules auth dedicated +gtk ipv6 mapimg modpack mysql nls qt5 readline sdl +server +sound sqlite system-lua"
23 # postgres isn't yet really supported by upstream
28 nls? ( sys-devel/gettext )
37 !mysql? ( ( !sqlite? ( dev-db/mysql-connector-c:0= ) ) )
38 mysql? ( dev-db/mysql-connector-c:0= )
39 sqlite? ( dev-db/sqlite:3 )
41 dedicated? ( aimodules? ( dev-libs/libltdl:0 ) )
44 gtk? ( x11-libs/gtk+:2 )
45 mapimg? ( media-gfx/imagemagick:= )
46 modpack? ( x11-libs/gtk+:2 )
47 nls? ( virtual/libintl )
53 !sdl? ( !gtk? ( x11-libs/gtk+:2 ) )
55 media-libs/libsdl2[video]
57 media-libs/sdl2-image[png]
60 server? ( aimodules? ( sys-devel/libtool:2 ) )
62 media-libs/libsdl2[sound]
63 media-libs/sdl2-mixer[vorbis]
66 readline? ( sys-libs/readline:0= )
67 system-lua? ( >=dev-lang/lua-5.3:= )
71 S="${WORKDIR}/${MY_P}"
74 if use !dedicated && use !server ; then
75 ewarn "Disabling server USE flag will make it impossible"
76 ewarn "to start local games, but you will still be able to"
77 ewarn "join multiplayer games."
84 # install the .desktop in /usr/share/applications
85 # install the icons in /usr/share/pixmaps
87 -e 's:^.*\(desktopfiledir = \).*:\1/usr/share/applications:' \
88 -e 's:^\(icon[0-9]*dir = \)$(prefix)\(.*\):\1/usr\2:' \
89 -e 's:^\(icon[0-9]*dir = \)$(datadir)\(.*\):\1/usr/share\2:' \
93 data/icons/Makefile.in || die
94 sed -i -e 's/=SDL/=X-SDL/' bootstrap/freeciv-sdl.desktop.in || die
98 local myclient=() mydatabase=() myeconfargs=()
101 if ! use mysql && ! use sqlite ; then
102 einfo "No database backend chosen, defaulting"
106 use mysql && mydatabase+=( mysql )
107 use sqlite && mydatabase+=( sqlite3 )
113 if use dedicated ; then
117 --enable-freeciv-manual=html
120 if use !sdl && use !gtk && ! use qt5 ; then
121 einfo "No client backend given, defaulting to"
125 use sdl && myclient+=( sdl2 )
126 use gtk && myclient+=( gtk2 )
129 append-cxxflags -std=c++11
134 $(use_enable server freeciv-manual html )
139 --enable-aimodules="$(usex aimodules "yes" "no")"
140 --enable-client="${myclient[*]}"
141 --enable-fcdb="${mydatabase[*]}"
142 --enable-fcmp="$(usex modpack "gtk2" "no")"
143 # disabling shared libs will break aimodules USE flag
145 --localedir=/usr/share/locale
149 $(use_enable sound sdl-mixer)
150 $(use_enable system-lua sys-lua)
153 econf "${myeconfargs[@]}"
159 if use dedicated ; then
160 rm -rf "${ED}"/usr/share/pixmaps
161 rm -f "${ED}"/usr/share/man/man6/freeciv-{client,gtk2,gtk3,modpack,qt,sdl,xaw}*
164 # Create and install the html manual. It can't be done for dedicated
165 # servers, because the 'freeciv-manual' tool is then not built. Also
166 # delete freeciv-manual from the GAMES_BINDIR, because it's useless.
167 # Note: to have it localized, it should be ran from _postinst, or
168 # something like that, but then it's a PITA to avoid orphan files...
169 ./tools/freeciv-manual || die
174 make_desktop_entry freeciv-sdl "Freeciv (SDL)" freeciv-client
176 rm -f "${ED}"/usr/share/man/man6/freeciv-sdl*
178 rm -f "${ED}"/usr/share/man/man6/freeciv-xaw*
180 find "${ED}" -name "freeciv-manual*" -delete
182 rm -f "${ED}/usr/$(get_libdir)"/*.a
183 find "${ED}" -name "*.la" -delete || die