# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 inherit desktop flag-o-matic toolchain-funcs xdg # 2.5.0 requires several patches COMMIT="8b4533e85fdc0665889ff285e1521432084ee784" # UFO:AI v2.5.0 was uploaded to SourceForge as 2.5 DIST_VERSION=$(ver_cut 1-2) # Install game data here DATADIR="/usr/share/${PN}" DESCRIPTION="UFO: Alien Invasion - X-COM inspired strategy game" HOMEPAGE="https://ufoai.org/" SRC_URI=" https://dev.gentoo.org/~chewi/distfiles/${PN}-code-${COMMIT}.zip mirror://sourceforge/${PN}/${PN}-${DIST_VERSION}-data.tar " # https://ufoai.org/licenses/ LICENSE="GPL-2 GPL-3 public-domain CC-BY-3.0 CC-BY-SA-3.0 MIT" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="+client cpu_flags_x86_sse debug server" REQUIRED_USE="|| ( client server )" RDEPEND=" dev-libs/mxml net-misc/curl sys-libs/zlib client? ( media-libs/libogg media-libs/libpng:0= media-libs/libsdl2[joystick,opengl,sound,threads,video] media-libs/libtheora media-libs/libvorbis media-libs/sdl2-mixer media-libs/sdl2-ttf media-libs/xvid virtual/jpeg:0 virtual/opengl ) server? ( media-libs/libsdl2[threads] ) " DEPEND=" ${RDEPEND} app-arch/unzip sys-devel/gettext virtual/pkgconfig " S="${WORKDIR}/${PN}-code-${COMMIT}" PATCHES=( "${FILESDIR}"/${P}-install.patch "${FILESDIR}"/${P}-mxml3.patch ) src_unpack() { unpack ${PN}-code-${COMMIT}.zip cd "${S}" || die unpack ${PN}-${DIST_VERSION}-data.tar } src_prepare() { default # Make the build system a bit happier, will be fixed upstream mkdir -p base/{maps,models} contrib/installer/mojosetup/scripts || die # Remove bundled mxml rm -r src/libs/mxml/ || die } src_configure() { # Avoid noise, will be present in 2.6 append-cxxflags -Wno-expansion-to-defined # The configure script of UFO:AI is hand crafted and a bit special # econf does not work: "invalid option --build=x86_64-pc-linux-gnu" local config=( --prefix="${EPREFIX}"/usr --datadir="${EPREFIX}${DATADIR}" --libdir="${EPREFIX}"/usr/$(get_libdir)/${PN} --localedir="${EPREFIX}"/usr/share/locale --disable-paranoid --disable-memory --disable-testall --disable-ufomodel --disable-ufoslicer $(use_enable cpu_flags_x86_sse sse) $(use_enable !debug release) $(use_enable server ufoded) $(use_enable client ufo) --disable-uforadiant --disable-ufo2map ) if use client || use server; then config+=( --enable-game ) else config+=( --disable-game ) fi echo ./configure "${config[@]}" CC="$(tc-getCC)" CXX="$(tc-getCXX)" \ ./configure "${config[@]}" || die "configure failed" } src_compile() { emake all lang Q= } src_install() { newicon -s 32 src/ports/linux/ufo.png ${PN}.png emake install Q= DESTDIR="${D}" if use client; then doman debian/ufo.6 make_desktop_entry ufo "UFO: Alien Invasion" ${PN} fi if use server; then doman debian/ufoded.6 make_desktop_entry ufoded "UFO: Alien Invasion Server" ${PN} "Game;StrategyGame" "Terminal=true" fi }