182 lines
5.8 KiB
Bash
182 lines
5.8 KiB
Bash
# Copyright 2016 Julian Ospald <hasufell@posteo.de>
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
require desktop-utils gtk-icon-cache freedesktop-desktop freedesktop-mime
|
|
require alternatives
|
|
|
|
export_exlib_phases src_unpack src_prepare src_configure src_compile src_install pkg_postinst pkg_postrm
|
|
|
|
SUMMARY="A free RTS engine supporting games like Command & Conquer and Red Alert"
|
|
HOMEPAGE="http://www.openra.net/"
|
|
|
|
LICENCES="GPL-3"
|
|
|
|
MYOPTIONS="
|
|
( providers: ijg-jpeg jpeg-turbo ) [[ number-selected = exactly-one ]]
|
|
"
|
|
|
|
DEPENDENCIES="
|
|
build:
|
|
virtual/unzip
|
|
build+run:
|
|
dev-dotnet/libgdiplus
|
|
dev-lang/mono[>=4.2]
|
|
media-libs/SDL:2[X]
|
|
media-libs/freetype:2
|
|
media-libs/openal
|
|
x11-dri/mesa
|
|
providers:ijg-jpeg? ( media-libs/jpeg:= )
|
|
providers:jpeg-turbo? ( media-libs/libjpeg-turbo )
|
|
run:
|
|
!games-strategy/openra:0 [[
|
|
description = [ File conflict with new SLOT layout ]
|
|
resolution = [ uninstall-blocked-after ]
|
|
]]
|
|
x11-apps/xdg-utils
|
|
suggestion:
|
|
gnome-desktop/zenity [[ description = [ Graphical error dialogs ] ]]
|
|
"
|
|
|
|
WORK=${WORKBASE}/OpenRA-${SLOT}-${PV}
|
|
|
|
MV_FILES=(
|
|
/usr/share/applications/openra-cnc.desktop
|
|
/usr/share/applications/openra-ra.desktop
|
|
/usr/share/applications/openra-d2k.desktop
|
|
/usr/share/applications/openra-cnc-join-servers.desktop
|
|
/usr/share/applications/openra-ra-join-servers.desktop
|
|
/usr/share/applications/openra-d2k-join-servers.desktop
|
|
|
|
/usr/share/icons/hicolor/128x128/apps/openra-cnc.png
|
|
/usr/share/icons/hicolor/16x16/apps/openra-cnc.png
|
|
/usr/share/icons/hicolor/32x32/apps/openra-cnc.png
|
|
/usr/share/icons/hicolor/48x48/apps/openra-cnc.png
|
|
/usr/share/icons/hicolor/64x64/apps/openra-cnc.png
|
|
/usr/share/icons/hicolor/scalable/apps/openra-cnc.svg
|
|
|
|
/usr/share/icons/hicolor/16x16/apps/openra-ra.png
|
|
/usr/share/icons/hicolor/32x32/apps/openra-ra.png
|
|
/usr/share/icons/hicolor/48x48/apps/openra-ra.png
|
|
/usr/share/icons/hicolor/64x64/apps/openra-ra.png
|
|
/usr/share/icons/hicolor/scalable/apps/openra-ra.svg
|
|
|
|
/usr/share/icons/hicolor/16x16/apps/openra-d2k.png
|
|
/usr/share/icons/hicolor/32x32/apps/openra-d2k.png
|
|
/usr/share/icons/hicolor/48x48/apps/openra-d2k.png
|
|
/usr/share/icons/hicolor/64x64/apps/openra-d2k.png
|
|
)
|
|
|
|
openra-build_src_unpack() {
|
|
unpack openra-${SLOT}-${PV}.tar.gz
|
|
|
|
edo mkdir "${WORK}"/thirdparty/download
|
|
|
|
edo cd "${WORK}"/thirdparty
|
|
edo sed -i \
|
|
-e 's|curl .*$|: |' \
|
|
fetch-thirdparty-deps.sh
|
|
|
|
cat <<EOF > noget.sh
|
|
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
archive="\${1/./_}"
|
|
version="\${2}"
|
|
mkdir -p "${WORK}"/thirdparty/download/\${1}
|
|
unzip -o -qq "${FETCHEDDIR}"/\${archive}-\${version}.zip \
|
|
-d "${WORK}"/thirdparty/download/\${1}
|
|
EOF
|
|
|
|
edo ./fetch-thirdparty-deps.sh
|
|
|
|
edo cd "${WORK}"/thirdparty/download
|
|
edo cp "${FETCHEDDIR}"/${SDL2CS##* } ./SDL2-CS.dll
|
|
edo cp "${FETCHEDDIR}"/${Eluant##* } ./Eluant.dll
|
|
edo cp "${FETCHEDDIR}"/${GEO_IP_DB##* } ./GeoLite2-Country.mmdb.gz
|
|
edo cp "${FETCHEDDIR}"/${OpenAL_CS##* } ./OpenAL-CS.dll
|
|
edo cp "${FETCHEDDIR}"/${OpenAL_CS_config##* } ./OpenAL-CS.dll.config
|
|
}
|
|
|
|
openra-build_src_configure() { :; }
|
|
|
|
openra-build_src_prepare() {
|
|
# register game-version
|
|
emake VERSION="${SLOT}-${PV}" version
|
|
|
|
edo sed \
|
|
-e "s/@LIBLUA51@/liblua5.1.so/" \
|
|
"${WORK}"/thirdparty/Eluant.dll.config.in > Eluant.dll.config
|
|
|
|
edo cd "${WORK}"/thirdparty/download
|
|
edo cp *.dll *.dll.config GeoLite2-Country.mmdb.gz "${WORK}"/
|
|
}
|
|
|
|
openra-build_src_compile() {
|
|
emake VERSION="${SLOT}-${PV}" core
|
|
}
|
|
|
|
openra-build_src_install() {
|
|
emake \
|
|
datadir="/usr/share" \
|
|
bindir="/usr/$(exhost --target)/bin" \
|
|
libdir="/usr/$(exhost --target)/libexec" \
|
|
gameinstalldir="/usr/$(exhost --target)/libexec/${PN}-${SLOT}" \
|
|
VERSION="${SLOT}-${PV}" \
|
|
DESTDIR="${IMAGE}" \
|
|
install install-linux-scripts install-linux-mime \
|
|
install-linux-icons install-linux-desktop install-linux-appdata
|
|
|
|
exeinto /usr/$(exhost --target)/libexec/${PN}-${SLOT}
|
|
doexe Eluant.dll.config
|
|
|
|
# fix desktop files
|
|
edo sed -i \
|
|
-e "/^Name=/s#\$# (${SLOT})#" \
|
|
-e "/^Exec=/s#\$#-${SLOT}#" \
|
|
-e "/^Icon=/s#\$#-${SLOT}#" \
|
|
"${IMAGE%/}"/usr/share/applications/*.desktop
|
|
|
|
# make sure slots don't have file collisions
|
|
local i
|
|
for i in /usr/$(exhost --target)/bin/openra-{ra,cnc,d2k} \
|
|
/usr/$(exhost --target)/bin/openra-{ra,cnc,d2k}-server \
|
|
/usr/share/mime/packages/openra.xml \
|
|
/usr/share/appdata/openra-{ra,cnc,d2k}.appdata.xml
|
|
do
|
|
edo mv "${IMAGE%/}"${i} "${IMAGE%/}"${i}-${SLOT}
|
|
done
|
|
unset i
|
|
for i in ${MV_FILES[@]}
|
|
do
|
|
edo mv "${IMAGE%/}"${i} "${IMAGE%/}"${i%.*}-${SLOT}.${i##*.}
|
|
done
|
|
|
|
# set up alternatives
|
|
alternatives_for _openra ${SLOT} ${PV} \
|
|
/usr/$(exhost --target)/bin/openra-cnc{,-${SLOT}} \
|
|
/usr/$(exhost --target)/bin/openra-cnc-server{,-${SLOT}} \
|
|
/usr/$(exhost --target)/bin/openra-ra{,-${SLOT}} \
|
|
/usr/$(exhost --target)/bin/openra-ra-server{,-${SLOT}} \
|
|
/usr/$(exhost --target)/bin/openra-d2k{,-${SLOT}} \
|
|
/usr/$(exhost --target)/bin/openra-d2k-server{,-${SLOT}} \
|
|
/usr/share/appdata/openra-cnc.appdata.xml{,-${SLOT}} \
|
|
/usr/share/appdata/openra-ra.appdata.xml{,-${SLOT}} \
|
|
/usr/share/appdata/openra-d2k.appdata.xml{,-${SLOT}} \
|
|
/usr/share/mime/packages/openra.xml{,-${SLOT}}
|
|
}
|
|
|
|
openra-build_pkg_postinst() {
|
|
alternatives_pkg_postinst
|
|
gtk-icon-cache_pkg_postinst
|
|
freedesktop-mime_pkg_postinst
|
|
freedesktop-desktop_pkg_postinst
|
|
}
|
|
|
|
openra-build_pkg_postrm() {
|
|
gtk-icon-cache_pkg_postrm
|
|
freedesktop-desktop_pkg_postrm
|
|
freedesktop-mime_pkg_postrm
|
|
}
|
|
|