UZDoom port (#13287)

This commit is contained in:
Peppersawce
2025-12-17 01:43:35 +01:00
committed by GitHub
parent 9da80ca8f1
commit 50f5b1f019
4 changed files with 152 additions and 158 deletions

View File

@@ -1,136 +0,0 @@
From 3bcf7dfe112f7abba86484266506d881721590d4 Mon Sep 17 00:00:00 2001
From: Peppersawce <michaelpeppers89@yahoo.it>
Date: Tue, 1 Apr 2025 18:17:30 +0200
Subject: Define Haiku paths
diff --git a/src/gameconfigfile.cpp b/src/gameconfigfile.cpp
index 3b259e8..d58d63c 100644
--- a/src/gameconfigfile.cpp
+++ b/src/gameconfigfile.cpp
@@ -113,6 +113,14 @@ FGameConfigFile::FGameConfigFile ()
SetSection ("IWADSearch.Directories", true);
SetValueForKey ("Path", ".", true);
SetValueForKey ("Path", "$DOOMWADDIR", true);
+ SetValueForKey ("Path", "$HOME/config/non-packaged/data/doom", true);
+ SetValueForKey ("Path", "$HOME/config/non-packaged/data/doomdata", true);
+ SetValueForKey ("Path", "$HOME/config/non-packaged/data/gzdoom", true);
+ SetValueForKey ("Path", "/boot/system/data/gzdoom", true);
+ SetValueForKey ("Path", "/boot/system/data/doomdata", true);
+ SetValueForKey ("Path", "/boot/system/non-packaged/data/doomdata", true);
+ SetValueForKey ("Path", "$HOME/config/data/gzdoom", true);
+ SetValueForKey ("Path", "$HOME/config/data/doomdata", true);
#ifdef __APPLE__
SetValueForKey ("Path", user_docs.GetChars(), true);
SetValueForKey ("Path", user_app_support.GetChars(), true);
@@ -141,6 +150,14 @@ FGameConfigFile::FGameConfigFile ()
if (!SetSection ("FileSearch.Directories"))
{
SetSection ("FileSearch.Directories", true);
+ SetValueForKey ("Path", "$HOME/config/non-packaged/data/doom", true);
+ SetValueForKey ("Path", "$HOME/config/non-packaged/data/doomdata", true);
+ SetValueForKey ("Path", "$HOME/config/non-packaged/data/gzdoom", true);
+ SetValueForKey ("Path", "/boot/system/data/gzdoom", true);
+ SetValueForKey ("Path", "/boot/system/data/doomdata", true);
+ SetValueForKey ("Path", "/boot/system/non-packaged/data/doomdata", true);
+ SetValueForKey ("Path", "$HOME/config/data/gzdoom", true);
+ SetValueForKey ("Path", "$HOME/config/data/doomdata", true);
#ifdef __APPLE__
SetValueForKey ("Path", user_docs.GetChars(), true);
SetValueForKey ("Path", user_app_support.GetChars(), true);
@@ -166,6 +184,10 @@ FGameConfigFile::FGameConfigFile ()
if (!SetSection("SoundfontSearch.Directories"))
{
SetSection("SoundfontSearch.Directories", true);
+ SetValueForKey ("Path", "/boot/system/data/gzdoom/soundfonts", true);
+ SetValueForKey ("Path", "/boot/system/data/gzdoom/fm_banks", true);
+ SetValueForKey ("Path", "$HOME/config/data/gzdoom/soundfonts", true);
+ SetValueForKey ("Path", "$HOME/config/data/gzdoom/fm_banks", true);
#ifdef __APPLE__
SetValueForKey("Path", (user_docs + "/soundfonts").GetChars(), true);
SetValueForKey("Path", (user_docs + "/fm_banks").GetChars(), true);
--
2.51.0
From a1151cc8aa3d7ff92f610e3479befc07113b56c0 Mon Sep 17 00:00:00 2001
From: Peppersawce <michaelpeppers89@yahoo.it>
Date: Wed, 2 Apr 2025 16:31:04 +0200
Subject: Disable Git version string as it is incorrect
diff --git a/src/common/utility/gitinfo.cpp b/src/common/utility/gitinfo.cpp
index 4ef00dc..111c05c 100644
--- a/src/common/utility/gitinfo.cpp
+++ b/src/common/utility/gitinfo.cpp
@@ -54,12 +54,12 @@ const char *GetGitTime()
const char *GetVersionString()
{
- if (GetGitDescription()[0] == '\0')
+ //if (GetGitDescription()[0] == '\0')
{
return VERSIONSTR;
}
- else
+ /*else
{
return GIT_DESCRIPTION;
- }
+ }*/
}
--
2.51.0
From cacf77705ad62779170f0044d885233df5a6ba0e Mon Sep 17 00:00:00 2001
From: Peppersawce <michaelpeppers89@yahoo.it>
Date: Thu, 23 Oct 2025 15:42:21 +0200
Subject: Fix ZWidget build
diff --git a/libraries/ZWidget/CMakeLists.txt b/libraries/ZWidget/CMakeLists.txt
index bc5f43a..9478112 100644
--- a/libraries/ZWidget/CMakeLists.txt
+++ b/libraries/ZWidget/CMakeLists.txt
@@ -239,6 +239,10 @@ elseif(APPLE)
set(ZWIDGET_LIBS ${CMAKE_DL_LIBS} -ldl)
set(ZWIDGET_DEFINES -DUNIX -D_UNIX)
set(ZWIDGET_LINK_OPTIONS -pthread)
+elseif(HAIKU)
+ set(ZWIDGET_LIBS ${CMAKE_DL_LIBS})
+ set(ZWIDGET_DEFINES -DUNIX -D_UNIX)
+ set(ZWIDGET_LINK_OPTIONS -pthread)
else()
set(ZWIDGET_SOURCES ${ZWIDGET_SOURCES} ${ZWIDGET_X11_SOURCES})
set(ZWIDGET_LIBS ${CMAKE_DL_LIBS} -lX11 -lXi)
--
2.51.0
From 447b510d6ecccb4a53477d4381ce20b5cc81090a Mon Sep 17 00:00:00 2001
From: Peppersawce <michaelpeppers89@yahoo.it>
Date: Mon, 3 Nov 2025 13:28:59 +0100
Subject: Replaxe xdg-open with open
diff --git a/src/common/platform/posix/sdl/i_system.cpp b/src/common/platform/posix/sdl/i_system.cpp
index b52515b..a03bf7f 100644
--- a/src/common/platform/posix/sdl/i_system.cpp
+++ b/src/common/platform/posix/sdl/i_system.cpp
@@ -424,7 +424,11 @@ void I_OpenShellFolder(const char* infolder)
{
if (longsavemessages)
Printf("Opening folder: %s\n", infolder);
- std::system("xdg-open .");
+ #ifdef __HAIKU__
+ std::system("open .");
+ #else
+ std::system("xdg-open .");
+ #endif
chdir(curdir);
}
else
--
2.51.0

View File

@@ -0,0 +1,68 @@
resource app_flags B_SINGLE_LAUNCH | B_ARGV_ONLY;
resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = @MINOR@,
variety = B_APPV_FINAL,
internal = 0,
short_info = "UZDoom",
long_info = "@LONG_INFO@"
};
resource app_signature "@APP_SIGNATURE@";
resource vector_icon {
$"6E636966060321E2F8020002023C83850000000000003C838549FFFF4A000000"
$"1EAFC0FF301EAFC0000500020006033D19680000000000003D19684A25D04A95"
$"AB000F7589BC24C7D8E82EEDFC020006033D19680000000000003D19684A25D0"
$"4A600A000F7589BC24C7D8E82EEDFC02001202000000BD56133D56130000004A"
$"00004A00002D0AD8FFFF0009020BC1AEBC14C1AEBC14C236BBC6C344BB2BC2BD"
$"BB78C344BD92C344C266C344BFFCC219C31340C46FC0ECC3C1BE93C3C1BC3AC2"
$"66BD67C313BC3ABFFCBC3ABB2BBC3ABD92BCC3BB78BDD1BC14BD4ABBC6BDD1BE"
$"03BDD1C1E0BDD1BFF2BE76C23F40C2FEBF1AC29FC064C29FC1AEC1E0C10AC23F"
$"C1AEBFF2C1AEBC14C1AEBE03C1AEBC14001340CA6240CA62BD13C8D7B7BBC5C1"
$"BA69C74DB7BBC036B7BBB51DB7BBBAAAB9C4B649BDD1B8A0BBCBB775BDD1B96D"
$"BDD1BB09BDD1BA3BBD17BA9EBBA131BC5CBA31BBA1BCA6BBA1C266BBA1BF84BA"
$"9CC324B88DC4A4B994C3E5B9AEC430BBECC346BACFC3BBBD34C40340C57BBE79"
$"C4BEC106C4BEC391C346C24CC403C4B1C3BBC6F0C4A4C5D1C430C5EBC3E5C3DD"
$"C266C4E4C324C3DDBF84C3DD31C3DDBCA6C323BA31C1ADBB09C269BA9EC1ADBA"
$"3BC1ADB8A0C1ADB96DC3B5B775C7C2B51DC5BBB649C7C2BAAAC7C2C5C1C7C2C0"
$"36C518C74D40CA62C26CC8D740CA620204BFBACA5FBFBACA5FBFBCCA6040CA62"
$"BFBECA61BFC1CA61BFC5CA5FBFC3CA60BFC1CA5FBFBACA5FBFBECA5FBFBACA5F"
$"020BC344BB29C344BB29C2BDBB77C1AEBC12C23636C1AEBE01C1AEC1DEC1AEBF"
$"EFC10AC23D40C2FBC064C29DBF1AC29DBDD1C1DEBE76C23DBDD1BFEFBDD1BC12"
$"BDD1BE01BD4A36BC3ABB29BCC3BB77BC3ABD91BC3AC262BC3ABFFABD67C31040"
$"C46DBE93C3BEC0ECC3BEC344C262C219C310C344BFFAC344BB29C344BD91C344"
$"BB29000FC2FABBA9C2FABBA9C2FABDD9C2FAC239C2FAC009C1E7C2D840C418C0"
$"D4C377BEABC377BC83C239BD99C2D8BC83C009BC83BBA9BC83BDD9BCDBBBDBBD"
$"86BC3EBD32BC0CBD86BE2BBD86C20ABD86C01BBD92C210BDACC21FBD9FC218BE"
$"50C27EBF9AC33CBEF5C2DCBFA6C34240C351BFB3C34ABFCBC34ABFE4C33CBFD9"
$"C342C08AC2DCC1D4C21FC12EC27EC1DFC218C1F8C20AC1ECC210C1F8C01BC1F8"
$"BC3EC1F8BE2BC24FBC0CC2FABBA9C2A4BBDBC2FABBA90213C7C2B51AC7C2B51A"
$"C5BBB647C1ADB89EC3B5B773C1ADB96CC1ADBB07C1ADBA39C269BA9CC3DDB9C4"
$"C323BA2FC3DDBCA4C3DDC262C3DDBF82C4E4C323C6F0C4A2C5EBC3E3C5D1C42D"
$"C391C343C4B1C3B9C24CC40140C578C106C4BCBE79C4BCBBECC343BD34C401BA"
$"CFC3B9B88DC4A2B9AEC42DB994C3E3BBA1C262BA9CC323BBA1BF82BBA1B9C4BB"
$"A1BCA4BC5CBA2FBDD1BB07BD17BA9CBDD1BA39BDD1B89EBDD1B96CBBCBB773B7"
$"BBB51AB9C4B647B7BBBAA8B7BBC5BFB7BBC034BA69C74B40CA60BD13C8D5C26C"
$"C8D5C7C2C5BFC517C74BC7C2C034C7C2B51AC7C2BAA8C7C2B51A000DC397C397"
$"C397C397C4ABC407C6D4C4E7C5BFC476C70BC4FEC779C529C741C513C779C54E"
$"C779C595C779C571C4E6C71140CA0AC253C88DBD2CC88DB807C595BA9AC711B8"
$"07C571B807C529B807C54EB83EC513B8ABC4E7B874C4FEB9C0C476BBE9C397BA"
$"D3C407BD24C44DBF9AC5B9BE5EC503BFA6C5BF40C5CEBFB3C5C7BFCBC5C7BFE4"
$"C5B9BFD9C5BFC120C503C397C397C25BC44DC397C3970009B807B59CB807B59C"
$"B9DCB6AABD86B8C8BBB2B7BABD86B95EBD86BA87BD86B9F3BCF2BA2FBBC6B983"
$"BC5CB9DBBBA1B96DBB58B944BB7CB958BB58BC42BB58C23DBB58BF40BA5BC2F5"
$"B863C46730C3AEB845C47EB807C4AAB826C493B807BFA6B807B59CB807BAA0B8"
$"07B59C0009C779B59CC779B59CC779BAA0C779C4AAC779BFA6C759C493C71CC4"
$"67C73AC47E50C3AEC427C23DC523C2F5C427BF40C427B944C427BC42C403B958"
$"C3B9B983C3DDB96EC323B9DBC1F7BA87C28DBA2FC1F7B9F3C1F7B8C8C1F7B95E"
$"C3CEB7BAC779B59CC5A3B6AAC779B59C090A00020001000A01020001000A0200"
$"000A020102000A0300000A0400000A02020403000A020405060807000A050200"
$"0100"
};

View File

@@ -0,0 +1,56 @@
From 1ef804dbf27cf52def3d1262d7e05a004f88a8e3 Mon Sep 17 00:00:00 2001
From: Peppersawce <michaelpeppers89@yahoo.it>
Date: Mon, 24 Nov 2025 19:44:19 +0100
Subject: ZWidget to SDL2, disable Git string, add just 1 tiny little path more.
diff --git a/libraries/ZWidget/CMakeLists.txt b/libraries/ZWidget/CMakeLists.txt
index bc5f43a..9478112 100644
--- a/libraries/ZWidget/CMakeLists.txt
+++ b/libraries/ZWidget/CMakeLists.txt
@@ -239,6 +239,10 @@ elseif(APPLE)
set(ZWIDGET_LIBS ${CMAKE_DL_LIBS} -ldl)
set(ZWIDGET_DEFINES -DUNIX -D_UNIX)
set(ZWIDGET_LINK_OPTIONS -pthread)
+elseif(HAIKU)
+ set(ZWIDGET_LIBS ${CMAKE_DL_LIBS})
+ set(ZWIDGET_DEFINES -DUNIX -D_UNIX)
+ set(ZWIDGET_LINK_OPTIONS -pthread)
else()
set(ZWIDGET_SOURCES ${ZWIDGET_SOURCES} ${ZWIDGET_X11_SOURCES})
set(ZWIDGET_LIBS ${CMAKE_DL_LIBS} -lX11 -lXi)
diff --git a/src/common/utility/gitinfo.cpp b/src/common/utility/gitinfo.cpp
index 4ef00dc..111c05c 100644
--- a/src/common/utility/gitinfo.cpp
+++ b/src/common/utility/gitinfo.cpp
@@ -54,12 +54,12 @@ const char *GetGitTime()
const char *GetVersionString()
{
- if (GetGitDescription()[0] == '\0')
+ //if (GetGitDescription()[0] == '\0')
{
return VERSIONSTR;
}
- else
+ /*else
{
return GIT_DESCRIPTION;
- }
+ }*/
}
diff --git a/src/gameconfigfile.cpp b/src/gameconfigfile.cpp
index 8ae91f9..983b5dc 100644
--- a/src/gameconfigfile.cpp
+++ b/src/gameconfigfile.cpp
@@ -141,6 +141,7 @@ static void CollectDefaultSearchPaths()
static FString GameDirs[] = {
"/games/" GAMENAMELOWERCASE,
"/games/doom",
+ "/doomdata",
"/doom"
};
--
2.51.0

View File

@@ -1,38 +1,38 @@
SUMMARY="Advanced Doom source port with OpenGL support"
SUMMARY="Advanced Doom source port with Vulkan/OpenGL support"
DESCRIPTION="ZDoom is a family of enhanced ports of the Doom engine for modern operating systems, with many \
new features not found in the games as originally published by id Software.
GZDoom is a feature centric port for all Doom engine games, based on ZDoom, \
adding OpenGL and Vulkan renderers and powerful scripting capabilities.
UZDoom is a feature centric port for all Doom engine games, based on GZDoom, \
with OpenGL and Vulkan renderers and powerful scripting capabilities.
The binaries will look for .wad files in:
* ~/config/non-packaged/data/gzdoom
* ~/config/non-packaged/data/games/uzdoom
* ~/config/non-packaged/data/games/doom
* ~/config/non-packaged/data/doomdata
* ~/config/non-packaged/data/doom
* /boot/system/non-packaged/data/doomdata
* Any compatible game data package
The binaries can be also used via command-line with the -iwad command.
Example: 'GZDoom -iwad /path/to/doom.wad'"
Example: 'UZDoom -iwad /path/to/doom.wad'"
HOMEPAGE="https://zdoom.org/"
COPYRIGHT="
1998-2025 ZDoom + GZDoom teams, and contributors
1998-2025 ZDoom + GZDoom, UZDoom teams, and contributors
1997 id Software, Raven Software, and contributors
"
LICENSE="GNU GPL v3"
REVISION="1"
srcGitRev="b746be8a6ba982903ce222307baa4fc26d1a91dd"
SOURCE_URI="https://github.com/ZDoom/gzdoom/archive/$srcGitRev.zip"
CHECKSUM_SHA256="9da46b7e304c4c5f1861086da34aacdfd1c33d5a7b28f0182005b867dacd4dd4"
SOURCE_DIR="gzdoom-$srcGitRev"
PATCHES="gzdoom-$portVersion.patchset"
ADDITIONAL_FILES="gzdoom.rdef.in"
srcGitRev="584dd1d1ae300597e8462d3edb10a6b007d45683"
SOURCE_URI="https://github.com/UZDoom/UZDoom/archive/$srcGitRev.zip"
CHECKSUM_SHA256="71fa51eb1a2d5d95542a915df4ef2039c5d00c714cf135abc7a8391617d03f2b"
SOURCE_DIR="UZDoom-$srcGitRev"
PATCHES="uzdoom-$portVersion.patchset"
ADDITIONAL_FILES="uzdoom.rdef.in"
# 32bit is not supported.
ARCHITECTURES="riscv64 x86_64 ?arm64"
PROVIDES="
gzdoom = $portVersion
app:GZDoom = $portVersion
uzdoom = $portVersion
app:UZDoom = $portVersion
engine:doom # Standard Doom-compatible engine
engine:doom_extra # Heretic, Hexen, Strife etc.
engine:zdoom # Can handle ZDoom-specific game data
@@ -41,18 +41,22 @@ REQUIRES="
haiku
lib:libbz2
lib:libexecinfo
#lib:libglib_2.0 # For internal ZMusic
lib:libgomp
lib:libopenal # Optional, required for in-game audio
lib:libSDL2_2.0
lib:libvpx
lib:libzmusic
"
REPLACES="gzdoom"
BUILD_REQUIRES="
haiku_devel
devel:libbz2
devel:libexecinfo
devel:libGL # For OpenGL renderer
#devel:libglib_2.0 # For internal ZMusic
devel:libopenal # Optional, required for in-game audio
devel:libSDL2_2.0
devel:libvpx
devel:libzmusic
@@ -63,6 +67,7 @@ BUILD_PREREQUIRES="
cmd:git # Optional, needed for build date
cmd:make
cmd:pkg_config
cmd:python3
"
BUILD()
@@ -73,9 +78,10 @@ BUILD()
-DCMAKE_EXE_LINKER_FLAGS="-lbsd -lnetwork" \
-DINSTALL_PATH=$appsDir \
-DINSTALL_DOCS_PATH=$docDir \
-DINSTALL_PK3_PATH=$dataDir/gzdoom \
-DINSTALL_SOUNDFONT_PATH=$dataDir/gzdoom \
-DINSTALL_PK3_PATH=$dataDir/games/uzdoom \
-DINSTALL_SOUNDFONT_PATH=$dataDir/games/uzdoom \
-DDYN_GTK=OFF -DNO_GTK=ON \
-DFORCE_INTERNAL_ZMUSIC=OFF \
-DVULKAN_USE_XLIB=OFF
make -C build $jobArgs
@@ -84,13 +90,13 @@ BUILD()
INSTALL()
{
make -C build install
mv $appsDir/gzdoom $appsDir/GZDoom
mv $appsDir/uzdoom $appsDir/UZDoom
# Remove *nixy desktop and cppdap files
rm -r $prefix/share $libDir $developDir/headers
# Generate the rdef
local APP_SIGNATURE="application/x-vnd.gzdoom"
local APP_SIGNATURE="application/x-vnd.uzdoom"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -b6`"
@@ -101,8 +107,8 @@ INSTALL()
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/gzdoom.rdef.in > gzdoom.rdef
$portDir/additional-files/uzdoom.rdef.in > uzdoom.rdef
addResourcesToBinaries gzdoom.rdef $appsDir/GZDoom
addAppDeskbarSymlink $appsDir/GZDoom
addResourcesToBinaries uzdoom.rdef $appsDir/UZDoom
addAppDeskbarSymlink $appsDir/UZDoom
}