From a95e0d18762c8182a3c2ba074b5961d5c00a90a4 Mon Sep 17 00:00:00 2001 From: miqlas Date: Mon, 30 Oct 2017 08:17:43 +0100 Subject: [PATCH] Initial Haiku support (#6568) * Iitial Haiku support --- cmake/Modules/FindIrrlicht.cmake | 2 ++ src/CMakeLists.txt | 18 ++++++++++++++---- src/client/renderingengine.cpp | 3 ++- src/network/CMakeLists.txt | 4 ++++ util/travis/clang-format-whitelist.txt | 1 + 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/cmake/Modules/FindIrrlicht.cmake b/cmake/Modules/FindIrrlicht.cmake index 8dda15722..37349b892 100644 --- a/cmake/Modules/FindIrrlicht.cmake +++ b/cmake/Modules/FindIrrlicht.cmake @@ -42,12 +42,14 @@ else() PATHS /usr/local/include/irrlicht /usr/include/irrlicht + /system/develop/headers/irrlicht #Haiku ) find_library(IRRLICHT_LIBRARY NAMES libIrrlicht.so libIrrlicht.a Irrlicht PATHS /usr/local/lib /usr/lib + /system/develop/lib # Haiku ) endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f836a9f66..82f60be86 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -252,6 +252,12 @@ if(NOT MSVC) set(USE_GPROF FALSE CACHE BOOL "Use -pg flag for g++") endif() +# Haiku endian support +if(HAIKU) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_BSD_SOURCE") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_BSD_SOURCE") +endif() + # Use cmake_config.h add_definitions(-DUSE_CMAKE_CONFIG_H) @@ -300,7 +306,9 @@ if(WIN32) else() # Unix probably if(BUILD_CLIENT) - find_package(X11 REQUIRED) + if(NOT HAIKU) + find_package(X11 REQUIRED) + endif(NOT HAIKU) find_package(OpenGL REQUIRED) find_package(JPEG REQUIRED) find_package(BZip2 REQUIRED) @@ -328,10 +336,12 @@ else() endif(HAVE_LIBRT) endif(APPLE) + if(NOT HAIKU) # This way Xxf86vm is found on OpenBSD too - find_library(XXF86VM_LIBRARY Xxf86vm) - mark_as_advanced(XXF86VM_LIBRARY) - set(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${XXF86VM_LIBRARY}) + find_library(XXF86VM_LIBRARY Xxf86vm) + mark_as_advanced(XXF86VM_LIBRARY) + set(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${XXF86VM_LIBRARY}) + endif(NOT HAIKU) # Prefer local iconv if installed find_library(ICONV_LIBRARY iconv) diff --git a/src/client/renderingengine.cpp b/src/client/renderingengine.cpp index b3abd824d..a57388596 100644 --- a/src/client/renderingengine.cpp +++ b/src/client/renderingengine.cpp @@ -34,7 +34,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "inputhandler.h" #include "gettext.h" -#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__ANDROID__) && !defined(SERVER) +#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__ANDROID__) && \ + !defined(SERVER) && !defined(__HAIKU__) #define XORG_USED #endif #ifdef XORG_USED diff --git a/src/network/CMakeLists.txt b/src/network/CMakeLists.txt index dedca9f2b..c6995ab22 100644 --- a/src/network/CMakeLists.txt +++ b/src/network/CMakeLists.txt @@ -17,3 +17,7 @@ if (BUILD_CLIENT) ) endif() +# Haiku networking support +if(HAIKU) + set(PLATFORM_LIBS -lnetwork ${PLATFORM_LIBS}) +endif() diff --git a/util/travis/clang-format-whitelist.txt b/util/travis/clang-format-whitelist.txt index 84bed6fc9..3fb9da141 100644 --- a/util/travis/clang-format-whitelist.txt +++ b/util/travis/clang-format-whitelist.txt @@ -16,6 +16,7 @@ src/clientiface.cpp src/clientiface.h src/client/joystick_controller.cpp src/client/joystick_controller.h +src/client/renderingengine.cpp src/clientmap.cpp src/clientmap.h src/clientmedia.cpp -- 2.25.1