aboutsummaryrefslogtreecommitdiff
path: root/cmake/scripts/ios
diff options
context:
space:
mode:
authorh.udo <hudokkow@gmail.com>2016-09-08 18:15:54 +0100
committerh.udo <hudokkow@gmail.com>2016-12-21 10:04:18 +0000
commita18701e7b2fe03780f90502d5d51e09cdc3ad718 (patch)
treea9d2c2cca8599a18a78c6b1345f42e48e76ddb27 /cmake/scripts/ios
parentf2b31fda391d3364b7307ab9f9216fa0ee7164c7 (diff)
[cmake] Move to root folder: Move files
Diffstat (limited to 'cmake/scripts/ios')
-rw-r--r--cmake/scripts/ios/ArchSetup.cmake57
-rw-r--r--cmake/scripts/ios/Install.cmake85
l---------cmake/scripts/ios/Macros.cmake1
l---------cmake/scripts/ios/PathSetup.cmake1
4 files changed, 144 insertions, 0 deletions
diff --git a/cmake/scripts/ios/ArchSetup.cmake b/cmake/scripts/ios/ArchSetup.cmake
new file mode 100644
index 0000000000..f3e8590d4f
--- /dev/null
+++ b/cmake/scripts/ios/ArchSetup.cmake
@@ -0,0 +1,57 @@
+if(NOT CMAKE_TOOLCHAIN_FILE)
+ message(FATAL_ERROR "CMAKE_TOOLCHAIN_FILE required for ios. See ${PROJECT_SOURCE_DIR}/README.md")
+endif()
+
+set(CORE_MAIN_SOURCE ${CORE_SOURCE_DIR}/xbmc/platform/darwin/ios/XBMCApplication.m)
+
+set(ARCH_DEFINES -D_LINUX -DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_IOS)
+set(SYSTEM_DEFINES -D_REENTRANT -D_FILE_DEFINED -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
+ -D__STDC_CONSTANT_MACROS)
+set(PLATFORM_DIR linux)
+set(CMAKE_SYSTEM_NAME Darwin)
+if(WITH_ARCH)
+ set(ARCH ${WITH_ARCH})
+else()
+ if(CPU STREQUAL armv7 OR CPU STREQUAL arm64)
+ set(CMAKE_OSX_ARCHITECTURES ${CPU})
+ set(ARCH arm-osx)
+ set(NEON False)
+ else()
+ message(SEND_ERROR "Unknown CPU: ${CPU}")
+ endif()
+endif()
+
+find_package(CXX11 REQUIRED)
+
+list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${NATIVEPREFIX})
+
+list(APPEND DEPLIBS "-framework CoreFoundation" "-framework CoreVideo"
+ "-framework CoreAudio" "-framework AudioToolbox"
+ "-framework QuartzCore" "-framework MediaPlayer"
+ "-framework CFNetwork" "-framework CoreGraphics"
+ "-framework Foundation" "-framework UIKit"
+ "-framework CoreMedia" "-framework AVFoundation"
+ "-framework VideoToolbox")
+
+set(ENABLE_DVDCSS OFF CACHE BOOL "" FORCE)
+set(ENABLE_OPTICAL OFF CACHE BOOL "" FORCE)
+
+set(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "5.1")
+set(CMAKE_XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2")
+
+set(CMAKE_XCODE_ATTRIBUTE_INLINES_ARE_PRIVATE_EXTERN OFF)
+set(CMAKE_XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN OFF)
+set(CMAKE_XCODE_ATTRIBUTE_COPY_PHASE_STRIP OFF)
+
+# Xcode strips dead code by default which breaks wrapping
+set(CMAKE_XCODE_ATTRIBUTE_DEAD_CODE_STRIPPING OFF)
+
+# Unify output directories for iOS packaging scripts
+if(NOT CMAKE_GENERATOR MATCHES Xcode)
+ set(CORE_BUILD_CONFIG "${CORE_BUILD_CONFIG}-iphoneos")
+endif()
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CORE_BUILD_DIR}/${CORE_BUILD_CONFIG})
+foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
+ string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG)
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CORE_BUILD_DIR}/${CORE_BUILD_CONFIG})
+endforeach()
diff --git a/cmake/scripts/ios/Install.cmake b/cmake/scripts/ios/Install.cmake
new file mode 100644
index 0000000000..c49fcd581b
--- /dev/null
+++ b/cmake/scripts/ios/Install.cmake
@@ -0,0 +1,85 @@
+# IOS packaging
+
+set(BUNDLE_RESOURCES ${CORE_SOURCE_DIR}/xbmc/platform/darwin/ios/Default-568h@2x.png
+ ${CORE_SOURCE_DIR}/xbmc/platform/darwin/ios/Default-667h@2x.png
+ ${CORE_SOURCE_DIR}/xbmc/platform/darwin/ios/Default-736h@3x.png
+ ${CORE_SOURCE_DIR}/xbmc/platform/darwin/ios/Default-Landscape-736h@3x.png
+ ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon29x29.png
+ ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon29x29@2x.png
+ ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon40x40.png
+ ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon40x40@2x.png
+ ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon50x50.png
+ ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon50x50@2x.png
+ ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon57x57.png
+ ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon57x57@2x.png
+ ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon60x60.png
+ ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon60x60@2x.png
+ ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon72x72.png
+ ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon72x72@2x.png
+ ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon76x76.png
+ ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon76x76@2x.png)
+
+if(CMAKE_GENERATOR STREQUAL Xcode)
+ set(RESOURCE_LOCATION ${APP_NAME}.app)
+else()
+ set(RESOURCE_LOCATION ".")
+endif()
+
+target_sources(${APP_NAME_LC} PRIVATE ${BUNDLE_RESOURCES})
+foreach(file IN LISTS BUNDLE_RESOURCES)
+ set_source_files_properties(${file} PROPERTIES MACOSX_PACKAGE_LOCATION ${RESOURCE_LOCATION})
+endforeach()
+
+target_sources(${APP_NAME_LC} PRIVATE ${CORE_SOURCE_DIR}/xbmc/platform/darwin/ios/English.lproj/InfoPlist.strings)
+set_source_files_properties(${CORE_SOURCE_DIR}/xbmc/platform/darwin/ios/English.lproj/InfoPlist.strings PROPERTIES MACOSX_PACKAGE_LOCATION "${RESOURCE_LOCATION}/English.lproj")
+
+# Options for code signing propagated as env vars to Codesign.command via Xcode
+set(IOS_CODE_SIGN_IDENTITY "" CACHE STRING "Code Sign Identity")
+if(IOS_CODE_SIGN_IDENTITY)
+ set_target_properties(${APP_NAME_LC} PROPERTIES XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED TRUE
+ XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${IOS_CODE_SIGN_IDENTITY})
+endif()
+
+add_custom_command(TARGET ${APP_NAME_LC} POST_BUILD
+ # TODO: Remove in sync with CopyRootFiles-ios expecting the ".bin" file
+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${APP_NAME_LC}>
+ $<TARGET_FILE_DIR:${APP_NAME_LC}>/${APP_NAME}.bin
+
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/DllPaths_generated.h
+ ${CMAKE_BINARY_DIR}/xbmc/DllPaths_generated.h
+ COMMAND "ACTION=build"
+ "TARGET_BUILD_DIR=$<TARGET_FILE_DIR:${APP_NAME_LC}>/.."
+ "TARGET_NAME=${APP_NAME}.app"
+ "APP_NAME=${APP_NAME}"
+ "PRODUCT_NAME=${APP_NAME}"
+ "WRAPPER_EXTENSION=app"
+ "SRCROOT=${CMAKE_BINARY_DIR}"
+ ${CORE_SOURCE_DIR}/tools/darwin/Support/CopyRootFiles-ios.command
+ COMMAND "XBMC_DEPENDS=${DEPENDS_PATH}"
+ "TARGET_BUILD_DIR=$<TARGET_FILE_DIR:${APP_NAME_LC}>/.."
+ "TARGET_NAME=${APP_NAME}.app"
+ "APP_NAME=${APP_NAME}"
+ "PRODUCT_NAME=${APP_NAME}"
+ "FULL_PRODUCT_NAME=${APP_NAME}.app"
+ "WRAPPER_EXTENSION=app"
+ "SRCROOT=${CMAKE_BINARY_DIR}"
+ ${CORE_SOURCE_DIR}/tools/darwin/Support/copyframeworks-ios.command
+ COMMAND "XBMC_DEPENDS_ROOT=${NATIVEPREFIX}/.."
+ "PLATFORM_NAME=${PLATFORM}"
+ "CODESIGNING_FOLDER_PATH=$<TARGET_FILE_DIR:${APP_NAME_LC}>"
+ "BUILT_PRODUCTS_DIR=$<TARGET_FILE_DIR:${APP_NAME_LC}>/.."
+ "WRAPPER_NAME=${APP_NAME}.app"
+ "APP_NAME=${APP_NAME}"
+ ${CORE_SOURCE_DIR}/tools/darwin/Support/Codesign.command
+)
+
+set(DEPENDS_ROOT_FOR_XCODE ${NATIVEPREFIX}/..)
+configure_file(${CORE_SOURCE_DIR}/tools/darwin/packaging/ios/mkdeb-ios.sh.in
+ ${CMAKE_BINARY_DIR}/tools/darwin/packaging/ios/mkdeb-ios.sh @ONLY)
+configure_file(${CORE_SOURCE_DIR}/tools/darwin/packaging/migrate_to_kodi_ios.sh.in
+ ${CMAKE_BINARY_DIR}/tools/darwin/packaging/migrate_to_kodi_ios.sh @ONLY)
+
+add_custom_target(deb
+ COMMAND sh ./mkdeb-ios.sh ${CORE_BUILD_CONFIG}
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tools/darwin/packaging/ios)
+add_dependencies(deb ${APP_NAME_LC})
diff --git a/cmake/scripts/ios/Macros.cmake b/cmake/scripts/ios/Macros.cmake
new file mode 120000
index 0000000000..54c1b280e0
--- /dev/null
+++ b/cmake/scripts/ios/Macros.cmake
@@ -0,0 +1 @@
+../osx/Macros.cmake \ No newline at end of file
diff --git a/cmake/scripts/ios/PathSetup.cmake b/cmake/scripts/ios/PathSetup.cmake
new file mode 120000
index 0000000000..d7f25b2cad
--- /dev/null
+++ b/cmake/scripts/ios/PathSetup.cmake
@@ -0,0 +1 @@
+../osx/PathSetup.cmake \ No newline at end of file