git: 6ea5f4a3335b - main - games/Doom64EX: Project aimed to recreate Doom64

From: Piotr Kubaj <pkubaj_at_FreeBSD.org>
Date: Tue, 23 Aug 2022 20:09:00 UTC
The branch main has been updated by pkubaj:

URL: https://cgit.FreeBSD.org/ports/commit/?id=6ea5f4a3335bec4072a3ae50298b190450f7844a

commit 6ea5f4a3335bec4072a3ae50298b190450f7844a
Author:     Piotr Kubaj <pkubaj@FreeBSD.org>
AuthorDate: 2022-08-23 19:52:46 +0000
Commit:     Piotr Kubaj <pkubaj@FreeBSD.org>
CommitDate: 2022-08-23 19:52:46 +0000

    games/Doom64EX: Project aimed to recreate Doom64
---
 games/Doom64EX/Makefile                            | 24 ++++++++++++++
 games/Doom64EX/distinfo                            |  3 ++
 games/Doom64EX/files/patch-include_imp_util_Endian | 38 ++++++++++++++++++++++
 games/Doom64EX/pkg-descr                           |  4 +++
 games/Makefile                                     |  1 +
 5 files changed, 70 insertions(+)

diff --git a/games/Doom64EX/Makefile b/games/Doom64EX/Makefile
new file mode 100644
index 000000000000..58de309236e6
--- /dev/null
+++ b/games/Doom64EX/Makefile
@@ -0,0 +1,24 @@
+PORTNAME=	Doom64EX
+PORTVERSION=	g20180824
+CATEGORIES=	games
+
+MAINTAINER=	pkubaj@FreeBSD.org
+COMMENT=	Project aimed to recreate Doom64
+
+LICENSE=	GPLv2
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+LIB_DEPENDS=	libfluidsynth.so:audio/fluidsynth \
+		libpng.so:graphics/png
+
+USES=		cmake sdl
+USE_GITHUB=	yes
+GH_ACCOUNT=	svkaiser
+GH_TAGNAME=	03a5e6a5a3a14d66886f62b72431b37ef7336706
+USE_SDL=	net2 sdl2
+
+CMAKE_ON=	ENABLE_SYSTEM_FLUIDSYNTH
+PLIST_FILES=	bin/doom64ex \
+		share/games/doom64ex/doom64ex.pk3
+
+.include <bsd.port.mk>
diff --git a/games/Doom64EX/distinfo b/games/Doom64EX/distinfo
new file mode 100644
index 000000000000..536b37ce4fdb
--- /dev/null
+++ b/games/Doom64EX/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1661276734
+SHA256 (svkaiser-Doom64EX-g20180824-03a5e6a5a3a14d66886f62b72431b37ef7336706_GH0.tar.gz) = 5a2d74a9dbbcdd2ed7d08ac58192dc1672f840d3b488847393c7d5a5814ff0b7
+SIZE (svkaiser-Doom64EX-g20180824-03a5e6a5a3a14d66886f62b72431b37ef7336706_GH0.tar.gz) = 1115567
diff --git a/games/Doom64EX/files/patch-include_imp_util_Endian b/games/Doom64EX/files/patch-include_imp_util_Endian
new file mode 100644
index 000000000000..a071f8f6967d
--- /dev/null
+++ b/games/Doom64EX/files/patch-include_imp_util_Endian
@@ -0,0 +1,38 @@
+--- include/imp/util/Endian.orig	2018-08-24 09:23:34 UTC
++++ include/imp/util/Endian
+@@ -10,7 +10,7 @@
+ # define BIG_ENDIAN 0x1234
+ # define LITTLE_ENDIAN 0x4321
+ # define BYTE_ORDER LITTLE_ENDIAN
+-#elif defined(__APPLE__)
++#elif defined(__APPLE__) || defined(__FreeBSD__)
+ # include <machine/endian.h>
+ #else
+ # include <endian.h>
+@@ -57,6 +57,26 @@ namespace imp {
+ 
+     inline uint64 swap_bytes(uint64 x) noexcept
+     { return OSSwapInt64(x); }
++}
++#elif defined(__FreeBSD__)
++namespace imp {
++  inline int16 swap_bytes(int16 x) noexcept
++  { return bswap16(x); }
++
++  inline uint16 swap_bytes(uint16 x) noexcept
++  { return bswap16(x); }
++
++  inline int32 swap_bytes(int32 x) noexcept
++  { return bswap32(x); }
++
++  inline uint32 swap_bytes(uint32 x) noexcept
++  { return bswap32(x); }
++
++  inline int64 swap_bytes(int64 x) noexcept
++  { return bswap64(x); }
++
++  inline uint64 swap_bytes(uint64 x) noexcept
++  { return bswap64(x); }
+ }
+ #elif defined(__GNUC__) || defined(__clang__)
+ namespace imp {
diff --git a/games/Doom64EX/pkg-descr b/games/Doom64EX/pkg-descr
new file mode 100644
index 000000000000..6aca3d500a0e
--- /dev/null
+++ b/games/Doom64EX/pkg-descr
@@ -0,0 +1,4 @@
+Doom64EX is a reverse-engineering project aimed to recreate Doom64 as close as
+possible with additional modding features.
+
+WWW: https://doom64ex.wordpress.com/
diff --git a/games/Makefile b/games/Makefile
index 41430d3991fb..0e7861a15e31 100644
--- a/games/Makefile
+++ b/games/Makefile
@@ -12,6 +12,7 @@
     SUBDIR += 90secondportraits
     SUBDIR += CaribbeanStud
     SUBDIR += DDNet
+    SUBDIR += Doom64EX
     SUBDIR += HeroesOfMightAndMagic
     SUBDIR += KnightCap
     SUBDIR += LibreMines