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