From 81fc679557028d79c94e872dfb3eeb0f69ebfeff Mon Sep 17 00:00:00 2001 From: Peppersawce Date: Mon, 27 Oct 2025 20:05:20 +0100 Subject: Haiku fixes diff --git a/3rdparty/readerwriterqueue/atomicops.h b/3rdparty/readerwriterqueue/atomicops.h index f58bcf8..24b145d 100644 --- a/3rdparty/readerwriterqueue/atomicops.h +++ b/3rdparty/readerwriterqueue/atomicops.h @@ -372,7 +372,7 @@ extern "C" { } #elif defined(__MACH__) #include -#elif defined(__unix__) +#elif defined(__unix__) || defined(__HAIKU__) #include #elif defined(FREERTOS) #include @@ -510,7 +510,7 @@ namespace moodycamel } } }; -#elif defined(__unix__) +#elif defined(__unix__) || defined(__HAIKU__) //--------------------------------------------------------- // Semaphore (POSIX, Linux) //--------------------------------------------------------- diff --git a/CMakeLists.txt b/CMakeLists.txt index 372438b..6a94833 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -212,7 +212,11 @@ endif() INCLUDE(AddTargetLinkFlagsIfSupported) # Use "-fPIC" / "-fPIE" for all targets by default, including static libs -set(CMAKE_POSITION_INDEPENDENT_CODE ON) +if (HAIKU) + set(CMAKE_POSITION_INDEPENDENT_CODE OFF) +else() + set(CMAKE_POSITION_INDEPENDENT_CODE ON) +endif() set(WZ_WIN_HAS_PDB FALSE) if("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC") diff --git a/lib/framework/wzglobal.h b/lib/framework/wzglobal.h index ad32013..46fa2de 100644 --- a/lib/framework/wzglobal.h +++ b/lib/framework/wzglobal.h @@ -108,7 +108,7 @@ # define WZ_OS_RELIANT #elif defined(__linux__) || defined(__linux) # define WZ_OS_LINUX -#elif defined(__FreeBSD__) || defined(__DragonFly__) +#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__HAIKU__) # define WZ_OS_FREEBSD # define WZ_OS_BSD4 #elif defined(__FreeBSD_kernel__) && !defined(__FreeBSD__) diff --git a/lib/sound/oggvorbis.cpp b/lib/sound/oggvorbis.cpp index c02f6d1..2fd4aba 100644 --- a/lib/sound/oggvorbis.cpp +++ b/lib/sound/oggvorbis.cpp @@ -57,7 +57,7 @@ static size_t wz_ogg_read(void *ptr, size_t size, size_t nmemb, void *datasource return WZ_PHYSFS_readBytes(fileHandle, ptr, static_cast(readLen)); } -static int wz_ogg_seek(void *datasource, int64_t offset, int whence) +static int wz_ogg_seek(void *datasource, ogg_int64_t offset, int whence) { PHYSFS_file *fileHandle; int64_t newPos; diff --git a/lib/wzmaplib/src/map_io.cpp b/lib/wzmaplib/src/map_io.cpp index 992b649..60c97d8 100644 --- a/lib/wzmaplib/src/map_io.cpp +++ b/lib/wzmaplib/src/map_io.cpp @@ -744,7 +744,9 @@ bool enumerateDirInternal(const std::string& rootBasePath, const std::string& ba continue; } fullFilePath = basePath + "/" + dir->d_name; - if (dir->d_type == DT_DIR) + struct stat stbuf; + stat(dir->d_name, &stbuf); + if (S_ISDIR(stbuf.st_mode)) { // recurse if (((enumDirFlags & ENUM_FOLDERS) == ENUM_FOLDERS)) diff --git a/src/version.cpp b/src/version.cpp index 7db79e8..e0be3cc 100644 --- a/src/version.cpp +++ b/src/version.cpp @@ -225,14 +225,14 @@ std::string version_getBuildIdentifierReleaseEnvironment() if (strlen(vcs_tag)) { optional tagVersion = version_extractVersionNumberFromTag(vcs_tag); - if (tagVersion.has_value() && strlen(tagVersion.value().qualifier) != 0) + /*if (tagVersion.has_value() && strlen(tagVersion.value().qualifier) != 0) { buildReleaseEnvironmentStr = "preview"; } else - { + {*/ buildReleaseEnvironmentStr = "release"; - } + //} } else { -- 2.51.0 From 1b4035c7f8778d9525d000ca582cae4018229078 Mon Sep 17 00:00:00 2001 From: Peppersawce Date: Fri, 31 Oct 2025 17:05:13 +0100 Subject: GameNetworkingSockets: fake being FreeBSD diff --git a/3rdparty/GameNetworkingSockets/CMakeLists.txt b/3rdparty/GameNetworkingSockets/CMakeLists.txt index 25bc6a6..314b759 100644 --- a/3rdparty/GameNetworkingSockets/CMakeLists.txt +++ b/3rdparty/GameNetworkingSockets/CMakeLists.txt @@ -155,7 +155,7 @@ function(set_target_common_gns_properties TGT) target_compile_definitions(${TGT} PUBLIC LINUX) elseif(CMAKE_SYSTEM_NAME MATCHES Darwin) target_compile_definitions(${TGT} PUBLIC OSX) - elseif(CMAKE_SYSTEM_NAME MATCHES FreeBSD) + elseif(CMAKE_SYSTEM_NAME MATCHES FreeBSD OR CMAKE_SYSTEM_NAME MATCHES Haiku) target_compile_definitions(${TGT} PUBLIC FREEBSD) elseif(CMAKE_SYSTEM_NAME MATCHES Windows) target_compile_definitions(${TGT} PUBLIC _WINDOWS) diff --git a/3rdparty/GameNetworkingSockets/src/CMakeLists.txt b/3rdparty/GameNetworkingSockets/src/CMakeLists.txt index 998bd7f..c669832 100644 --- a/3rdparty/GameNetworkingSockets/src/CMakeLists.txt +++ b/3rdparty/GameNetworkingSockets/src/CMakeLists.txt @@ -294,7 +294,7 @@ macro(set_clientlib_target_properties GNS_TARGET) #if(USE_STEAMWEBRTC AND NOT STEAMWEBRTC_USE_STATIC_LIBS) # target_link_libraries(${GNS_TARGET} PRIVATE dl) #endif() - elseif(CMAKE_SYSTEM_NAME MATCHES FreeBSD) + elseif(CMAKE_SYSTEM_NAME MATCHES FreeBSD OR CMAKE_SYSTEM_NAME MATCHES Haiku) elseif(CMAKE_SYSTEM_NAME MATCHES Windows) if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") diff --git a/3rdparty/GameNetworkingSockets/src/public/minbase/minbase_identify.h b/3rdparty/GameNetworkingSockets/src/public/minbase/minbase_identify.h index 2ab5730..df3e3c7 100644 --- a/3rdparty/GameNetworkingSockets/src/public/minbase/minbase_identify.h +++ b/3rdparty/GameNetworkingSockets/src/public/minbase/minbase_identify.h @@ -166,7 +166,7 @@ #elif defined( LINUX ) || defined( __LINUX__ ) || defined(linux) || defined(__linux) || defined(__linux__) #define IsLinux() true #define IsPosix() true -#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) || defined(__NetBSD__) +#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__HAIKU__) #define IsBSD() true #define IsPosix() true #elif defined( _POSIX_VERSION ) || defined( POSIX ) || defined( VALVE_POSIX ) -- 2.51.0 From 0f55b8733407b8e378623b82c965e7e5a445f140 Mon Sep 17 00:00:00 2001 From: Peppersawce Date: Fri, 31 Oct 2025 17:57:34 +0100 Subject: Just work already diff --git a/3rdparty/GameNetworkingSockets/src/tier0/dbg.cpp b/3rdparty/GameNetworkingSockets/src/tier0/dbg.cpp index 455ab45..1baef41 100644 --- a/3rdparty/GameNetworkingSockets/src/tier0/dbg.cpp +++ b/3rdparty/GameNetworkingSockets/src/tier0/dbg.cpp @@ -139,7 +139,7 @@ void AssertMsgImplementationV( bool _bFatal, bool bFmt, const char* pstrFile, un #elif defined( __clang__ ) abort(); #else - std::quick_exit( EXIT_FAILURE ); + abort(); #endif } -- 2.51.0