Browse Source

Preliminary Haiku support (#94)

pull/100/head
miqlas 7 years ago committed by Anders Jenbo
parent
commit
106ffa53ba
  1. 29
      3rdParty/StormLib/src/StormPort.h
  2. 6
      3rdParty/asio/include/asio/detail/config.hpp
  3. 8
      CMakeLists.txt
  4. 50
      resources/haiku/devilutionX.rdef.in

29
3rdParty/StormLib/src/StormPort.h vendored

@ -101,6 +101,31 @@
#define PLATFORM_DEFINED // The platform is known now
#endif
#if !defined(PLATFORM_DEFINED) && defined(__HAIKU__)
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <ctype.h>
#include <assert.h>
#include <errno.h>
#ifndef __BIG_ENDIAN__
#define PLATFORM_LITTLE_ENDIAN
#endif
#define PLATFORM_HAIKU
#define PLATFORM_DEFINED // The platform is known now
#endif
//-----------------------------------------------------------------------------
// Assumption: we are not on Windows nor Macintosh, so this must be linux *grin*
@ -199,7 +224,7 @@
#endif // !PLATFORM_WINDOWS
// 64-bit calls are supplied by "normal" calls on Mac
#if defined(PLATFORM_MAC)
#if defined(PLATFORM_MAC) || defined(PLATFORM_HAIKU)
#define stat64 stat
#define fstat64 fstat
#define lseek64 lseek
@ -209,7 +234,7 @@
#endif
// Platform-specific error codes for UNIX-based platforms
#if defined(PLATFORM_MAC) || defined(PLATFORM_LINUX)
#if defined(PLATFORM_MAC) || defined(PLATFORM_LINUX) || defined(PLATFORM_HAIKU)
#define ERROR_SUCCESS 0
#define ERROR_FILE_NOT_FOUND ENOENT
#define ERROR_ACCESS_DENIED EPERM

6
3rdParty/asio/include/asio/detail/config.hpp vendored

@ -1003,7 +1003,8 @@
|| defined(__FreeBSD__) \
|| defined(__NetBSD__) \
|| defined(__OpenBSD__) \
|| defined(__linux__)
|| defined(__linux__) \
|| defined(__HAIKU__)
# define ASIO_HAS_UNISTD_H 1
# endif
# endif // !defined(ASIO_HAS_BOOST_CONFIG)
@ -1215,7 +1216,8 @@
# if defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_THREADS)
# define ASIO_HAS_THREADS 1
# elif defined(__GNUC__) && !defined(__MINGW32__) \
&& !defined(linux) && !defined(__linux) && !defined(__linux__)
&& !defined(linux) && !defined(__linux) && !defined(__linux__) \
&& !defined(__HAIKU__)
# define ASIO_HAS_THREADS 1
# elif defined(_MT) || defined(__MT__)
# define ASIO_HAS_THREADS 1

8
CMakeLists.txt

@ -38,6 +38,10 @@ endif()
if(WIN32)
set(ASAN OFF)
set(DIST ON)
endif()
if(HAIKU)
set(ASAN OFF)
endif()
if(DIST)
@ -236,6 +240,10 @@ endif()
if(WIN32)
target_link_libraries(devilutionx PRIVATE wsock32 ws2_32 wininet)
target_compile_options(devilution PUBLIC $<$<CONFIG:Debug>:-gstabs>)
endif()
if(HAIKU)
target_link_libraries(devilutionx PRIVATE network)
endif()
if(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC")

50
resources/haiku/devilutionX.rdef.in

@ -0,0 +1,50 @@
/*
* Resources for Haiku
*/
resource app_flags B_SINGLE_LAUNCH;
resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = @MINOR@,
variety = B_APPV_FINAL,
internal = 0,
short_info = "devilutionX",
long_info = "Diablo build for modern operating systems"
};
resource app_signature "application/x-vnd.diasurgical-devilutionX";
resource vector_icon {
$"6E6369660A050004016C03400000020106023EF000000000000000401800477F"
$"FF49200000FD5252FFFF0606038E020202000602381D74BA3DDC3CAC7E3A85D7"
$"474E1B48C45A00FFFFFFFFFF29290381030303EB3939020106023E1000000000"
$"0000003E300048600043000000FF7C7CFFCD0505037103030E0204C282C38EC2"
$"82C38ECB18CA6ECA21C0BABF67B9BDCA21C0BACA0CC181CA0CC181C0A3BAD1C2"
$"75C495CC5CCB38C275C4950204C282C38EC282C38ECB18CA6ECA21C0BABF67B9"
$"BDCA21C0BACA0CC181CA0CC181C0A3BAD1C275C495CC5CCB38C275C4950607FE"
$"1BBE7CCC84C21ACC84C04BCC84C3E9CC84C76FCB79C5CACB6ACB30CB9CCA5FC9"
$"08CCAEC9C1C8FDC899C61FC7E7C72AC8A0C4CBC6FAC21AC6BAC9420A0DB8B2BB"
$"E0B8B2C206BA25C379BA25C99FBB97CA58BC50CA58BCADCAE3BE7CCBCAC160C8"
$"E6C160C4EBC2D3C379C2D339BBF4B9B50A0BB8B2BBE0B8B2C206BA25C379BA25"
$"C99FBB97CA58BC50CA58BCADCAE3BE7CCBCABE7CC5A4BFEEC5A4BFEEBF220A06"
$"B8B2BBE0BFEEBF22C2D339BDC3BC9ABFEDBB83BBF4B9B50A08BFEEC5A4BE7CC5"
$"A4BE7CCBCAC160C8E6C160C4EBC2D3C379C2D339BFEEBF220A04BE7CC5A4BE7C"
$"C7D0C160C4EBBFEEC5A40A03BDC3BC9AC2D339BFEEBB84020ABDC3B617BE1FB6"
$"17BD66B617BCB3B657BD09B62EBC5CB67FBB13B48ABB59B444BACEB4CFBB1EB7"
$"ECBB46B795BAF5B843BADEB8FCBADEB89FBADEBA6EBDC3BBE0BC50BBE0BF35BB"
$"E0C0A7B8FCC0A7BA6EC0A7B89FC068B7ECC090B843C03FB795C144B51CC189B5"
$"62C0FEB4D7BED3B657BF29B67FBE7CB62E0A04BB97CA58BC50CA58BC50C548BB"
$"97C4EB0805C906C096C8B3C141CAECC2ACCA3FBF61C93EC06C0805C906C096C8"
$"B3C141CAECC2ACCA3FBF61C93EC06C020ABDC3B617BE1FB617BD66B617BCB3B6"
$"57BD09B62EBC5CB67FBB09B475BB4EB42FBAC3B4BABB1EB7ECBB46B795BAF5B8"
$"43BADEB8FCBADEB89FBADEBA6EBDC3BBE0BC50BBE0BF35BBE0C0A7B8FCC0A7BA"
$"6EC0A7B89FC068B7ECC090B843C03FB79544B512C19EB557C113B4CDBED3B657"
$"BF29B67FBE7CB62E0E0A070100000A0001011001178100040A010102000A0001"
$"031001178300040A030104000A050105000A040106000A020107000A09010800"
$"0A0001091001178300040A06010A000A07010B000A00010C1001178100040A08"
$"010D00"
};
Loading…
Cancel
Save