mirror of
https://gitlab.com/dosowisko.net/libsuperderpy.git
synced 2025-03-03 16:51:27 +01:00
fixed OSX support
This commit is contained in:
parent
fc44fd2d5a
commit
a82dfb16cf
6 changed files with 32 additions and 10 deletions
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
15
cmake/osxcross64.toolchain
Normal file
15
cmake/osxcross64.toolchain
Normal 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)
|
|
@ -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)
|
||||
|
|
|
@ -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 {
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue