167 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| # Copyright 2015-2016 Julian Ospald <hasufell@posteo.de>
 | |
| # Distributed under the terms of the GNU General Public License v2
 | |
| 
 | |
| require gtk-icon-cache freedesktop-desktop freedesktop-mime
 | |
| 
 | |
| SUMMARY="A free RTS engine supporting games like Command & Conquer and Red Alert"
 | |
| HOMEPAGE="http://www.openra.net/"
 | |
| DOWNLOADS="https://github.com/OpenRA/OpenRA/archive/release-${PV}.tar.gz -> ${PNV}.tar.gz"
 | |
| 
 | |
| ## this is a massive amount of 3rd party deps that would otherwise
 | |
| ## be fetched during build time
 | |
| NG_SRC="https://nuget.org/api/v2/package"
 | |
| # 3rd party deps
 | |
| StyleCopPlus_MSBuild="${NG_SRC}/StyleCopPlus.MSBuild/4.7.49.5 -> StyleCopPlus_MSBuild-4.7.49.5.zip"
 | |
| StyleCop_MSBuild="${NG_SRC}/StyleCop.MSBuild/4.7.49.0 -> StyleCop_MSBuild-4.7.49.0.zip"
 | |
| SharpZipLib="${NG_SRC}/SharpZipLib/0.86.0 -> SharpZipLib-0.86.0.zip"
 | |
| MaxMind_Db="${NG_SRC}/MaxMind.Db/1.0.0.0 -> MaxMind_Db-1.0.0.0.zip"
 | |
| Newtonsoft_Json="${NG_SRC}/Newtonsoft.Json/6.0.5 -> Newtonsoft_Json-6.0.5.zip"
 | |
| RestSharp="${NG_SRC}/RestSharp/105.0.1 -> RestSharp-105.0.1.zip"
 | |
| MaxMind_GeoIP2="${NG_SRC}/MaxMind.GeoIP2/2.1.0 -> MaxMind_GeoIP2-2.1.0.zip"
 | |
| SharpFont="${NG_SRC}/SharpFont/3.0.1 -> SharpFont-3.0.1.zip"
 | |
| NUnit="${NG_SRC}/NUnit/2.6.4 -> NUnit-2.6.4.zip"
 | |
| Mono_Nat="${NG_SRC}/Mono.Nat/1.2.21 -> Mono_Nat-1.2.21.zip"
 | |
| FuzzyLogicLibrary="${NG_SRC}/FuzzyLogicLibrary/1.2.0 -> FuzzyLogicLibrary-1.2.0.zip"
 | |
| SDL2CS="https://github.com/OpenRA/SDL2-CS/releases/download/20150709/SDL2-CS.dll -> SDL2-CS.dll.20150709"
 | |
| Eluant="https://github.com/OpenRA/Eluant/releases/download/20140425/Eluant.dll -> Eluant.dll.20140425"
 | |
| # unfortunately, this may randomly change
 | |
| GEO_IP_DB="http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz -> GeoLite2-Country-2015-10-18.mmdb.gz"
 | |
| 
 | |
| DOWNLOADS="${DOWNLOADS}
 | |
| ${StyleCopPlus_MSBuild}
 | |
| ${StyleCop_MSBuild}
 | |
| ${SharpZipLib}
 | |
| ${MaxMind_Db}
 | |
| ${Newtonsoft_Json}
 | |
| ${RestSharp}
 | |
| ${MaxMind_GeoIP2}
 | |
| ${SharpFont}
 | |
| ${NUnit}
 | |
| ${Mono_Nat}
 | |
| ${FuzzyLogicLibrary}
 | |
| ${SDL2CS}
 | |
| ${Eluant}
 | |
| ${GEO_IP_DB}
 | |
| "
 | |
| 
 | |
| LICENCES="GPL-3"
 | |
| SLOT="0"
 | |
| PLATFORMS="~amd64 ~x86"
 | |
| 
 | |
| MYOPTIONS="
 | |
|     ( providers: ijg-jpeg jpeg-turbo ) [[ number-selected = exactly-one ]]
 | |
| "
 | |
| 
 | |
| LUA_SLOT="5.1"
 | |
| DEPENDENCIES="
 | |
|     build:
 | |
|         virtual/unzip
 | |
|     build+run:
 | |
|         dev-dotnet/libgdiplus
 | |
|         dev-lang/lua:${LUA_SLOT}
 | |
|         dev-lang/mono[>=3.2]
 | |
|         media-libs/freetype:2
 | |
|         media-libs/SDL:2[X]
 | |
|         media-libs/openal
 | |
|         x11-dri/mesa
 | |
|         providers:ijg-jpeg? ( media-libs/jpeg )
 | |
|         providers:jpeg-turbo? ( media-libs/libjpeg-turbo )
 | |
| "
 | |
| 
 | |
| WORK=${WORKBASE}/OpenRA-release-${PV}
 | |
| 
 | |
| src_unpack() {
 | |
|     unpack ${PNV}.tar.gz
 | |
| 
 | |
|     # this is pure crapshit, but it will successfully die
 | |
|     # if upstream has added/changed files
 | |
|     edo cd "${WORK}"/thirdparty
 | |
|     edo sed -i \
 | |
|         -e 's/get()/furz()/' \
 | |
|         -e 's|curl |: |' \
 | |
|         fetch-thirdparty-deps.sh
 | |
| 
 | |
|     edo mkdir "${WORK}"/thirdparty/download
 | |
|     get() {
 | |
|         # don't add dies here
 | |
|         local archive="${1/./_}"
 | |
|         local version="${2}"
 | |
|         mkdir -p "${WORK}"/thirdparty/download/${1}
 | |
|         unzip -o -qq "${FETCHEDDIR}"/${archive}-${version}.zip \
 | |
|             -d "${WORK}"/thirdparty/download/${1}
 | |
|     }
 | |
|     export -f get
 | |
|     edo ./fetch-thirdparty-deps.sh
 | |
|     unset get
 | |
|     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
 | |
| }
 | |
| 
 | |
| src_configure() { :; }
 | |
| 
 | |
| src_prepare() {
 | |
|     # register game-version
 | |
|     emake VERSION="${PV}" version
 | |
| 
 | |
|     edo sed \
 | |
|         -e "s/@LIBLUA51@/liblua${LUA_SLOT}.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}"/
 | |
| }
 | |
| 
 | |
| src_compile() {
 | |
|     emake VERSION="${PV}" core tools
 | |
| }
 | |
| 
 | |
| install_desktop_entry() {
 | |
|     local cmd=$1
 | |
|     local name=$2
 | |
|     insinto /usr/share/applications
 | |
|     hereins "${name// /-}.desktop" <<EOF
 | |
| [Desktop Entry]
 | |
| Name=${name}
 | |
| Type=Application
 | |
| Comment=A free RTS engine supporting games like Command & Conquer and Red Alert
 | |
| Exec=${cmd}
 | |
| TryExec=openra
 | |
| Icon=openra
 | |
| Categories=Game;StrategyGame;
 | |
| EOF
 | |
| }
 | |
| 
 | |
| src_install() {
 | |
|     emake \
 | |
|         datadir="/usr/share" \
 | |
|         bindir="/usr/$(exhost --target)/bin" \
 | |
|         libdir="/usr/$(exhost --target)/libexec" \
 | |
|         VERSION="${PV}" \
 | |
|         DESTDIR="${IMAGE}" \
 | |
|         install-all install-linux-scripts install-linux-mime install-linux-icons
 | |
| 
 | |
|     exeinto /usr/$(exhost --target)/libexec/openra
 | |
|     doexe Eluant.dll.config
 | |
| 
 | |
|     # desktop entries
 | |
|     install_desktop_entry "${PN} Game.Mods=cnc" "OpenRA CNC" ${PN}
 | |
|     install_desktop_entry "${PN} Game.Mods=ra" "OpenRA RA" ${PN}
 | |
|     install_desktop_entry "${PN} Game.Mods=d2k" "OpenRA Dune2k" ${PN}
 | |
|     install_desktop_entry "${PN}-editor" "OpenRA Map Editor" ${PN}
 | |
| }
 | |
| 
 | |
| pkg_postinst() {
 | |
|     gtk-icon-cache_pkg_postinst
 | |
|     freedesktop-mime_pkg_postinst
 | |
|     freedesktop-desktop_pkg_postinst
 | |
| }
 | |
| 
 | |
| pkg_postrm() {
 | |
|     gtk-icon-cache_pkg_postrm
 | |
|     freedesktop-desktop_pkg_postrm
 | |
|     freedesktop-mime_pkg_postrm
 | |
| }
 | |
| 
 |