GZDoom: new recipe for version 3.5.1

This commit is contained in:
Sergei Reznikov
2018-10-11 15:56:40 +03:00
parent b40e7a75cd
commit e359dbe99c
3 changed files with 257 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
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 = "GZDoom",
long_info = "@LONG_INFO@"
};
resource app_signature "@APP_SIGNATURE@";
resource vector_icon {
$"6E6369660604000C04001904003302000602000000BEFCD23C8E380000004C20"
$"1C4F29F5001E3A81FF224292059C05DA0C0208CB1BB813CC51B920CF00BC33D1"
$"8ACADCD18AC312D18AD779C29AE1B4CADAE1B4BD82E1B4B650D7DEB904DDD2B7"
$"01D9B7B8D3DCE9B7D9DB6CBB89E0AEC31AE2FABF25E2FACB88E2FAD25FCB9ED2"
$"5FD884D25FC592CE69BBEAD0E0C00FCD6FBA6B0206CE69BBEAD128C023D0F7C0"
$"16D289CBE0D289C5B3D289D8C6C343E33A5EE33ABF39E33AB8D3DCE9BB8FE0D3"
$"BB96E11FC399E3BDBF64E3BDCC08E3BDD2DFCC62D2DFD947D2DFC5F20206CE69"
$"BBEAD0F7C016D0E0C00FD25FCB9ED25FC592D25FD884C31AE2FACB88E2FABF26"
$"E2FAB8D3DCE9BB8BE0AEBB8FE0D3C343E33ABF39E33A5EE33AD289CBE0D289D8"
$"C6D289C5B30207C7BFB569C7BFB569CD79B89CD18ACADED18AC101D18AD77BC2"
$"9AE1B5CADCE1B5BC28E1B5B493D2BBB6AADB7BB6E4DDA3C575E299BE0CE45DCC"
$"DFE0D3D261CB9FD257D717D25DC17AC7C0B56ACE13B880C7C0B56A0204B3A8CB"
$"5EB3A8D843B3A8BE77C2EFB403BA80B403CB5FB403D235CB5ED235BE77D235D8"
$"43C2EFE2B9CB5FE2B9BA80E2B90206CD94BAA4D06EBEE3D00CBECBD18ACA59D1"
$"8AC44ED18AD740C244E1B4CAB5E1B4BE50E1B4B800DBA4BAB6DF6BBAC5E001C2"
$"EFE2B9BEA5E2B9CB5FE2B9D235CB5ED235D843D235C4CE06074F18BD9EC33EBD"
$"9EC33EB7A6C33EBD9ED585B7A6D585BD9ED585CCE5D072C73FCCE5C955C33E06"
$"076334BD4AC851BC4BC851BD4AC851C795C399CD66CB5EC046D072BD4AD072BD"
$"4AD072BC4BD07206074F18BCF5C23BBCF5C23BB6FBC23BBCF5D481B6FBD481BC"
$"F5D481CC3ACF6EC696CC3AC851C23B06076334BC9FC74EBBA0C74EBC9FC74EC6"
$"EBC2EFCC62CA59BF9CCF6EBC9FCF6EBC9FCF6EBBA0CF6E06074F18BCF5C33EBC"
$"F5C33EB7A5C33EBCF5D37DB7A5D37DBCF5D37DCB91D072C498CB91C7D0C33E06"
$"076334BC9FC64ABAF7C64ABC9FC64AC894C244CE6ACB5EC046D072BC9FD072BC"
$"9FD072BAF7D072080A00020001023F2ED50000000000003E18B33CB9383B677D"
$"0A010102023F2ED50000000000003E18B33CB9383B677D0A020103023F2ED500"
$"00000000003E18B33CB9383B677D0A030104023F2ED50000000000003E18B33C"
$"B9383B677D0A010105023F2ED50000000000003E18B33CB9383B677D0A010206"
$"07023F2ED50000000000003E18B33CB9383B677D0A04020809023F2ED5000000"
$"0000003E18B33CB9383B677D0A05020A0B023F2ED50000000000003E18B33CB9"
$"383B677D"
};

View File

@@ -0,0 +1,117 @@
SUMMARY="A modder-friendly OpenGL source port based on the DOOM engine"
DESCRIPTION="Consider all these features that ZDoom has that are not found in \
the standard Doom originally released by id:
* It runs well under all modern versions of Windows, from Windows XP to the \
new Windows 10. If you have Mac or Linux, it works with that too.
* Can play all Doom engine games, including Ultimate Doom, Doom II, Heretic, \
Hexen, Strife, and more.
* Supports all the editing features of Hexen. (ACS, hubs, new map format, etc.)
* Supports most of the Boom editing features.
* Many more all-new editing features such as:
* Colored lighting.
* 3D floors.
* Portals.
* Advanced polyobjects free from the restrictions of their original \
implementation in Hexen.
* Custom monsters, weapons, items, player classes, and other entities.
* High resolution textures and sprites.
* Translucency (regular and additive).
* Many, many extensions to ACS that were not present in Hexen.
* More music formats: Ogg Vorbis, MOD, XM, IT, S3M, MIDI, and MP3 as well as \
old-fashioned MUS all work.
* More sound formats: FLAC and WAVE can both be used for sound effects.
* More texture formats: PNG and JPEG are both useable for artwork.
* All Doom limits are gone.
* Several softsynths for MUS and MIDI playback, including an OPL softsynth
for an authentic "oldschool" flavor.
* High resolutions.
* Quake-style console and key bindings.
* Crosshairs.
* Free look (look up/down).
* Jumping, crouching, swimming, and flying.
* Full-featured joystick/gamepad support under Windows.
* Up to 8 player network games using UDP/IP, including team-based gameplay.
* Support for the Bloodbath announcer from the classic Monolith game Blood.
* Walk over/under monsters and other things."
HOMEPAGE="https://zdoom.org/"
COPYRIGHT="
1998-2018 ZDoom + GZDoom teams, and contributors
1997 id Software, Raven Software, and contributors
"
LICENSE="GNU GPL v3"
REVISION="1"
SOURCE_URI="https://github.com/coelckers/gzdoom/archive/g$portVersion.tar.gz"
CHECKSUM_SHA256="6189ac5328a835b28246c0a7a7449f8cb7f71a4f2c9868ff5315a2f598849096"
SOURCE_DIR="gzdoom-g$portVersion"
PATCHES="gzdoom-$portVersion.patchset"
ADDITIONAL_FILES="gzdoom.rdef.in"
ARCHITECTURES="!x86_gcc2 ?x86 x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
gzdoom$secondaryArchSuffix = $portVersion
app:GZDoom
"
REQUIRES="
haiku$secondaryArchSuffix
# lib:libbzip2$secondaryArchSuffix
lib:libfluidsynth$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libgomp$secondaryArchSuffix
lib:libjpeg$secondaryArchSuffix
lib:libSDL2_2.0$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
# devel:libbzip2$secondaryArchSuffix # cmake: Could NOT find BZip2
devel:libfluidsynth$secondaryArchSuffix
devel:libGL$secondaryArchSuffix
devel:libjpeg$secondaryArchSuffix
devel:libSDL2_2.0$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:gcc$secondaryArchSuffix
cmd:install
cmd:ld$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
"
BUILD()
{
mkdir -p build
cd build
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="-D_GNU_SOURCE -D_BSD_SOURCE"
make $jobArgs
}
INSTALL()
{
mkdir -p $appsDir/GZDoom
cp build/gzdoom $appsDir/GZDoom/GZDoom
cp build/*.pk3 $appsDir/GZDoom
local APP_SIGNATURE="application/x-vnd.gzdoom"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/gzdoom.rdef.in > gzdoom.rdef
addResourcesToBinaries gzdoom.rdef $appsDir/GZDoom/GZDoom
addAppDeskbarSymlink $appsDir/GZDoom/GZDoom
}

View File

@@ -0,0 +1,90 @@
From 00f8ebcd4207cfec01b72a05b8df4c9f28649da8 Mon Sep 17 00:00:00 2001
From: Sergei Reznikov <diver@gelios.net>
Date: Thu, 11 Oct 2018 14:21:49 +0300
Subject: Haiku fixes
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 032dbb1..70c9c47 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -251,6 +251,13 @@ else()
endif( APPLE )
endif()
+
+ if(HAIKU)
+ # Haiku networking resides in libnetwork
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lnetwork")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -lnetwork")
+ endif(HAIKU)
+
set( CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} ${REL_LINKER_FLAGS}" )
set( CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} ${REL_LINKER_FLAGS}" )
set( CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} ${REL_LINKER_FLAGS}" )
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b4ec9a4..af017e7 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -404,9 +404,9 @@ endif()
CHECK_CXX_SOURCE_COMPILES("thread_local int i; int main() { i = 0; }"
HAVE_THREAD_LOCAL)
-if( NOT HAVE_THREAD_LOCAL )
- message( SEND_ERROR "C++ compiler doesn't support thread_local storage duration specifier" )
-endif()
+#if( NOT HAVE_THREAD_LOCAL )
+# message( SEND_ERROR "C++ compiler doesn't support thread_local storage duration specifier" )
+#endif()
# Check for functions that may or may not exist.
diff --git a/src/gl_load/gl_load.c b/src/gl_load/gl_load.c
index 4bfbb78..405444e 100644
--- a/src/gl_load/gl_load.c
+++ b/src/gl_load/gl_load.c
@@ -84,7 +84,7 @@ static PROC WinGetProcAddress(const char *name)
#if defined(__APPLE__)
#define IntGetProcAddress(name) AppleGLGetProcAddress(name)
#else
- #if defined(__sgi) || defined(__sun) || defined(__unix__)
+ #if defined(__sgi) || defined(__sun) || defined(__unix__) || defined(__HAIKU__)
void* SDL_GL_GetProcAddress(const char* proc);
#define IntGetProcAddress(name) SDL_GL_GetProcAddress((const char*)name)
//#define IntGetProcAddress(name) PosixGetProcAddress((const GLubyte*)name)
diff --git a/src/m_alloc.cpp b/src/m_alloc.cpp
index d08913b..50b4289 100644
--- a/src/m_alloc.cpp
+++ b/src/m_alloc.cpp
@@ -40,6 +40,9 @@
#include <malloc/malloc.h>
#elif defined(__OpenBSD__)
#include <stdlib.h>
+#elif defined(__APPLE__)
+#include <stdlib.h>
+#include <malloc.h>
#else
#include <malloc.h>
#endif
diff --git a/src/posix/i_system.h b/src/posix/i_system.h
index 7f468f1..d1e0169 100644
--- a/src/posix/i_system.h
+++ b/src/posix/i_system.h
@@ -159,6 +159,7 @@ inline const char *I_FindName(findstate_t *fileinfo)
#define FA_DIREC 8
#define FA_ARCH 16
+#ifndef __HAIKU__
static inline char *strlwr(char *str)
{
char *ptr = str;
@@ -169,5 +170,5 @@ static inline char *strlwr(char *str)
}
return str;
}
-
+#endif
#endif
--
2.19.1