diff --git a/games-fps/gzdoom/additional-files/gzdoom.rdef.in b/games-fps/gzdoom/additional-files/gzdoom.rdef.in new file mode 100644 index 000000000..fb35f1a0d --- /dev/null +++ b/games-fps/gzdoom/additional-files/gzdoom.rdef.in @@ -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" +}; diff --git a/games-fps/gzdoom/gzdoom-3.5.1.recipe b/games-fps/gzdoom/gzdoom-3.5.1.recipe new file mode 100644 index 000000000..aa020bd4c --- /dev/null +++ b/games-fps/gzdoom/gzdoom-3.5.1.recipe @@ -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 +} diff --git a/games-fps/gzdoom/patches/gzdoom-3.5.1.patchset b/games-fps/gzdoom/patches/gzdoom-3.5.1.patchset new file mode 100644 index 000000000..e8d816d13 --- /dev/null +++ b/games-fps/gzdoom/patches/gzdoom-3.5.1.patchset @@ -0,0 +1,90 @@ +From 00f8ebcd4207cfec01b72a05b8df4c9f28649da8 Mon Sep 17 00:00:00 2001 +From: Sergei Reznikov +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 + #elif defined(__OpenBSD__) + #include ++#elif defined(__APPLE__) ++#include ++#include + #else + #include + #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 +