1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-29 15:07:45 +00:00

Ports: Split up the halflife port into engine and game

This commit is contained in:
Tim Schumacher 2022-06-09 15:21:27 +02:00 committed by Linus Groh
parent 23fa6b1f7b
commit 817c79431d
9 changed files with 99 additions and 91 deletions

View file

@ -1,19 +1,11 @@
#!/usr/bin/env -S bash ../.port_include.sh
port="halflife"
version="2022.05.01" # Bogus version, this was the last time the commit hashes were updated.
_fwgs_commit=5402e1a2597c40c603bd0f2b1a9cd6a16506ec84
_hlsdk_commit=808be9442f60b4388f68fcef8b2659d0cd6db17b
_vgui_commit=93573075afe885618ea15831e72d44bdacd65bfb
_mainui_commit=01e964fdc26f5dce1512c030d0dfd68e17be2858
_miniutl_commit=67c8c226c451f32ee3c98b94e04f8966092b70d3
useconfigure="true"
depends=("SDL2" "fontconfig" "freetype")
workdir="."
files="https://github.com/FWGS/xash3d-fwgs/archive/${_fwgs_commit}.tar.gz xash3d-fwgs-${_fwgs_commit}.tar.gz 1401f6c0cf619c48a8a40938b2acdffd327725ca0ab59804c518bddf821637f9
https://github.com/FWGS/hlsdk-xash3d/archive/${_hlsdk_commit}.tar.gz hlsdk-xash3d-${_hlsdk_commit}.tar.gz fd17436571341bd5e50739f22d84f9857f492637479144d01b1ffc1ead9d776b
https://github.com/FWGS/vgui-dev/archive/${_vgui_commit}.tar.gz vgui-dev-${_vgui_commit}.tar.gz eb9315fba8ae444fdae240c10afebaf7f3b157233bf1589f0af557b2286928fa
https://github.com/FWGS/mainui_cpp/archive/${_mainui_commit}.tar.gz mainui_cpp-${_mainui_commit}.tar.gz c8f6ce81596d5690044542074ac9bc69bbd43b5e5766f71363a8b5d4d382ad71
https://github.com/FWGS/MiniUTL/archive/${_miniutl_commit}.tar.gz MiniUTL-${_miniutl_commit}.tar.gz 7b7b26377854b3fc741c8d652d8b3c9c540512644943ca6efb63df941b2861e3"
depends=("xash3d-fwgs")
workdir="hlsdk-xash3d-${_hlsdk_commit}"
files="https://github.com/FWGS/hlsdk-xash3d/archive/${_hlsdk_commit}.tar.gz hlsdk-xash3d-${_hlsdk_commit}.tar.gz fd17436571341bd5e50739f22d84f9857f492637479144d01b1ffc1ead9d776b"
auth_type=sha256
launcher_name="Half-Life"
launcher_category="Games"
@ -21,45 +13,16 @@ launcher_command="sh /home/anon/Games/halflife/hl.sh"
export PKG_CONFIG_PATH="${SERENITY_INSTALL_ROOT}/usr/local/lib/pkgconfig"
# This one is a bit tricky to build, so I'm going a little bit off the script....
configure() {
# Initialize submodules from tarballs
[ -e ./xash3d-fwgs-${_fwgs_commit}/mainui ] && rm -r ./xash3d-fwgs-${_fwgs_commit}/mainui
cp -r mainui_cpp-${_mainui_commit}/ ./xash3d-fwgs-${_fwgs_commit}/mainui
rmdir ./xash3d-fwgs-${_fwgs_commit}/mainui/miniutl
cp -r MiniUTL-${_miniutl_commit}/ ./xash3d-fwgs-${_fwgs_commit}/mainui/miniutl
# Configure the shared object projects (client and game)
cd ./hlsdk-xash3d-${_hlsdk_commit}
./waf configure -T release
cd ../
# Configure the engine itself...
cd ./xash3d-fwgs-${_fwgs_commit}
./waf configure --sdl2="${SERENITY_INSTALL_ROOT}/usr/local" --vgui=../vgui-dev-${_vgui_commit}/ -T release
cd ../
run ./waf configure -T release
}
build() {
# Build the game and client
cd ./hlsdk-xash3d-${_hlsdk_commit}
./waf build
cd ../
# Build the engine
cd ./xash3d-fwgs-${_fwgs_commit}
./waf build
cd ../
run ./waf build
}
install() {
cd ./hlsdk-xash3d-${_hlsdk_commit}
./waf install --destdir=${SERENITY_INSTALL_ROOT}/home/anon/Games/halflife
cd ../
cd ./xash3d-fwgs-${_fwgs_commit}
./waf install --destdir=${SERENITY_INSTALL_ROOT}/home/anon/Games/halflife/
cd ../
run ./waf install --destdir=${SERENITY_INSTALL_ROOT}/home/anon/Games/halflife
}
post_install() {

View file

@ -6,14 +6,14 @@ Subject: [PATCH] Build: Add SerenityOS to list of compatible systems
This is required by the build system to spit out a library with
the correct name/platform.
---
hlsdk-xash3d-808be9442f60b4388f68fcef8b2659d0cd6db17b/public/build.h | 4 ++++
hlsdk-xash3d-808be9442f60b4388f68fcef8b2659d0cd6db17b/scripts/waifulib/library_naming.py | 3 +++
public/build.h | 4 ++++
scripts/waifulib/library_naming.py | 3 +++
2 files changed, 7 insertions(+)
diff --git a/hlsdk-xash3d-808be9442f60b4388f68fcef8b2659d0cd6db17b/public/build.h b/hlsdk-xash3d-808be9442f60b4388f68fcef8b2659d0cd6db17b/public/build.h
index 3692cf175..5b6bcc362 100644
--- a/hlsdk-xash3d-808be9442f60b4388f68fcef8b2659d0cd6db17b/public/build.h
+++ b/hlsdk-xash3d-808be9442f60b4388f68fcef8b2659d0cd6db17b/public/build.h
diff --git a/public/build.h b/public/build.h
index 3692cf1..5b6bcc3 100644
--- a/public/build.h
+++ b/public/build.h
@@ -75,6 +75,7 @@ For more information, please refer to <http://unlicense.org/>
#undef XASH_RISCV_DOUBLEFP
#undef XASH_RISCV_SINGLEFP
@ -32,11 +32,11 @@ index 3692cf175..5b6bcc362 100644
#else
#error "Place your operating system name here! If this is a mistake, try to fix conditions above and report a bug"
#endif
diff --git a/hlsdk-xash3d-808be9442f60b4388f68fcef8b2659d0cd6db17b/scripts/waifulib/library_naming.py b/hlsdk-xash3d-808be9442f60b4388f68fcef8b2659d0cd6db17b/scripts/waifulib/library_naming.py
index a3929067f..44ade2fd2 100644
--- a/hlsdk-xash3d-808be9442f60b4388f68fcef8b2659d0cd6db17b/scripts/waifulib/library_naming.py
+++ b/hlsdk-xash3d-808be9442f60b4388f68fcef8b2659d0cd6db17b/scripts/waifulib/library_naming.py
@@ -57,6 +57,7 @@
diff --git a/scripts/waifulib/library_naming.py b/scripts/waifulib/library_naming.py
index a392906..44ade2f 100644
--- a/scripts/waifulib/library_naming.py
+++ b/scripts/waifulib/library_naming.py
@@ -57,6 +57,7 @@ DEFINES = [
'XASH_RISCV_DOUBLEFP',
'XASH_RISCV_SINGLEFP',
'XASH_RISCV_SOFTFP',

View file

@ -6,13 +6,13 @@ Subject: [PATCH] Build: Add `__STRINGS_H_COMPAT_HACK` macro
This bypasses a bunch of `str[n]cmpcase` errors that occur due to weird
LibC compatibility problems.
---
hlsdk-xash3d-808be9442f60b4388f68fcef8b2659d0cd6db17b/wscript | 2 +-
wscript | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hlsdk-xash3d-808be9442f60b4388f68fcef8b2659d0cd6db17b/wscript b/hlsdk-xash3d-808be9442f60b4388f68fcef8b2659d0cd6db17b/wscript
index 336e8d34f..684c575a5 100644
--- a/hlsdk-xash3d-808be9442f60b4388f68fcef8b2659d0cd6db17b/wscript
+++ b/hlsdk-xash3d-808be9442f60b4388f68fcef8b2659d0cd6db17b/wscript
diff --git a/wscript b/wscript
index 336e8d3..684c575 100644
--- a/wscript
+++ b/wscript
@@ -171,7 +171,7 @@ def configure(conf):
elif conf.env.COMPILER_CC == 'owcc':
pass

View file

@ -1,28 +1,13 @@
# Patches for halflife on SerenityOS
## `fwgs-add-serenity.patch`
## `0001-Build-Add-SerenityOS-to-list-of-compatible-systems.patch`
Build: Add SerenityOS to list of compatible systems
This is required by the build system to spit out a library with
the correct name/platform.
## `fwgs-dont-format-nan-loop.patch`
Engine: Keep HTTP from endlessly formatting NaN values
For whatever reason, our progress count for HTTP downloads stays at 0.
This results in the engine calculating a NaN progress value many times
each frame, which results in a significant performance hit.
## `hlsdk-add-serenity.patch`
Build: Add SerenityOS to list of compatible systems
This is required by the build system to spit out a library with
the correct name/platform.
## `hlsdk-strings-compat.patch`
## `0002-Build-Add-__STRINGS_H_COMPAT_HACK-macro.patch`
Build: Add `__STRINGS_H_COMPAT_HACK` macro

View file

@ -1,47 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jesse Buhagiar <jooster669@gmail.com>
Date: Sun, 2 Jan 2022 00:39:02 +1100
Subject: [PATCH] Build: Add SerenityOS to list of compatible systems
This is required by the build system to spit out a library with
the correct name/platform.
---
xash3d-fwgs-5402e1a2597c40c603bd0f2b1a9cd6a16506ec84/engine/common/build.c | 2 ++
xash3d-fwgs-5402e1a2597c40c603bd0f2b1a9cd6a16506ec84/public/build.h | 4 ++++
2 files changed, 6 insertions(+)
diff --git a/xash3d-fwgs-5402e1a2597c40c603bd0f2b1a9cd6a16506ec84/engine/common/build.c b/xash3d-fwgs-5402e1a2597c40c603bd0f2b1a9cd6a16506ec84/engine/common/build.c
index c4ddaeeb2..42ba572c4 100644
--- a/xash3d-fwgs-5402e1a2597c40c603bd0f2b1a9cd6a16506ec84/engine/common/build.c
+++ b/xash3d-fwgs-5402e1a2597c40c603bd0f2b1a9cd6a16506ec84/engine/common/build.c
@@ -95,6 +95,8 @@ const char *Q_buildos( void )
osname = "DOS4GW";
#elif XASH_HAIKU
osname = "haiku";
+#elif XASH_SERENITY
+ osname = "serenityos";
#else
#error "Place your operating system name here! If this is a mistake, try to fix conditions above and report a bug"
#endif
diff --git a/xash3d-fwgs-5402e1a2597c40c603bd0f2b1a9cd6a16506ec84/public/build.h b/xash3d-fwgs-5402e1a2597c40c603bd0f2b1a9cd6a16506ec84/public/build.h
index 6e1f326d6..57a7735f4 100644
--- a/xash3d-fwgs-5402e1a2597c40c603bd0f2b1a9cd6a16506ec84/public/build.h
+++ b/xash3d-fwgs-5402e1a2597c40c603bd0f2b1a9cd6a16506ec84/public/build.h
@@ -74,6 +74,7 @@ For more information, please refer to <http://unlicense.org/>
#undef XASH_RISCV_DOUBLEFP
#undef XASH_RISCV_SINGLEFP
#undef XASH_RISCV_SOFTFP
+#undef XASH_SERENITY
#undef XASH_WIN32
#undef XASH_WIN64
#undef XASH_X86
@@ -125,6 +126,9 @@ For more information, please refer to <http://unlicense.org/>
#elif defined __HAIKU__
#define XASH_HAIKU 1
#define XASH_POSIX 1
+#elif defined __serenity__
+ #define XASH_SERENITY 1
+ #define XASH_POSIX 1
#else
#error "Place your operating system name here! If this is a mistake, try to fix conditions above and report a bug"
#endif

View file

@ -1,24 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tim Schumacher <timschumi@gmx.de>
Date: Mon, 2 May 2022 01:22:35 +0200
Subject: [PATCH] Engine: Keep HTTP from endlessly formatting NaN values
For whatever reason, our progress count for HTTP downloads stays at 0.
This results in the engine calculating a NaN progress value many times
each frame, which results in a significant performance hit.
---
xash3d-fwgs-5402e1a2597c40c603bd0f2b1a9cd6a16506ec84/engine/common/net_ws.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xash3d-fwgs-5402e1a2597c40c603bd0f2b1a9cd6a16506ec84/engine/common/net_ws.c b/xash3d-fwgs-5402e1a2597c40c603bd0f2b1a9cd6a16506ec84/engine/common/net_ws.c
--- a/xash3d-fwgs-5402e1a2597c40c603bd0f2b1a9cd6a16506ec84/engine/common/net_ws.c
+++ b/xash3d-fwgs-5402e1a2597c40c603bd0f2b1a9cd6a16506ec84/engine/common/net_ws.c
@@ -2280,7 +2280,7 @@
}
// update progress
- if( !Host_IsDedicated() )
+ if( !Host_IsDedicated() && iProgressCount != 0 )
Cvar_SetValue( "scr_download", flProgress/iProgressCount * 100 );
HTTP_AutoClean();