164 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			164 lines
		
	
	
		
			4.7 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" | ||
|  | 
 | ||
|  | 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+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 ) | ||
|  |     build: | ||
|  |         virtual/unzip | ||
|  | "
 | ||
|  | 
 | ||
|  | 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 ${PN}.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 | ||
|  | } |