Skip to content
Snippets Groups Projects
Commit 1c0f06b7 authored by Deucе's avatar Deucе :ok_hand_tone4:
Browse files

Initial stab at making the macOS cmake build work

parent 6964306f
No related branches found
No related tags found
No related merge requests found
Pipeline #6763 passed
...@@ -90,6 +90,14 @@ if(NOT WITHOUT_X1!) ...@@ -90,6 +90,14 @@ if(NOT WITHOUT_X1!)
endif() endif()
if(NOT WITHOUT_SDL) if(NOT WITHOUT_SDL)
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
if(NOT SDL2_FOUND)
find_library(SDL2_LIBRARY SDL2)
if(SDL2_LIBRARY)
set(SDL2_FOUND ON)
endif()
endif()
endif()
if(SDL2_FOUND) if(SDL2_FOUND)
list(APPEND SOURCE sdl_con.c) list(APPEND SOURCE sdl_con.c)
list(APPEND SOURCE sdlfuncs.c) list(APPEND SOURCE sdlfuncs.c)
...@@ -97,9 +105,6 @@ if(NOT WITHOUT_SDL) ...@@ -97,9 +105,6 @@ if(NOT WITHOUT_SDL)
if(WIN32) if(WIN32)
list(APPEND SOURCE SDL_win32_main.c) list(APPEND SOURCE SDL_win32_main.c)
endif() endif()
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
list(APPEND SOURCE SDLMain.m)
endif()
set(NEED_BITMAP TRUE) set(NEED_BITMAP TRUE)
set(NEED_DLOPEN TRUE) set(NEED_DLOPEN TRUE)
endif() endif()
...@@ -152,12 +157,22 @@ else() ...@@ -152,12 +157,22 @@ else()
endif() endif()
if(NOT WITHOUT_SDL) if(NOT WITHOUT_SDL)
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
if(SDL2_LIBRARY)
target_link_libraries(ciolib ${SDL2_LIBRARY})
target_include_directories(ciolib PUBLIC ${SDL2_LIBRARY}/Headers)
target_include_directories(ciolib PUBLIC ${SDL2_LIBRARY})
target_compile_definitions(ciolib PUBLIC STATIC_SDL)
target_compile_definitions(ciolib PUBLIC WITH_SDL)
endif()
else()
if(SDL2_FOUND) if(SDL2_FOUND)
target_include_directories(ciolib PUBLIC ${SDL2_INCLUDE_DIRS}) target_include_directories(ciolib PUBLIC ${SDL2_INCLUDE_DIRS})
set(WITH_SDL TRUE PARENT_SCOPE) set(WITH_SDL TRUE PARENT_SCOPE)
target_compile_definitions(ciolib PUBLIC WITH_SDL) target_compile_definitions(ciolib PUBLIC WITH_SDL)
endif() endif()
endif() endif()
endif()
if(WIN32) if(WIN32)
if(NOT WITHOUT_GDI) if(NOT WITHOUT_GDI)
......
...@@ -2003,7 +2003,7 @@ CIOLIBEXPORT void ciolib_setscaling_type(enum ciolib_scaling newval) ...@@ -2003,7 +2003,7 @@ CIOLIBEXPORT void ciolib_setscaling_type(enum ciolib_scaling newval)
cio_api.setscaling_type(newval); cio_api.setscaling_type(newval);
} }
#if defined(__DARWIN__) #if defined(WITH_SDL) && defined(__DARWIN__)
#ifdef main #ifdef main
#undef main #undef main
#endif #endif
......
...@@ -22,6 +22,6 @@ set(HEADER ...@@ -22,6 +22,6 @@ set(HEADER
) )
add_library(encode OBJECT ${SOURCE}) add_library(encode OBJECT ${SOURCE})
target_compile_features(encode PUBLIC c_std_99) target_compile_features(encode PUBLIC c_std_11)
target_include_directories(encode PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(encode PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(encode xpdev) target_link_libraries(encode xpdev)
...@@ -19,6 +19,6 @@ set(HEADER ...@@ -19,6 +19,6 @@ set(HEADER
) )
add_library(sftp OBJECT ${SOURCE}) add_library(sftp OBJECT ${SOURCE})
target_compile_features(sftp PUBLIC c_std_99) target_compile_features(sftp PUBLIC c_std_11)
target_include_directories(sftp PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(sftp PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(sftp xpdev) target_link_libraries(sftp xpdev)
...@@ -80,6 +80,11 @@ if(NOT WITHOUT_OOII) ...@@ -80,6 +80,11 @@ if(NOT WITHOUT_OOII)
list(APPEND SOURCE ooii.c ooii_bmenus.c ooii_cmenus.c ooii_logons.c ooii_sounds.c) list(APPEND SOURCE ooii.c ooii_bmenus.c ooii_cmenus.c ooii_logons.c ooii_sounds.c)
endif() endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
list(APPEND SOURCE DarwinWrappers.m)
find_library(FOUNDATION_LIBRARY Foundation)
endif()
if(NOT WITHOUT_CRYPTLIB) if(NOT WITHOUT_CRYPTLIB)
list(APPEND SOURCE ssh.c telnets.c) list(APPEND SOURCE ssh.c telnets.c)
if(WIN32) if(WIN32)
...@@ -87,7 +92,14 @@ if(NOT WITHOUT_CRYPTLIB) ...@@ -87,7 +92,14 @@ if(NOT WITHOUT_CRYPTLIB)
endif() endif()
endif() endif()
add_executable(syncterm ${SOURCE}) add_executable(syncterm MACOSX_BUNDLE ${SOURCE})
set_target_properties(syncterm PROPERTIES
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
)
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
target_sources(syncterm PRIVATE SyncTERM.icns)
set_source_files_properties(SyncTERM.icns PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
endif()
require_libs(syncterm ciolib comio encode hash sftp uifc xpdev) require_libs(syncterm ciolib comio encode hash sftp uifc xpdev)
if(WITHOUT_OOII) if(WITHOUT_OOII)
target_compile_definitions(syncterm PRIVATE WITHOUT_OOII=1) target_compile_definitions(syncterm PRIVATE WITHOUT_OOII=1)
...@@ -116,6 +128,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ...@@ -116,6 +128,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
target_link_libraries(syncterm util) target_link_libraries(syncterm util)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
target_link_libraries(syncterm util) target_link_libraries(syncterm util)
target_link_libraries(syncterm ${FOUNDATION_LIBRARY})
endif() endif()
install(TARGETS syncterm DESTINATION bin) install(TARGETS syncterm DESTINATION bin)
......
project (XPDev C) project (XPDev C)
cmake_minimum_required(VERSION 3.11) cmake_minimum_required(VERSION 3.11)
include(CheckSymbolExists)
set(WITHOUT_OSS OFF CACHE BOOL "Disable OSS Audio") set(WITHOUT_OSS OFF CACHE BOOL "Disable OSS Audio")
set(WITHOUT_SDL_AUDIO OFF CACHE BOOL "Disable SDL Audio") set(WITHOUT_SDL_AUDIO OFF CACHE BOOL "Disable SDL Audio")
...@@ -87,17 +88,24 @@ set(HEADER ...@@ -87,17 +88,24 @@ set(HEADER
xpsem.h xpsem.h
) )
check_symbol_exists(strlcpy string.h HAS_STRLCPY)
if(NOT WIN32) if(NOT WIN32)
list(APPEND SOURCE xpevent.c) list(APPEND SOURCE xpevent.c)
list(APPEND SOURCE xpsem.c) list(APPEND SOURCE xpsem.c)
endif() endif()
if(NOT WITHOUT_SDL_AUDIO) if(NOT WITHOUT_SDL_AUDIO)
if(SDL2_INCLUDE_DIRS)
list(APPEND SOURCE sdlfuncs.c)
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
list(APPEND SOURCE SDLMain.m) if(NOT SDL2_FOUND)
find_library(SDL2_LIBRARY SDL2)
if(SDL2_LIBRARY)
set(SDL2_FOUND ON)
endif()
endif()
endif() endif()
if(SDL2_FOUND)
list(APPEND SOURCE sdlfuncs.c)
if(WIN32) if(WIN32)
list(APPEND SOURCE SDL_win32_main.c) list(APPEND SOURCE SDL_win32_main.c)
endif() endif()
...@@ -105,9 +113,16 @@ if(NOT WITHOUT_SDL_AUDIO) ...@@ -105,9 +113,16 @@ if(NOT WITHOUT_SDL_AUDIO)
endif() endif()
add_library(xpdev OBJECT ${SOURCE}) add_library(xpdev OBJECT ${SOURCE})
target_compile_features(xpdev PUBLIC c_std_11)
target_include_directories(xpdev PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(xpdev PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(xpdev PUBLIC ${XPDevPlus_BINARY_DIR}) target_include_directories(xpdev PUBLIC ${XPDevPlus_BINARY_DIR})
target_link_libraries(xpdev ${CMAKE_DL_LIBS}) target_link_libraries(xpdev ${CMAKE_DL_LIBS})
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
target_compile_definitions(xpdev PUBLIC __unix__ __DARWIN__ USE_SNPRINTF)
endif()
if(NOT WIN32)
target_compile_definitions(xpdev PUBLIC USE_XP_SEMAPHORES)
endif()
CHECK_INCLUDE_FILES(inttypes.h HAS_INTTYPES_H) CHECK_INCLUDE_FILES(inttypes.h HAS_INTTYPES_H)
CHECK_INCLUDE_FILES(stdint.h HAS_STDINT_H) CHECK_INCLUDE_FILES(stdint.h HAS_STDINT_H)
...@@ -191,12 +206,22 @@ if(HAS_SRANDOMDEV_FUNC) ...@@ -191,12 +206,22 @@ if(HAS_SRANDOMDEV_FUNC)
endif() endif()
if(NOT WITHOUT_SDL_AUDIO) if(NOT WITHOUT_SDL_AUDIO)
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
if(SDL2_LIBRARY)
target_link_libraries(xpdev ${SDL2_LIBRARY})
target_include_directories(xpdev PUBLIC ${SDL2_LIBRARY}/Headers)
target_include_directories(xpdev PUBLIC ${SDL2_LIBRARY})
target_compile_definitions(xpdev PUBLIC STATIC_SDL)
target_compile_definitions(xpdev PUBLIC WITH_SDL_AUDIO)
endif()
else()
if(SDL2_FOUND) if(SDL2_FOUND)
target_include_directories(xpdev PUBLIC ${SDL2_INCLUDE_DIRS}) target_include_directories(xpdev PUBLIC ${SDL2_INCLUDE_DIRS})
set(WITH_SDL_AUDIO TRUE PARENT_SCOPE) set(WITH_SDL_AUDIO TRUE PARENT_SCOPE)
target_compile_definitions(xpdev PUBLIC WITH_SDL_AUDIO) target_compile_definitions(xpdev PUBLIC WITH_SDL_AUDIO)
endif() endif()
endif() endif()
endif()
if (PKG_CONFIG_FOUND) if (PKG_CONFIG_FOUND)
if(NOT WITHOUT_PORTAUDIO) if(NOT WITHOUT_PORTAUDIO)
...@@ -239,3 +264,7 @@ if(NOT WITHOUT_ALSA) ...@@ -239,3 +264,7 @@ if(NOT WITHOUT_ALSA)
endif() endif()
endif() endif()
endif() endif()
if(NOT HAS_STRLCPY)
target_compile_definitions(xpdev PUBLIC NEEDS_STRLCPY)
endif()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment