Add Cocoa and macOS code to CMakeLists

This commit is contained in:
scawful
2023-11-24 13:35:34 -05:00
parent 1fb3d2058a
commit 004e5917ee
3 changed files with 26 additions and 8 deletions

View File

@@ -2,7 +2,6 @@ set(
YAZE_APP_CORE_SRC YAZE_APP_CORE_SRC
app/core/common.cc app/core/common.cc
app/core/controller.cc app/core/controller.cc
app/core/pipeline.cc app/core/pipeline.cc
) )
@@ -58,6 +57,20 @@ if(WIN32 OR MINGW)
add_definitions(-DSDL_MAIN_HANDLED) add_definitions(-DSDL_MAIN_HANDLED)
endif() endif()
if(APPLE)
list(APPEND YAZE_APP_CORE_SRC
app/core/platform/file_dialog.mm
app/core/platform/app_delegate.mm
app/core/platform/font_loader.mm
)
find_library(COCOA_LIBRARY Cocoa)
if(NOT COCOA_LIBRARY)
message(FATAL_ERROR "Cocoa not found")
endif()
set(CMAKE_EXE_LINKER_FLAGS "-framework ServiceManagement -framework Foundation -framework Cocoa")
endif()
include(app/CMakeLists.txt) include(app/CMakeLists.txt)
include(cli/CMakeLists.txt) include(cli/CMakeLists.txt)

View File

@@ -15,8 +15,6 @@ add_executable(
${YAZE_APP_GFX_SRC} ${YAZE_APP_GFX_SRC}
${YAZE_APP_ZELDA3_SRC} ${YAZE_APP_ZELDA3_SRC}
${YAZE_GUI_SRC} ${YAZE_GUI_SRC}
# ${ASAR_STATIC_SRC}
# ${SNES_SPC_SOURCES}
${IMGUI_SRC} ${IMGUI_SRC}
) )
@@ -28,8 +26,6 @@ target_include_directories(
${PNG_INCLUDE_DIRS} ${PNG_INCLUDE_DIRS}
${SDL2_INCLUDE_DIR} ${SDL2_INCLUDE_DIR}
lib/SDL_mixer/include/ lib/SDL_mixer/include/
# lib/asar/src/asar/
# lib/snes_spc/snes_spc/
) )
target_link_libraries( target_link_libraries(
@@ -40,6 +36,8 @@ target_link_libraries(
${CMAKE_DL_LIBS} ${CMAKE_DL_LIBS}
SDL2_mixer SDL2_mixer
ImGui ImGui
# asar-static )
# snes_spc
) if (APPLE)
target_link_libraries(yaze PUBLIC ${COCOA_LIBRARY})
endif()

View File

@@ -1,5 +1,7 @@
#if defined(_WIN32) #if defined(_WIN32)
#define main SDL_main #define main SDL_main
#elif __APPLE__
#include "app/core/platform/app_delegate.h"
#endif #endif
#include "absl/debugging/failure_signal_handler.h" #include "absl/debugging/failure_signal_handler.h"
@@ -17,6 +19,11 @@ int main(int argc, char** argv) {
yaze::app::core::Controller controller; yaze::app::core::Controller controller;
EXIT_IF_ERROR(controller.OnEntry()) EXIT_IF_ERROR(controller.OnEntry())
#ifdef __APPLE__
InitializeCocoa();
#endif
while (controller.IsActive()) { while (controller.IsActive()) {
controller.OnInput(); controller.OnInput();
controller.OnLoad(); controller.OnLoad();