fixed OSX support

This commit is contained in:
Sebastian Krzyszkowiak 2016-07-05 01:30:06 +02:00
parent fc44fd2d5a
commit a82dfb16cf
6 changed files with 32 additions and 10 deletions

View file

@ -2,6 +2,7 @@ set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_C_COMPILER /usr/bin/i686-w64-mingw32-gcc)
set(CMAKE_CXX_COMPILER /usr/bin/i686-w64-mingw32-g++)
set(CMAKE_RC_COMPILER /usr/bin/i686-w64-mingw32-windres)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)

View file

@ -5,9 +5,14 @@ add_definitions(-D_XOPEN_SOURCE=600)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -std=c11")
if(APPLE)
if(CMAKE_INSTALL_PREFIX MATCHES "/usr/local")
set(CMAKE_INSTALL_PREFIX "/Applications")
set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}")
set(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}")
set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIBSUPERDERPY_GAMENAME}.app/Contents/MacOS/")
endif(CMAKE_INSTALL_PREFIX MATCHES "/usr/local")
set(MACOSX_BUNDLE_ICON_FILE ${LIBSUPERDERPY_GAMENAME})
set(MACOSX_BUNDLE_BUNDLE_NAME ${LIBSUPERDERPY_GAMENAME_PRETTY})
endif(APPLE)
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/libsuperderpy/cmake ${PROJECT_SOURCE_DIR}/cmake)
@ -47,7 +52,7 @@ endif(APPLE)
MACRO(register_gamestate name)
add_library("libsuperderpy-${LIBSUPERDERPY_GAMENAME}-${name}" MODULE "${name}.c")
add_library("libsuperderpy-${LIBSUPERDERPY_GAMENAME}-${name}" SHARED "${name}.c")
set_target_properties("libsuperderpy-${LIBSUPERDERPY_GAMENAME}-${name}" PROPERTIES PREFIX "")
@ -63,7 +68,9 @@ ENDMACRO()
MACRO(libsuperderpy_copy EXECUTABLE)
add_custom_command(TARGET "${EXECUTABLE}" PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "../libsuperderpy/src/libsuperderpy${CMAKE_SHARED_LIBRARY_SUFFIX}" $<TARGET_FILE_DIR:${EXECUTABLE}>)
if (NOT APPLE)
add_custom_command(TARGET "${EXECUTABLE}" PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "../libsuperderpy/src/libsuperderpy${CMAKE_SHARED_LIBRARY_SUFFIX}" $<TARGET_FILE_DIR:${EXECUTABLE}>)
endif (NOT APPLE)
ENDMACRO()

View file

@ -0,0 +1,15 @@
set(CMAKE_SYSTEM_NAME Darwin)
# replace with your path to OSXCross toolchain
set(OSXCROSS_PATH /home/dos/git/osxcross/target)
set(OSXCROSS_SDK_VERSION 10.11)
set(CMAKE_C_COMPILER ${OSXCROSS_PATH}/bin/o64-clang)
set(CMAKE_CXX_COMPILER ${OSXCROSS_PATH}/bin/o64-clang++)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set(CMAKE_PREFIX_PATH ${OSXCROSS_PATH}/SDK/MacOSX${OSXCROSS_SDK_VERSION}.sdk/usr)

View file

@ -2,6 +2,7 @@ set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_C_COMPILER /usr/bin/x86_64-w64-mingw32-gcc)
set(CMAKE_CXX_COMPILER /usr/bin/x86_64-w64-mingw32-g++)
set(CMAKE_RC_COMPILER /usr/bin/x86_64-w64-mingw32-windres)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)

View file

@ -27,6 +27,7 @@
#include <locale.h>
#include <dlfcn.h>
#include <unistd.h>
#include <libgen.h>
#include <allegro5/allegro_primitives.h>
#include <allegro5/allegro_acodec.h>
#include <allegro5/allegro_ttf.h>
@ -45,12 +46,9 @@ SYMBOL_EXPORT struct Game* libsuperderpy_init(int argc, char** argv, const char*
#ifdef ALLEGRO_MACOSX
char exe_path[MAXPATHLEN];
char link_path[MAXPATHLEN];
uint32_t size = sizeof(exe_path);
_NSGetExecutablePath(exe_path, &size);
realpath(exe_path, link_path);
chdir(link_path);
chdir(dirname(exe_path));
#endif
@ -211,7 +209,7 @@ SYMBOL_EXPORT int libsuperderpy_run(struct Game *game) {
snprintf(libname, 1024, "libsuperderpy-%s-loading" LIBRARY_EXTENSION, game->name);
void *handle = dlopen(libname, RTLD_NOW);
if (!handle) {
FatalError(game, true, "Error while initializing loading screen %s", dlerror());
FatalError(game, true, "Error while initializing loading screen: %s", dlerror());
return 2;
} else {

View file

@ -28,8 +28,8 @@
#ifdef ALLEGRO_WINDOWS
#define LIBRARY_EXTENSION ".dll"
#elif ALLEGRO_MACOSX
#define LIBRARY_EXTENTION ".dylib"
#elif defined(ALLEGRO_MACOSX)
#define LIBRARY_EXTENSION ".dylib"
#else
#define LIBRARY_EXTENSION ".so"
#endif