diff options
author | marino <marino@FreeBSD.org> | 2014-10-31 20:54:17 +0800 |
---|---|---|
committer | marino <marino@FreeBSD.org> | 2014-10-31 20:54:17 +0800 |
commit | b79bb36af77c83c0e3a032d68ddc60cb62646dcf (patch) | |
tree | e931f9a864009299f3e90562589f4f50e7e782cf /games/openra | |
parent | fd76d00acd248956471168baba8bf122bbbeb20d (diff) | |
download | freebsd-ports-gnome-b79bb36af77c83c0e3a032d68ddc60cb62646dcf.tar.gz freebsd-ports-gnome-b79bb36af77c83c0e3a032d68ddc60cb62646dcf.tar.zst freebsd-ports-gnome-b79bb36af77c83c0e3a032d68ddc60cb62646dcf.zip |
Add new port games/openra
PR: 193422
Submitted by: Jan Beich
A reimplementation of the Command & Conquer: Red Alert game engine
using .NET/Mono, OpenGL, OpenAL and SDL. It includes reimagninations
of Command & Conquer: Red Alert, Command & Conquer: Tiberian Dawn as
well as Dune 2000. These combine the classic gameplay of the originals
with modern improvements such as unit veterancy and the fog of war.
Diffstat (limited to 'games/openra')
-rw-r--r-- | games/openra/Makefile | 77 | ||||
-rw-r--r-- | games/openra/distinfo | 2 | ||||
-rw-r--r-- | games/openra/files/patch-Makefile | 35 | ||||
-rw-r--r-- | games/openra/files/patch-xamarin-bug23319 | 25 | ||||
-rw-r--r-- | games/openra/pkg-descr | 7 | ||||
-rw-r--r-- | games/openra/pkg-plist | 12 |
6 files changed, 158 insertions, 0 deletions
diff --git a/games/openra/Makefile b/games/openra/Makefile new file mode 100644 index 000000000000..079276afacf0 --- /dev/null +++ b/games/openra/Makefile @@ -0,0 +1,77 @@ +# $FreeBSD$ + +PORTNAME= openra +PORTVERSION= 20141029 +CATEGORIES= games + +MAINTAINER= jbeich@vfemail.net +COMMENT= Multiplayer re-envisioning of early RTS games by Westwood Studios + +LICENSE= GPLv3 + +LIB_DEPENDS= libfreetype.so:${PORTSDIR}/print/freetype2 \ + libgdiplus.so:${PORTSDIR}/x11-toolkits/libgdiplus + +USE_GITHUB= yes +GH_ACCOUNT= ${GH_PROJECT} +GH_PROJECT= OpenRA +GH_TAGNAME= release-${PORTVERSION} +GH_COMMIT= e5948ba + +NO_ARCH= yes +USES= gmake lua:51,run mono openal:soft +USE_SDL= sdl2 +INSTALLS_ICONS= yes +MAKE_ENV= prefix="${PREFIX}" +MAKE_ARGS= VERSION="${GH_TAGNAME}" +INSTALL_TARGET= install-all install-linux-shortcuts +DATADIR= ${PREFIX}/lib/${PORTNAME} +PORTDATA= * +PORTDOCS= * + +OPTIONS_DEFINE= DOCS TEST ZENITY +OPTIONS_DEFAULT=ZENITY + +DOCS_BUILD_DEPENDS=markdown:${PORTSDIR}/textproc/markdown +DOCS_ALL_TARGET=docs + +TEST_MAKE_ENV= HOME="${WRKDIR}" +TEST_ALL_TARGET=test + +ZENITY_RUN_DEPENDS=xdg-open:${PORTSDIR}/devel/xdg-utils \ + zenity:${PORTSDIR}/x11/zenity +ZENITY_DESC= Use native crash dialog + +.include <bsd.port.options.mk> + +post-patch: + ${REINPLACE_CMD} -e 's/Linux/${OPSYS}/' \ + -e 's/crashdialog/gamemonitor/' \ + -e '/^mods:/s/$$/ version/' \ + -e '/^docs:/s/$$/ all/' \ + -e '/^test:/s/$$/ all/' \ + ${WRKSRC}/Makefile + ${REINPLACE_CMD} -e '/linux/{ p; s//${OPSYS:tl}/; }' \ + ${WRKSRC}/thirdparty/*.config* + ${SED} 's/@LIBLUA51@/liblua-${LUA_VER}.so/' \ + ${WRKSRC}/thirdparty/Eluant.dll.config.in \ + >${WRKSRC}/Eluant.dll.config +# DragonFly lacks BSD suffix + ${REINPLACE_CMD} -e 's/"BSD"/"${OPSYS}"/' \ + ${WRKSRC}/OpenRA.Game/Platform.cs + +post-build: +.if ${PORT_OPTIONS:MDOCS} + @${ECHO_MSG} Generating HTML documentation... + @for f in ${WRKSRC}/*.md; do \ + markdown $$f >$${f%.md}.html; \ + done +.endif + +post-install: +.if ${PORT_OPTIONS:MDOCS} + @${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/*.html ${STAGEDIR}${DOCSDIR} +.endif + +.include <bsd.port.mk> diff --git a/games/openra/distinfo b/games/openra/distinfo new file mode 100644 index 000000000000..36bff510d42f --- /dev/null +++ b/games/openra/distinfo @@ -0,0 +1,2 @@ +SHA256 (openra-20141029.tar.gz) = 4c3f8224a7ad9d3cb78c3ce2696850246ba0d9703cbd91bf5a42806b09c26a36 +SIZE (openra-20141029.tar.gz) = 15340674 diff --git a/games/openra/files/patch-Makefile b/games/openra/files/patch-Makefile new file mode 100644 index 000000000000..1b0a197cee30 --- /dev/null +++ b/games/openra/files/patch-Makefile @@ -0,0 +1,35 @@ +# Without zenity(1) fallback to either WinForms or no crash dialog + +--- Makefile~ ++++ Makefile +@@ -357,10 +357,28 @@ install-linux-desktop: + install-linux-scripts: + @echo "#!/bin/sh" > openra + @echo 'cd "$(gameinstalldir)"' >> openra +- @echo 'mono OpenRA.Game.exe "$$@"' >> openra ++ @echo 'ZENITY=`which zenity`' >> openra ++ @echo 'if [ -z "$$ZENITY" ] && (' >> openra ++ @echo ' # from mono/io-layer/processes.c' >> openra ++ @echo ' hash xdg-open 2>/dev/null ||' >> openra ++ @echo ' hash gnome-open 2>/dev/null ||' >> openra ++ @echo ' hash kfmclient 2>/dev/null)' >> openra ++ @echo 'then' >> openra ++ @echo ' mono OpenRA.exe "$$@"' >> openra ++ @echo 'else' >> openra ++ @echo ' mono OpenRA.Game.exe "$$@"' >> openra ++ @echo 'fi' >> openra + @echo 'if [ $$? != 0 ]' >> openra + @echo 'then' >> openra +- @echo 'ZENITY=`which zenity` || echo "OpenRA needs zenity installed to display a graphical error dialog. See ~/.openra. for log files."' >> openra ++ @echo ' if [ -z "$$ZENITY" ]' >> openra ++ @echo ' then' >> openra ++ @echo ' echo' >> openra ++ @echo ' echo "OpenRA has encountered a fatal error."' >> openra ++ @echo ' echo "Log Files are available in ~/.openra."' >> openra ++ @echo ' echo' >> openra ++ @echo ' echo "See https://github.com/OpenRA/OpenRA/wiki/FAQ"' >> openra ++ @echo ' exit 1' >> openra ++ @echo ' fi' >> openra + @echo '$$ZENITY --question --title "OpenRA" --text "OpenRA has encountered a fatal error.\nLog Files are available in ~/.openra." --ok-label "Quit" --cancel-label "View FAQ" || xdg-open https://github.com/OpenRA/OpenRA/wiki/FAQ' >> openra + @echo 'exit 1' >> openra + @echo 'fi' >> openra diff --git a/games/openra/files/patch-xamarin-bug23319 b/games/openra/files/patch-xamarin-bug23319 new file mode 100644 index 000000000000..ac51c4bd7298 --- /dev/null +++ b/games/openra/files/patch-xamarin-bug23319 @@ -0,0 +1,25 @@ +# https://bugzilla.xamarin.com/show_bug.cgi?id=23319 +# https://github.com/mono/mono/commit/1d94d17 + +--- OpenRA.Game/Exts.cs~ ++++ OpenRA.Game/Exts.cs +@@ -375,7 +375,7 @@ namespace OpenRA + for (var i = 0; i < width; i++) + for (var j = 0; j < height; j++) + result[i, j] = i <= ts.GetUpperBound(0) && j <= ts.GetUpperBound(1) +- ? ts[i, j] : t; ++ ? (ts[i, j]) : t; + return result; + } + +--- OpenRA.Mods.RA/Render/WithMuzzleFlash.cs~ ++++ OpenRA.Mods.RA/Render/WithMuzzleFlash.cs +@@ -50,7 +50,7 @@ namespace OpenRA.Mods.RA.Render + var turreted = self.TraitsImplementing<Turreted>() + .FirstOrDefault(t => t.Name == arm.Info.Turret); + +- getFacing = turreted != null ? () => turreted.TurretFacing : ++ getFacing = turreted != null ? (() => turreted.TurretFacing) : + facing != null ? (Func<int>)(() => facing.Facing) : () => 0; + + var muzzleFlash = new Animation(self.World, render.GetImage(self), getFacing); diff --git a/games/openra/pkg-descr b/games/openra/pkg-descr new file mode 100644 index 000000000000..d7afffe1354b --- /dev/null +++ b/games/openra/pkg-descr @@ -0,0 +1,7 @@ +A reimplementation of the Command & Conquer: Red Alert game engine +using .NET/Mono, OpenGL, OpenAL and SDL. It includes reimagninations +of Command & Conquer: Red Alert, Command & Conquer: Tiberian Dawn as +well as Dune 2000. These combine the classic gameplay of the originals +with modern improvements such as unit veterancy and the fog of war. + +WWW: http://www.openra.net diff --git a/games/openra/pkg-plist b/games/openra/pkg-plist new file mode 100644 index 000000000000..bd2161dfa62d --- /dev/null +++ b/games/openra/pkg-plist @@ -0,0 +1,12 @@ +bin/openra +bin/openra-editor +share/applications/openra-editor.desktop +share/applications/openra.desktop +share/icons/128x128/apps/openra.png +share/icons/16x16/apps/openra.png +share/icons/32x32/apps/openra-editor.png +share/icons/32x32/apps/openra.png +share/icons/48x48/apps/openra-editor.png +share/icons/48x48/apps/openra.png +share/icons/64x64/apps/openra.png +share/icons/scalable/apps/openra.svg |