Skip to content

Commit 706cbc1

Browse files
Mikolaj 'lich' HalberSupSuper
authored andcommitted
Added Haiku support
1 parent 4f40084 commit 706cbc1

4 files changed

Lines changed: 21 additions & 8 deletions

File tree

‎cmake/modules/FindSDL2.cmake‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
FIND_PATH(SDL_INCLUDE_DIR SDL.h
7979
HINTS
8080
$ENV{SDLDIR}
81-
PATH_SUFFIXES include/SDL include
81+
PATH_SUFFIXES include/SDL include SDL
8282
PATHS
8383
~/Library/Frameworks
8484
/Library/Frameworks
@@ -219,7 +219,7 @@ macro ( FindSDL_component _component )
219219
HINTS
220220
$ENV{SDL${UPPERCOMPONENT}DIR}
221221
$ENV{SDLDIR}
222-
PATH_SUFFIXES include/SDL include
222+
PATH_SUFFIXES include/SDL include SDL
223223
PATHS
224224
~/Library/Frameworks
225225
/Library/Frameworks

‎cmake/modules/FindSDL_gfx.cmake‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ FIND_PATH(SDLGFX_INCLUDE_DIR SDL_gfx.h
2828
HINTS
2929
$ENV{SDLGFXDIR}
3030
$ENV{SDLDIR}
31-
PATH_SUFFIXES include
31+
PATH_SUFFIXES include SDL
3232
PATHS
3333
~/Library/Frameworks
3434
/Library/Frameworks
@@ -72,7 +72,7 @@ IF(NOT SDLGFX_INCLUDE_DIR)
7272
HINTS
7373
$ENV{SDLGFXDIR}
7474
$ENV{SDLDIR}
75-
PATH_SUFFIXES include
75+
PATH_SUFFIXES include SDL
7676
PATHS
7777
~/Library/Frameworks
7878
/Library/Frameworks

‎cmake/modules/FindYaml_cpp.cmake‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ FIND_PATH(YAMLCPP_INCLUDE_DIR yaml.h
2929
${PC_YAMLCPP_INCLUDEDIR}
3030
${PC_YAMLCPP_INCLUDE_DIRS}
3131
$ENV{YAMLCPPDIR}
32-
PATH_SUFFIXES include/yaml-cpp include
32+
PATH_SUFFIXES include/yaml-cpp include yaml-cpp
3333
PATHS
3434
~/Library/Frameworks
3535
/Library/Frameworks

‎src/Engine/CrossPlatform.cpp‎

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@
6464
#endif
6565
#include <SDL.h>
6666
#include <SDL_syswm.h>
67+
#ifdef __HAIKU__
68+
#include <FindDirectory.h>
69+
#include <StorageDefs.h>
70+
#endif
6771

6872
namespace OpenXcom
6973
{
@@ -175,7 +179,10 @@ std::vector<std::string> findDataFolders()
175179
#else
176180
char const *home = getHome();
177181
#ifdef __HAIKU__
178-
list.push_back("/boot/apps/OpenXcom/");
182+
char data_path[B_PATH_NAME_LENGTH];
183+
find_directory(B_SYSTEM_SETTINGS_DIRECTORY, 0, true, data_path, sizeof(data_path)-strlen("/OpenXcom/"));
184+
strcat(data_path,"/OpenXcom/");
185+
list.push_back(data_path);
179186
#endif
180187
char path[MAXPATHLEN];
181188

@@ -267,7 +274,10 @@ std::vector<std::string> findUserFolders()
267274
}
268275
#else
269276
#ifdef __HAIKU__
270-
list.push_back("/boot/apps/OpenXcom/");
277+
char user_path[B_PATH_NAME_LENGTH];
278+
find_directory(B_USER_SETTINGS_DIRECTORY, 0, true, user_path, sizeof(user_path)-strlen("/OpenXcom/"));
279+
strcat(user_path,"/OpenXcom/");
280+
list.push_back(user_path);
271281
#endif
272282
char const *home = getHome();
273283
char path[MAXPATHLEN];
@@ -311,7 +321,10 @@ std::string findConfigFolder()
311321
#if defined(_WIN32) || defined(__APPLE__)
312322
return "";
313323
#elif defined (__HAIKU__)
314-
return "/boot/home/config/settings/openxcom/";
324+
char settings_path[B_PATH_NAME_LENGTH];
325+
find_directory(B_USER_SETTINGS_DIRECTORY, 0, true, settings_path, sizeof(settings_path)-strlen("/OpenXcom/"));
326+
strcat(settings_path,"/OpenXcom/");
327+
return settings_path;
315328
#else
316329
char const *home = getHome();
317330
char path[MAXPATHLEN];

0 commit comments

Comments
 (0)