include(CheckIncludeFile) CHECK_INCLUDE_FILE(Navigation.h HAVE_NAVIGATION_H) CHECK_INCLUDE_FILE(OpenTransport.h HAVE_OPENTRANSPORT_H) CHECK_INCLUDE_FILE(MacTCP.h HAVE_MACTCP_H) set(HAVE_OPENTRANSPORT NO) if(HAVE_OPENTRANSPORT_H) if(CMAKE_SYSTEM_NAME MATCHES RetroPPC) find_library(OPENTRANSPORT_LIBRARY NAMES libOpenTransportLib.a) if(OPENTRANSPORT_LIBRARY) set(HAVE_OPENTRANSPORT YES) endif() elseif(CMAKE_SYSTEM_NAME MATCHES Retro68) find_library(OPENTRANSPORT_LIBRARY NAMES libOpenTransport.a) if(OPENTRANSPORT_LIBRARY) set(HAVE_OPENTRANSPORT YES) endif() elseif(CMAKE_SYSTEM_NAME MATCHES RetroCarbon) set(HAVE_OPENTRANSPORT YES) endif() endif() set(HAVE_NAVIGATION NO) if(HAVE_NAVIGATION_H) if(CMAKE_SYSTEM_NAME MATCHES RetroPPC) find_library(NAVIGATION_LIBRARY NAMES libNavigation.a) elseif(CMAKE_SYSTEM_NAME MATCHES Retro68) find_library(NAVIGATION_LIBRARY NAMES Navigation.far) else() set(HAVE_NAVIGATION YES) set(NAVIGATION_LIBRARY) endif() if(NAVIGATION_LIBRARY) set(HAVE_NAVIGATION YES) endif() endif() if(HAVE_MACTCP_H AND NOT CMAKE_SYSTEM_NAME MATCHES RetroCarbon) set(HAVE_MACTCP YES) else() set(HAVE_MACTCP NO) endif() set(CONNECTION_SOURCES SharedFileStream.h SharedFileStream.cc SharedFileProvider.h SharedFileProvider.cc ) if(CMAKE_SYSTEM_NAME MATCHES RetroCarbon) else() list(APPEND CONNECTION_SOURCES SerialConnectionProvider.h SerialConnectionProvider.cc MacSerialStream.h MacSerialStream.cc ) endif() if(HAVE_MACTCP) list(APPEND CONNECTION_SOURCES MacTCPStream.h MacTCPStream.cc TCPConnectionProvider.h TCPConnectionProvider.cc ) endif() if(HAVE_OPENTRANSPORT) list(APPEND CONNECTION_SOURCES OpenTptStream.h OpenTptStream.cc OpenTptConnectionProvider.h OpenTptConnectionProvider.cc ) endif() option(LAUNCHAPPLSERVER_DEBUG_CONSOLE "Add a debug console to LaunchAPPLServer" FALSE) set(MAYBE_CONSOLE) if(LAUNCHAPPLSERVER_DEBUG_CONSOLE) set(MAYBE_CONSOLE "CONSOLE") endif() add_application(LaunchAPPLServer TYPE "APPL" CREATOR "R68L" ${MAYBE_CONSOLE} LaunchAPPLServer.r LauncherIcon.r LaunchAPPLServer.cc AppLauncher.h AppLauncher.cc ToolLauncher.cc Window.h StatusDisplay.h StatusDisplay.cc AboutBox.h AboutBox.cc ConnectionProvider.h CarbonFileCompat.h Preferences.h Preferences.cc ${CONNECTION_SOURCES} ) if(LAUNCHAPPLSERVER_DEBUG_CONSOLE) target_compile_definitions(LaunchAPPLServer PRIVATE DEBUG_CONSOLE) endif() if(HAVE_OPENTRANSPORT) target_compile_definitions(LaunchAPPLServer PRIVATE HAVE_OPENTRANSPORT) endif() if(HAVE_NAVIGATION) target_compile_definitions(LaunchAPPLServer PRIVATE HAVE_NAVIGATION) endif() if(HAVE_MACTCP) target_compile_definitions(LaunchAPPLServer PRIVATE HAVE_MACTCP) endif() target_link_libraries(LaunchAPPLServer LaunchAPPLCommon) set_target_properties(LaunchAPPLServer PROPERTIES CXX_STANDARD 17 ) target_compile_options(LaunchAPPLServer PRIVATE -ffunction-sections -Os) if(CMAKE_SYSTEM_NAME MATCHES Retro68) set_target_properties(LaunchAPPLServer PROPERTIES LINK_FLAGS "-Wl,-gc-sections -Wl,--mac-segments -Wl,${CMAKE_CURRENT_SOURCE_DIR}/LaunchAPPLServer.segmap" ) else() set_target_properties(LaunchAPPLServer PROPERTIES LINK_FLAGS "-Wl,-gc-sections" ) endif() if(HAVE_OPENTRANSPORT) if(CMAKE_SYSTEM_NAME MATCHES RetroPPC) target_link_libraries(LaunchAPPLServer -lOpenTransportAppPPC -lOpenTransportLib -lOpenTptInternetLib) endif() if(CMAKE_SYSTEM_NAME MATCHES Retro68) target_link_libraries(LaunchAPPLServer -lOpenTransport -lOpenTransportApp -lOpenTptInet) endif() endif() if(NAVIGATION_LIBRARY) target_link_libraries(LaunchAPPLServer ${NAVIGATION_LIBRARY}) endif()