Skip to content

Commit

Permalink
tvos support
Browse files Browse the repository at this point in the history
  • Loading branch information
XITRIX committed Aug 10, 2024
1 parent c30eece commit 6db3301
Show file tree
Hide file tree
Showing 22 changed files with 266 additions and 32 deletions.
19 changes: 14 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ if (APPLE AND PLATFORM_DESKTOP)
message(STATUS "CMAKE_OSX_ARCHITECTURES: ${CMAKE_OSX_ARCHITECTURES}")
endif ()

if (PLATFORM_IOS)
if (PLATFORM_IOS OR PLATFORM_TVOS)
set(ENABLE_ARC OFF)
endif ()

Expand Down Expand Up @@ -56,7 +56,7 @@ else ()
set(USE_MBEDTLS_CRYPTO ON)
endif ()

if (PLATFORM_IOS OR PLATFORM_ANDROID)
if (PLATFORM_IOS OR PLATFORM_TVOS OR PLATFORM_ANDROID)
set(MULTICAST_DISABLED ON)
endif ()

Expand Down Expand Up @@ -166,13 +166,22 @@ elseif (PLATFORM_ANDROID)
list(APPEND APP_PLATFORM_LIB android)
elseif (PLATFORM_IOS)
ios_bundle(
"${CMAKE_CURRENT_SOURCE_DIR}/app/platforms/ios/tvos/Splash.storyboard"
"${CMAKE_CURRENT_SOURCE_DIR}/app/platforms/ios/iphoneos/Splash.storyboard"
"${CMAKE_CURRENT_SOURCE_DIR}/app/platforms/ios/Images.xcassets"
"${CMAKE_CURRENT_SOURCE_DIR}/app/platforms/ios/iOSBundleInfo.plist.in"
${PROJECT_NAME}
"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_ALTER}")
list(APPEND IOS_FRAMEWORKS ${CMAKE_CURRENT_SOURCE_DIR}/extern/borealis/library/lib/extern/angle/MetalANGLE.framework)
list(APPEND IOS_FRAMEWORKS ${CMAKE_CURRENT_SOURCE_DIR}/extern/borealis/library/lib/extern/angle/ios/MetalANGLE.framework)
set_target_properties(${PROJECT_NAME} PROPERTIES
XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY ON)
elseif (PLATFORM_TVOS)
ios_bundle(
"${CMAKE_CURRENT_SOURCE_DIR}/app/platforms/ios/tvos/Splash.storyboard"
"${CMAKE_CURRENT_SOURCE_DIR}/app/platforms/ios/Images.xcassets"
"${CMAKE_CURRENT_SOURCE_DIR}/app/platforms/ios/iOSBundleInfo.plist.in"
${PROJECT_NAME}
"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_ALTER}")
list(APPEND IOS_FRAMEWORKS ${CMAKE_CURRENT_SOURCE_DIR}/extern/borealis/library/lib/extern/angle/tvos/MetalANGLE.framework)
set_target_properties(${PROJECT_NAME} PROPERTIES
XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY ON)
endif ()
Expand Down Expand Up @@ -259,7 +268,7 @@ else ()
OpenSSL::Crypto)
endif ()

if (PLATFORM_IOS)
if (PLATFORM_IOS OR PLATFORM_TVOS)
set_target_properties(${PROJECT_NAME} PROPERTIES
XCODE_EMBED_FRAMEWORKS "${IOS_FRAMEWORKS}")
endif()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"images" : [
{
"idiom" : "tv"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"info" : {
"author" : "xcode",
"version" : 1
},
"layers" : [
{
"filename" : "Front.imagestacklayer"
},
{
"filename" : "Middle.imagestacklayer"
},
{
"filename" : "Back.imagestacklayer"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"images" : [
{
"idiom" : "tv"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"images" : [
{
"idiom" : "tv"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"info" : {
"author" : "xcode",
"version" : 1
},
"layers" : [
{
"filename" : "Front.imagestacklayer"
},
{
"filename" : "Middle.imagestacklayer"
},
{
"filename" : "Back.imagestacklayer"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
32 changes: 32 additions & 0 deletions app/platforms/ios/Images.xcassets/tvOS.brandassets/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"assets" : [
{
"filename" : "App Icon - App Store.imagestack",
"idiom" : "tv",
"role" : "primary-app-icon",
"size" : "1280x768"
},
{
"filename" : "App Icon.imagestack",
"idiom" : "tv",
"role" : "primary-app-icon",
"size" : "400x240"
},
{
"filename" : "Top Shelf Image Wide.imageset",
"idiom" : "tv",
"role" : "top-shelf-image-wide",
"size" : "2320x720"
},
{
"filename" : "Top Shelf Image.imageset",
"idiom" : "tv",
"role" : "top-shelf-image",
"size" : "1920x720"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
2 changes: 1 addition & 1 deletion extern/borealis
Submodule borealis updated 82 files
+9 −3 library/CMakeLists.txt
+2 −2 library/include/borealis/platforms/desktop/desktop_platform.hpp
+10 −2 library/lib/core/touch/pan_gesture.cpp
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/EGL/.clang-format
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/EGL/egl.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/EGL/eglext.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/EGL/eglext_angle.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/EGL/eglplatform.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES/.clang-format
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES/README.md
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES/egl.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES/gl.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES/glext.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES/glext_angle.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES/glext_explicit_context_autogen.inc
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES/glplatform.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES2/.clang-format
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES2/gl2.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES2/gl2ext.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES2/gl2ext_angle.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES2/gl2ext_explicit_context_autogen.inc
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES2/gl2platform.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES3/.clang-format
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES3/gl3.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES3/gl31.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES3/gl31ext_explicit_context_autogen.inc
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES3/gl32.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES3/gl3ext_explicit_context_autogen.inc
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/GLES3/gl3platform.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/KHR/.clang-format
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/KHR/khrplatform.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/MGLContext.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/MGLKView.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/MGLKViewController.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/MGLKit.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/MGLKitPlatform.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/MGLLayer.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/angle_gl.h
+0 −0 library/lib/extern/angle/ios/MetalANGLE.framework/Headers/export.h
+ library/lib/extern/angle/ios/MetalANGLE.framework/Info.plist
+ library/lib/extern/angle/ios/MetalANGLE.framework/MetalANGLE
+3 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/EGL/.clang-format
+361 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/EGL/egl.h
+1,372 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/EGL/eglext.h
+282 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/EGL/eglext_angle.h
+176 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/EGL/eglplatform.h
+3 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES/.clang-format
+20 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES/README.md
+29 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES/egl.h
+743 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES/gl.h
+965 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES/glext.h
+23 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES/glext_angle.h
+260 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES/glext_explicit_context_autogen.inc
+38 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES/glplatform.h
+3 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES2/.clang-format
+675 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES2/gl2.h
+3,627 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES2/gl2ext.h
+699 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES2/gl2ext_angle.h
+740 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES2/gl2ext_explicit_context_autogen.inc
+30 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES2/gl2platform.h
+3 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES3/.clang-format
+1,211 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES3/gl3.h
+1,528 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES3/gl31.h
+148 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES3/gl31ext_explicit_context_autogen.inc
+1,829 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES3/gl32.h
+220 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES3/gl3ext_explicit_context_autogen.inc
+30 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/GLES3/gl3platform.h
+3 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/KHR/.clang-format
+284 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/KHR/khrplatform.h
+54 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/MGLContext.h
+66 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/MGLKView.h
+42 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/MGLKViewController.h
+14 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/MGLKit.h
+33 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/MGLKitPlatform.h
+73 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/MGLLayer.h
+21 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/angle_gl.h
+40 −0 library/lib/extern/angle/tvos/MetalANGLE.framework/Headers/export.h
+ library/lib/extern/angle/tvos/MetalANGLE.framework/Info.plist
+ library/lib/extern/angle/tvos/MetalANGLE.framework/MetalANGLE
+18 −15 library/lib/platforms/desktop/desktop_platform.cpp
+8 −0 library/lib/platforms/desktop/ios_darwin.mm
+2 −2 library/lib/platforms/sdl/sdl_platform.cpp
40 changes: 27 additions & 13 deletions extern/cmake/toolchain.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,24 @@ elseif (PLATFORM_IOS)
set(USE_LIBROMFS ON)
set(CMAKE_XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2") # iphone, ipad
check_libromfs_generator()
elseif (PLATFORM_TVOS)
add_definitions(-DPLATFORM_TVOS)
message(STATUS "building for tvOS")
set(ENABLE_STRICT_TRY_COMPILE ON)
if (NOT DEFINED BOREALIS_LIBRARY)
message(FATAL_ERROR BOREALIS_LIBRARY is not defined)
endif ()
set(PLATFORM TVOS)
set(DEPLOYMENT_TARGET 13.0)
set(VCPKG_INSTALL_OPTIONS "--allow-unsupported")
set(CMAKE_TOOLCHAIN_FILE ${EXTERN_PATH}/vcpkg/scripts/buildsystems/vcpkg.cmake CACHE PATH "vcpkg toolchain file")
set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE ${BOREALIS_LIBRARY}/cmake/ios.toolchain.cmake CACHE PATH "ios toolchain file")
set(USE_SDL2 ON)
set(USE_GLFW OFF)
set(USE_GLES3 ON)
set(USE_LIBROMFS ON)
set(CMAKE_XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "3") # tvos
check_libromfs_generator()
elseif(PLATFORM_ANDROID)
add_definitions(-DPLATFORM_ANDROID)
message(STATUS "building for Android")
Expand Down Expand Up @@ -136,27 +154,25 @@ function(program_target target source)
endif ()
endfunction()

function(ios_bundle tvosStoryBoard iosStoryBoard assets plist name version)
function(ios_bundle iosStoryBoard assets plist name version)
set(IOS_CODE_SIGN_IDENTITY "" CACHE STRING "The code sign identity to use when building the IPA.")
set(IOS_GUI_IDENTIFIER "" CACHE STRING "The package name")
# if(IOS_CODE_SIGN_IDENTITY STREQUAL "")
# set(IOS_CODE_SIGNING_ENABLED NO)
# else()
if(IOS_CODE_SIGN_IDENTITY STREQUAL "")
set(IOS_CODE_SIGNING_ENABLED NO)
else()
set(IOS_CODE_SIGNING_ENABLED YES)
# endif()
endif()
if (IOS_GUI_IDENTIFIER STREQUAL "")
set(IOS_GUI_IDENTIFIER "${PACKAGE_NAME}")
message(WARNING "Using default package name: ${PACKAGE_NAME}")
endif ()
if (TVOS)
set(IOS_SPLASH_STORYBOARD "${tvosStoryBoard}")
else ()
set(IOS_SPLASH_STORYBOARD "${iosStoryBoard}")
endif ()

set(IOS_SPLASH_STORYBOARD "${iosStoryBoard}")

set(IOS_ASSETS ${assets})
set_target_properties(${PROJECT_NAME} PROPERTIES
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${IOS_CODE_SIGN_IDENTITY}"
XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "${IOS_CODE_SIGNING_ENABLED}"
XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED YES
XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "${IOS_CODE_SIGNING_ENABLED}"
BUNDLE TRUE
MACOSX_BUNDLE_INFO_PLIST ${plist}
Expand All @@ -168,8 +184,6 @@ function(ios_bundle tvosStoryBoard iosStoryBoard assets plist name version)
XCODE_ATTRIBUTE_ENABLE_BITCODE NO
XCODE_ATTRIBUTE_SKIP_INSTALL NO
XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME "AppIcon"
XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "@executable_path/Frameworks"
XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS "$(SRCROOT)/extern/borealis/library/lib/extern/angle"
)
set_property(
SOURCE ${IOS_ASSETS}
Expand Down
20 changes: 8 additions & 12 deletions vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,26 +1,22 @@
{
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
"name": "moonlight",
"builtin-baseline": "62f4702dfeb7c01a57482ba894a8a9e1497bb7d4",
"builtin-baseline": "d89b9ba126a575ec4f8387188878fdd1b696288d",
"version": "1.0",
"dependencies": [
"curl",
{
"name": "curl",
"default-features": false,
"features": ["mbedtls", "sectransp", "non-http"]
},
"ffmpeg",
"jansson",
"libpng",
"opus",
"expat",
{
"name": "mbedtls",
"platform": "!android"
},
{
"name": "openssl",
"platform": "android"
}
"mbedtls"
],
"overrides": [
{ "name": "curl", "version": "8.2.1" },
{ "name": "openssl", "version": "3.1.2" }
{ "name": "curl", "version": "8.7.1" }
]
}

0 comments on commit 6db3301

Please sign in to comment.