ci: Add iOS and tvOS CMake GitHub Actions checks (#9465)

- Also add watchos support to CMake (SDL does not support this platform yet)

Co-authored-by: Ravbug <ravbug@users.noreply.github.com>
Co-authored-by: Anonymous Maarten <anonymous.maarten@gmail.com>
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
This commit is contained in:
Ravbug
2024-04-08 13:18:28 -04:00
committed by GitHub
parent 224f2e921e
commit 2d640d0b59
4 changed files with 49 additions and 35 deletions

View File

@@ -133,7 +133,7 @@ endif()
# The hidraw support doesn't catch Xbox, PS4 and Nintendo controllers,
# so we'll just use libusb when it's available. libusb does not support iOS,
# so we default to yes on iOS.
if(IOS OR TVOS OR VISIONOS OR ANDROID)
if(IOS OR TVOS OR VISIONOS OR WATCHOS OR ANDROID)
set(SDL_HIDAPI_LIBUSB_AVAILABLE FALSE)
else()
set(SDL_HIDAPI_LIBUSB_AVAILABLE TRUE)
@@ -152,7 +152,7 @@ endif()
# Default option knobs
set(SDL_LIBC_DEFAULT ON)
set(SDL_SYSTEM_ICONV_DEFAULT ON)
if(WINDOWS OR IOS OR TVOS OR VISIONOS)
if(WINDOWS OR IOS OR TVOS OR VISIONOS OR WATCHOS)
set(SDL_SYSTEM_ICONV_DEFAULT OFF)
endif()
@@ -303,8 +303,8 @@ dep_option(SDL_DISKAUDIO "Support the disk writer audio driver" ON "SD
dep_option(SDL_DUMMYAUDIO "Support the dummy audio driver" ON "SDL_AUDIO" OFF)
dep_option(SDL_DUMMYVIDEO "Use dummy video driver" ON "SDL_VIDEO" OFF)
dep_option(SDL_IBUS "Enable IBus support" ON "${UNIX_SYS}" OFF)
dep_option(SDL_OPENGL "Include OpenGL support" ON "SDL_VIDEO;NOT VISIONOS" OFF)
dep_option(SDL_OPENGLES "Include OpenGL ES support" ON "SDL_VIDEO;NOT VISIONOS" OFF)
dep_option(SDL_OPENGL "Include OpenGL support" ON "SDL_VIDEO;NOT IOS;NOT VISIONOS;NOT TVOS;NOT WATCHOS" OFF)
dep_option(SDL_OPENGLES "Include OpenGL ES support" ON "SDL_VIDEO;NOT IOS;NOT VISIONOS;NOT TVOS;NOT WATCHOS" OFF)
set_option(SDL_PTHREADS "Use POSIX threads for multi-threading" ${SDL_PTHREADS_DEFAULT})
dep_option(SDL_PTHREADS_SEM "Use pthread semaphores" ON "SDL_PTHREADS" OFF)
dep_option(SDL_OSS "Support the OSS audio API" ${SDL_OSS_DEFAULT} "UNIX_SYS OR RISCOS;SDL_AUDIO" OFF)
@@ -2134,7 +2134,7 @@ elseif(APPLE)
# !!! FIXME: we need Carbon for some very old API calls in
# !!! FIXME: src/video/cocoa/SDL_cocoakeyboard.c, but we should figure out
# !!! FIXME: how to dump those.
if(DARWIN OR MACOSX)
if(MACOS)
set(SDL_FRAMEWORK_COCOA 1)
set(SDL_FRAMEWORK_CARBON 1)
set(SDL_FRAMEWORK_UTTYPES 1)
@@ -2143,7 +2143,7 @@ elseif(APPLE)
set(SDL_FRAMEWORK_COREVIDEO 1)
# iOS can use a CADisplayLink for main callbacks. macOS just uses the generic one atm.
if(IOS OR TVOS OR VISIONOS)
if(IOS OR TVOS OR VISIONOS OR WATCHOS)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/main/ios/*.m")
set(HAVE_SDL_MAIN_CALLBACKS TRUE)
endif()
@@ -2151,14 +2151,14 @@ elseif(APPLE)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/file/cocoa/*.m")
if(SDL_CAMERA)
if(IOS OR TVOS OR MACOSX OR DARWIN)
if(MACOS OR IOS)
set(SDL_CAMERA_DRIVER_COREMEDIA 1)
set(HAVE_CAMERA TRUE)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/camera/coremedia/*.m")
endif()
endif()
if(IOS OR TVOS OR VISIONOS)
if(IOS OR TVOS OR VISIONOS OR WATCHOS)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/ios/*.m")
else()
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/macos/*.m")
@@ -2180,10 +2180,10 @@ elseif(APPLE)
if(SDL_JOYSTICK)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/apple/*.m")
if(IOS OR TVOS OR VISIONOS)
if(IOS OR TVOS OR VISIONOS OR WATCHOS)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/steam/*.c")
set(SDL_JOYSTICK_MFI 1)
if(IOS OR VISIONOS)
if(IOS OR VISIONOS OR WATCHOS)
set(SDL_FRAMEWORK_COREMOTION 1)
endif()
set(SDL_FRAMEWORK_GAMECONTROLLER 1)
@@ -2225,7 +2225,7 @@ elseif(APPLE)
endif()
if(SDL_HAPTIC)
if (IOS OR TVOS OR VISIONOS)
if (IOS OR TVOS OR VISIONOS OR WATCHOS)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/haptic/dummy/*.c")
set(SDL_HAPTIC_DUMMY 1)
else()
@@ -2238,7 +2238,7 @@ elseif(APPLE)
endif()
if(SDL_POWER)
if (IOS OR TVOS OR VISIONOS)
if (IOS OR TVOS OR VISIONOS OR WATCHOS)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/power/uikit/*.m")
set(SDL_POWER_UIKIT 1)
else()
@@ -2267,7 +2267,7 @@ elseif(APPLE)
# TODO: SDL_STORAGE_ICLOUD
set(SDL_STORAGE_GENERIC 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/storage/generic/*.c")
if(DARWIN OR MACOSX)
if(MACOS)
set(SDL_STORAGE_STEAM 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/storage/steam/*.c")
endif()
@@ -2278,7 +2278,7 @@ elseif(APPLE)
set(HAVE_SDL_FSOPS TRUE)
if(SDL_SENSOR)
if(IOS OR VISIONOS)
if(IOS OR VISIONOS OR WATCHOS)
set(SDL_SENSOR_COREMOTION 1)
set(HAVE_SDL_SENSORS TRUE)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/sensor/coremotion/*.m")
@@ -2287,7 +2287,7 @@ elseif(APPLE)
# iOS hack needed - http://code.google.com/p/ios-cmake/ ?
if(SDL_VIDEO)
if (IOS OR TVOS OR VISIONOS)
if(IOS OR TVOS OR VISIONOS OR WATCHOS)
set(SDL_VIDEO_DRIVER_UIKIT 1)
set(SDL_FRAMEWORK_COREGRAPHICS 1)
set(SDL_FRAMEWORK_QUARTZCORE 1)
@@ -2307,7 +2307,7 @@ elseif(APPLE)
endif()
if(SDL_OPENGLES)
if(IOS OR TVOS OR VISIONOS)
if(IOS OR TVOS OR VISIONOS OR WATCHOS)
set(SDL_FRAMEWORK_OPENGLES 1)
set(SDL_VIDEO_OPENGL_ES 1)
else()
@@ -2400,7 +2400,7 @@ elseif(APPLE)
endif()
endif()
if(SDL_FRAMEWORK_METAL)
if(IOS OR TVOS OR VISIONOS)
if(IOS OR TVOS OR VISIONOS OR WATCHOS)
sdl_link_dependency(metal LINK_OPTIONS "-Wl,-framework,Metal")
else()
sdl_link_dependency(metal LINK_OPTIONS "-Wl,-weak_framework,Metal")
@@ -2410,7 +2410,7 @@ elseif(APPLE)
sdl_link_dependency(opengles LINK_OPTIONS "-Wl,-framework,OpenGLES")
endif()
if(SDL_FRAMEWORK_QUARTZCORE)
if(IOS OR TVOS OR VISIONOS)
if(IOS OR TVOS OR VISIONOS OR WATCHOS)
sdl_link_dependency(quartz_core LINK_OPTIONS "-Wl,-framework,QuartzCore")
else()
sdl_link_dependency(metal LINK_OPTIONS "-Wl,-weak_framework,QuartzCore")
@@ -2885,7 +2885,7 @@ if (SDL_DIALOG)
elseif(WINDOWS AND NOT WINDOWS_STORE)
sdl_sources(${SDL3_SOURCE_DIR}/src/dialog/windows/SDL_windowsdialog.c)
set(HAVE_SDL_DIALOG TRUE)
elseif(APPLE)
elseif(MACOS)
sdl_sources(${SDL3_SOURCE_DIR}/src/dialog/cocoa/SDL_cocoadialog.m)
sdl_link_dependency(uniformtypeidentifiers LINK_OPTIONS "-Wl,-weak_framework,UniformTypeIdentifiers")
set(HAVE_SDL_DIALOG TRUE)