# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 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 https://downloads.sourceforge.net/${PN}/${PN}-${DIST_VERSION}-data.tar " S="${WORKDIR}/${PN}-code-${COMMIT}" # 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:4 net-misc/curl sys-libs/zlib client? ( media-libs/libglvnd[X] media-libs/libjpeg-turbo:= 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[vorbis] media-libs/sdl2-ttf media-libs/xvid ) server? ( media-libs/libsdl2[threads(+)] ) " DEPEND=" ${RDEPEND} app-arch/unzip sys-devel/gettext virtual/pkgconfig " PATCHES=( "${FILESDIR}"/${P}-install.patch "${FILESDIR}"/${P}-mxml4.patch "${FILESDIR}"/${P}-flags.patch "${FILESDIR}"/${P}-no-register.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 }