diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ac374e55..92e7d6702 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -309,7 +309,7 @@ else() # If we're compiling with a custom GCC on the Mac (which we know since g++-4.2 doesn't support C++11) statically link libgcc. set( ALL_C_FLAGS "-static-libgcc" ) endif() - elseif( NOT MINGW ) + elseif( NOT MINGW AND NOT HAIKU ) # Generic GCC/Clang requires position independent executable to be enabled explicitly set( ALL_C_FLAGS "${ALL_C_FLAGS} -fPIE" ) set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie" ) diff --git a/libraries/ZVulkan/CMakeLists.txt b/libraries/ZVulkan/CMakeLists.txt index 3b47b7b68..4cd713323 100644 --- a/libraries/ZVulkan/CMakeLists.txt +++ b/libraries/ZVulkan/CMakeLists.txt @@ -188,7 +188,11 @@ if(WIN32) add_definitions(-DUNICODE -D_UNICODE) else() set(ZVULKAN_SOURCES ${ZVULKAN_SOURCES} ${ZVULKAN_UNIX_SOURCES}) - set(ZVULKAN_LIBS ${CMAKE_DL_LIBS} -ldl) + if(NOT HAIKU) + set(ZVULKAN_LIBS ${CMAKE_DL_LIBS} -ldl) + else() + set(ZVULKAN_LIBS ${CMAKE_DL_LIBS}) + endif() add_definitions(-DUNIX -D_UNIX) add_link_options(-pthread) endif() diff --git a/libraries/ZWidget/CMakeLists.txt b/libraries/ZWidget/CMakeLists.txt index 68c048e22..329caf96e 100644 --- a/libraries/ZWidget/CMakeLists.txt +++ b/libraries/ZWidget/CMakeLists.txt @@ -130,7 +130,11 @@ elseif(APPLE) add_link_options(-pthread) else() set(ZWIDGET_SOURCES ${ZWIDGET_SOURCES} ${ZWIDGET_SDL2_SOURCES}) - set(ZWIDGET_LIBS ${CMAKE_DL_LIBS} -ldl) + if(NOT HAIKU) + set(ZWIDGET_LIBS ${CMAKE_DL_LIBS} -ldl) + else() + set(ZWIDGET_LIBS ${CMAKE_DL_LIBS}) + endif() add_definitions(-DUNIX -D_UNIX) add_link_options(-pthread) endif() diff --git a/src/common/engine/i_specialpaths.h b/src/common/engine/i_specialpaths.h index 01710b672..fb75230f5 100644 --- a/src/common/engine/i_specialpaths.h +++ b/src/common/engine/i_specialpaths.h @@ -2,7 +2,7 @@ #include "zstring.h" -#ifdef __unix__ +#if defined(__unix__) || defined(__HAIKU__) FString GetUserFile (const char *path); #endif FString M_GetAppDataPath(bool create); diff --git a/src/common/rendering/gl_load/gl_load.c b/src/common/rendering/gl_load/gl_load.c index d5ba4e49f..bb2141e7c 100644 --- a/src/common/rendering/gl_load/gl_load.c +++ b/src/common/rendering/gl_load/gl_load.c @@ -134,7 +134,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/version.h b/src/version.h index 91f3319b5..ddfd3a346 100644 --- a/src/version.h +++ b/src/version.h @@ -105,6 +105,8 @@ const char *GetVersionString(); #if defined(__APPLE__) || defined(_WIN32) #define GAME_DIR GAMENAME +#elif defined(__HAIKU__) +#define GAME_DIR "config/settings/" GAMENAME #else #define GAME_DIR ".config/" GAMENAMELOWERCASE #endif