diff --git a/CMakeLists.txt b/CMakeLists.txt index 205b40ba1..355228ff8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,6 +52,7 @@ endfunction (check_large_file) # Conditional build features # ########################## +option(ENABLE_HATARI "Build the main Hatari executable" ON) option(ENABLE_DSP_EMU "Enable DSP 56k emulator for Falcon mode" ON) option(ENABLE_TRACING "Enable tracing messages for debugging" ON) option(ENABLE_TOOLS "Build the Hatari tools" ON) @@ -110,7 +111,7 @@ endif(ENABLE_OSX_BUNDLE) # Check for libraries: # #################### -if(NOT DEFINED ENABLE_SDL3 OR ENABLE_SDL3) +if(ENABLE_HATARI AND NOT DEFINED ENABLE_SDL3 OR ENABLE_SDL3) find_package(SDL3 QUIET) endif() if(SDL3_FOUND) @@ -119,7 +120,7 @@ if(SDL3_FOUND) set(SDL2_LIBRARIES ${SDL3_LIBRARIES}) set(SDL2_LIBDIR $) set(ENABLE_SDL3 1 CACHE BOOL "Use SDL3 instead of SDL2") -else() +elseif(ENABLE_HATARI) find_package(SDL2) if(NOT SDL2_FOUND) message(FATAL_ERROR "SDL library not found!") @@ -457,7 +458,9 @@ Libraries summary : ------------------- ") -if(SDL3_FOUND) +if(NOT ENABLE_HATARI) + message(" - sdl :\tnot building the main Hatari executable") +elseif(SDL3_FOUND) message(" - sdl :\tusing SDL3 ${SDL3_VERSION}") else() message(" - sdl :\tusing SDL2 ${SDL2_VERSION}") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4764e2172..111c72840 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -152,10 +152,12 @@ endif(ENABLE_LIBRETRO) add_subdirectory(cpu) add_subdirectory(debug) add_subdirectory(falcon) -add_subdirectory(gui-sdl) -add_subdirectory(sdl) -set(APP_TARGET_OBJECTS +if(ENABLE_HATARI) + add_subdirectory(gui-sdl) + add_subdirectory(sdl) + + set(APP_TARGET_OBJECTS $ $ $ @@ -163,9 +165,12 @@ set(APP_TARGET_OBJECTS $ $ $) +endif(ENABLE_HATARI) -# When building for macOS, add specific sources -if(ENABLE_OSX_BUNDLE) +if(NOT ENABLE_HATARI) + # When not building the main executable, then skip the following steps +elseif(ENABLE_OSX_BUNDLE) + # When building for macOS, add specific sources add_executable(${APP_NAME} MACOSX_BUNDLE ${GUIOSX_RSRCS} ${GUIOSX_DOCS} ${APP_TARGET_OBJECTS} ${GUIOSX_SOURCES}) target_compile_definitions(${APP_NAME} PRIVATE SDL_ENABLE_OLD_NAMES) @@ -291,12 +296,7 @@ elseif(EMSCRIPTEN) # Other targets, use default sources else() add_executable(${APP_NAME} ${APP_TARGET_OBJECTS}) -endif(ENABLE_OSX_BUNDLE) - -if(SDL2_OTHER_CFLAGS) - target_compile_definitions(${APP_NAME} PRIVATE ${SDL2_OTHER_CFLAGS}) - # message(STATUS "Additional CFLAGS of SDL: ${SDL2_OTHER_CFLAGS}") -endif(SDL2_OTHER_CFLAGS) +endif() if(ENABLE_LIBRETRO) add_library(retro-hatari MODULE @@ -308,91 +308,117 @@ if(ENABLE_LIBRETRO) $) endif(ENABLE_LIBRETRO) -target_link_libraries(${APP_NAME} ${SDL2_LIBRARIES}) +if(ENABLE_HATARI) + if(SDL2_OTHER_CFLAGS) + target_compile_definitions(${APP_NAME} PRIVATE ${SDL2_OTHER_CFLAGS}) + # message(STATUS "Additional CFLAGS of SDL: ${SDL2_OTHER_CFLAGS}") + endif(SDL2_OTHER_CFLAGS) -if(Math_FOUND AND NOT APPLE) - target_link_libraries(${APP_NAME} ${MATH_LIBRARY}) -endif() + target_link_libraries(${APP_NAME} ${SDL2_LIBRARIES}) + + if(Math_FOUND AND NOT APPLE) + target_link_libraries(${APP_NAME} ${MATH_LIBRARY}) + endif() + + if(X11_FOUND) + target_link_libraries(${APP_NAME} ${X11_LIBRARIES}) + endif(X11_FOUND) + + if(WIN32) + # Needed for socket() on Windows + target_link_libraries(${APP_NAME} ws2_32) + endif(WIN32) +endif(ENABLE_HATARI) if(Readline_FOUND) - target_link_libraries(${APP_NAME} ${READLINE_LIBRARY}) + if(ENABLE_HATARI) + target_link_libraries(${APP_NAME} ${READLINE_LIBRARY}) + endif(ENABLE_HATARI) if(ENABLE_LIBRETRO) target_link_libraries(retro-hatari ${READLINE_LIBRARY}) endif(ENABLE_LIBRETRO) endif(Readline_FOUND) if(ZLIB_FOUND) - target_link_libraries(${APP_NAME} ${ZLIB_LIBRARY}) + if(ENABLE_HATARI) + target_link_libraries(${APP_NAME} ${ZLIB_LIBRARY}) + endif(ENABLE_HATARI) if(ENABLE_LIBRETRO) target_link_libraries(retro-hatari ${ZLIB_LIBRARY}) endif(ENABLE_LIBRETRO) endif(ZLIB_FOUND) if(LibArchive_FOUND) - target_link_libraries(${APP_NAME} ${LibArchive_LIBRARIES}) + if(ENABLE_HATARI) + target_link_libraries(${APP_NAME} ${LibArchive_LIBRARIES}) + endif(ENABLE_HATARI) if(ENABLE_LIBRETRO) target_link_libraries(retro-hatari ${LibArchive_LIBRARIES}) endif(ENABLE_LIBRETRO) endif(LibArchive_FOUND) if(PNG_FOUND) - target_link_libraries(${APP_NAME} ${PNG_LIBRARY}) + if(ENABLE_HATARI) + target_link_libraries(${APP_NAME} ${PNG_LIBRARY}) + endif(ENABLE_HATARI) if(ENABLE_LIBRETRO) target_link_libraries(retro-hatari ${PNG_LIBRARY}) endif(ENABLE_LIBRETRO) endif(PNG_FOUND) -if(X11_FOUND) - target_link_libraries(${APP_NAME} ${X11_LIBRARIES}) -endif(X11_FOUND) - if(PortMidi_FOUND) - target_link_libraries(${APP_NAME} ${PORTMIDI_LIBRARY}) + if(ENABLE_HATARI) + target_link_libraries(${APP_NAME} ${PORTMIDI_LIBRARY}) + endif(ENABLE_HATARI) if(ENABLE_LIBRETRO) target_link_libraries(retro-hatari ${PORTMIDI_LIBRARY}) endif(ENABLE_LIBRETRO) endif(PortMidi_FOUND) if(CapsImage_FOUND) - target_link_libraries(${APP_NAME} ${CAPSIMAGE_LIBRARY}) + if(ENABLE_HATARI) + target_link_libraries(${APP_NAME} ${CAPSIMAGE_LIBRARY}) + endif(ENABLE_HATARI) if(ENABLE_LIBRETRO) target_link_libraries(retro-hatari ${CAPSIMAGE_LIBRARY}) endif(ENABLE_LIBRETRO) endif(CapsImage_FOUND) if(Udev_FOUND) - target_link_libraries(${APP_NAME} ${UDEV_LIBRARY}) + if(ENABLE_HATARI) + target_link_libraries(${APP_NAME} ${UDEV_LIBRARY}) + endif(ENABLE_HATARI) if(ENABLE_LIBRETRO) target_link_libraries(retro-hatari ${UDEV_LIBRARY}) endif(ENABLE_LIBRETRO) endif(Udev_FOUND) if(Capstone_FOUND) - target_link_libraries(${APP_NAME} ${CAPSTONE_LIBRARY}) + if(ENABLE_HATARI) + target_link_libraries(${APP_NAME} ${CAPSTONE_LIBRARY}) + endif(ENABLE_HATARI) if(ENABLE_LIBRETRO) target_link_libraries(retro-hatari ${CAPSTONE_LIBRARY}) endif(ENABLE_LIBRETRO) endif(Capstone_FOUND) if(APPLE) - target_link_libraries(${APP_NAME} "-framework Cocoa") + if(ENABLE_HATARI) + target_link_libraries(${APP_NAME} "-framework Cocoa") + endif(ENABLE_HATARI) if(ENABLE_LIBRETRO) target_link_libraries(retro-hatari "-framework Cocoa") endif(ENABLE_LIBRETRO) endif() -if(WIN32) - # Needed for socket() on Windows - target_link_libraries(${APP_NAME} ws2_32) -endif(WIN32) - - -if(ENABLE_OSX_BUNDLE) - install(TARGETS ${APP_NAME} BUNDLE DESTINATION /Applications) -else() - install(TARGETS ${APP_NAME} RUNTIME DESTINATION ${BINDIR}) - install(FILES hatari-icon.bmp DESTINATION ${DATADIR}) - if(TOS_IMG_FILE) - install(FILES ${TOS_IMG_FILE} DESTINATION ${DATADIR}) - endif(TOS_IMG_FILE) -endif(ENABLE_OSX_BUNDLE) +if(ENABLE_HATARI) + if(ENABLE_OSX_BUNDLE) + install(TARGETS ${APP_NAME} BUNDLE DESTINATION /Applications) + else() + install(TARGETS ${APP_NAME} RUNTIME DESTINATION ${BINDIR}) + install(FILES hatari-icon.bmp DESTINATION ${DATADIR}) + if(TOS_IMG_FILE) + install(FILES ${TOS_IMG_FILE} DESTINATION ${DATADIR}) + endif(TOS_IMG_FILE) + endif(ENABLE_OSX_BUNDLE) +endif(ENABLE_HATARI) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c496c1d94..7a28f2c75 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -6,7 +6,7 @@ if(ENABLE_LIBRETRO AND HAVE_DLFCN_H) add_subdirectory(retro) endif() -if(UNIX) +if(UNIX AND ENABLE_HATARI) add_test(NAME command-fifo COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/cmdfifo.sh $) add_test(NAME config-file COMMAND @@ -23,4 +23,4 @@ if(UNIX) add_subdirectory(screen) add_subdirectory(serial) add_subdirectory(xbios) -endif(UNIX) +endif(UNIX AND ENABLE_HATARI)