diff options
Diffstat (limited to 'cmake/scripts/ios')
| -rw-r--r-- | cmake/scripts/ios/ArchSetup.cmake | 57 | ||||
| -rw-r--r-- | cmake/scripts/ios/Install.cmake | 86 | ||||
| l--------- | cmake/scripts/ios/Macros.cmake | 1 | ||||
| l--------- | cmake/scripts/ios/PathSetup.cmake | 1 |
4 files changed, 145 insertions, 0 deletions
diff --git a/cmake/scripts/ios/ArchSetup.cmake b/cmake/scripts/ios/ArchSetup.cmake new file mode 100644 index 0000000..8393faa --- /dev/null +++ b/cmake/scripts/ios/ArchSetup.cmake | |||
| @@ -0,0 +1,57 @@ | |||
| 1 | if(NOT CMAKE_TOOLCHAIN_FILE) | ||
| 2 | message(FATAL_ERROR "CMAKE_TOOLCHAIN_FILE required for ios. See ${CMAKE_SOURCE_DIR}/cmake/README.md") | ||
| 3 | endif() | ||
| 4 | |||
| 5 | set(CORE_MAIN_SOURCE ${CMAKE_SOURCE_DIR}/xbmc/platform/darwin/ios/XBMCApplication.m) | ||
| 6 | |||
| 7 | set(ARCH_DEFINES -D_LINUX -DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_IOS) | ||
| 8 | set(SYSTEM_DEFINES -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE | ||
| 9 | -D__STDC_CONSTANT_MACROS) | ||
| 10 | set(PLATFORM_DIR linux) | ||
| 11 | set(CMAKE_SYSTEM_NAME Darwin) | ||
| 12 | if(WITH_ARCH) | ||
| 13 | set(ARCH ${WITH_ARCH}) | ||
| 14 | else() | ||
| 15 | if(CPU STREQUAL armv7 OR CPU STREQUAL arm64) | ||
| 16 | set(CMAKE_OSX_ARCHITECTURES ${CPU}) | ||
| 17 | set(ARCH arm-osx) | ||
| 18 | set(NEON True) | ||
| 19 | else() | ||
| 20 | message(SEND_ERROR "Unknown CPU: ${CPU}") | ||
| 21 | endif() | ||
| 22 | endif() | ||
| 23 | |||
| 24 | find_package(CXX11 REQUIRED) | ||
| 25 | |||
| 26 | list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${NATIVEPREFIX}) | ||
| 27 | |||
| 28 | list(APPEND DEPLIBS "-framework CoreFoundation" "-framework CoreVideo" | ||
| 29 | "-framework CoreAudio" "-framework AudioToolbox" | ||
| 30 | "-framework QuartzCore" "-framework MediaPlayer" | ||
| 31 | "-framework CFNetwork" "-framework CoreGraphics" | ||
| 32 | "-framework Foundation" "-framework UIKit" | ||
| 33 | "-framework CoreMedia" "-framework AVFoundation" | ||
| 34 | "-framework VideoToolbox") | ||
| 35 | |||
| 36 | set(ENABLE_DVDCSS OFF CACHE BOOL "" FORCE) | ||
| 37 | set(ENABLE_OPTICAL OFF CACHE BOOL "" FORCE) | ||
| 38 | |||
| 39 | set(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "6.0") | ||
| 40 | set(CMAKE_XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2") | ||
| 41 | |||
| 42 | set(CMAKE_XCODE_ATTRIBUTE_INLINES_ARE_PRIVATE_EXTERN OFF) | ||
| 43 | set(CMAKE_XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN OFF) | ||
| 44 | set(CMAKE_XCODE_ATTRIBUTE_COPY_PHASE_STRIP OFF) | ||
| 45 | |||
| 46 | # Xcode strips dead code by default which breaks wrapping | ||
| 47 | set(CMAKE_XCODE_ATTRIBUTE_DEAD_CODE_STRIPPING OFF) | ||
| 48 | |||
| 49 | # Unify output directories for iOS packaging scripts | ||
| 50 | if(NOT CMAKE_GENERATOR MATCHES Xcode) | ||
| 51 | set(CORE_BUILD_CONFIG "${CORE_BUILD_CONFIG}-iphoneos") | ||
| 52 | endif() | ||
| 53 | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CORE_BUILD_DIR}/${CORE_BUILD_CONFIG}) | ||
| 54 | foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) | ||
| 55 | string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG) | ||
| 56 | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CORE_BUILD_DIR}/${CORE_BUILD_CONFIG}) | ||
| 57 | endforeach() | ||
diff --git a/cmake/scripts/ios/Install.cmake b/cmake/scripts/ios/Install.cmake new file mode 100644 index 0000000..fee7368 --- /dev/null +++ b/cmake/scripts/ios/Install.cmake | |||
| @@ -0,0 +1,86 @@ | |||
| 1 | # IOS packaging | ||
| 2 | |||
| 3 | set(BUNDLE_RESOURCES ${CMAKE_SOURCE_DIR}/xbmc/platform/darwin/ios/Default-568h@2x.png | ||
| 4 | ${CMAKE_SOURCE_DIR}/xbmc/platform/darwin/ios/Default-667h@2x.png | ||
| 5 | ${CMAKE_SOURCE_DIR}/xbmc/platform/darwin/ios/Default-736h@3x.png | ||
| 6 | ${CMAKE_SOURCE_DIR}/xbmc/platform/darwin/ios/Default-Landscape-736h@3x.png | ||
| 7 | ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon29x29.png | ||
| 8 | ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon29x29@2x.png | ||
| 9 | ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon40x40.png | ||
| 10 | ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon40x40@2x.png | ||
| 11 | ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon50x50.png | ||
| 12 | ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon50x50@2x.png | ||
| 13 | ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon57x57.png | ||
| 14 | ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon57x57@2x.png | ||
| 15 | ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon60x60.png | ||
| 16 | ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon60x60@2x.png | ||
| 17 | ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon72x72.png | ||
| 18 | ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon72x72@2x.png | ||
| 19 | ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon76x76.png | ||
| 20 | ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon76x76@2x.png) | ||
| 21 | |||
| 22 | if(CMAKE_GENERATOR STREQUAL Xcode) | ||
| 23 | set(RESOURCE_LOCATION ${APP_NAME}.app) | ||
| 24 | else() | ||
| 25 | set(RESOURCE_LOCATION ".") | ||
| 26 | endif() | ||
| 27 | |||
| 28 | target_sources(${APP_NAME_LC} PRIVATE ${BUNDLE_RESOURCES}) | ||
| 29 | foreach(file IN LISTS BUNDLE_RESOURCES) | ||
| 30 | set_source_files_properties(${file} PROPERTIES MACOSX_PACKAGE_LOCATION ${RESOURCE_LOCATION}) | ||
| 31 | endforeach() | ||
| 32 | |||
| 33 | target_sources(${APP_NAME_LC} PRIVATE ${CMAKE_SOURCE_DIR}/xbmc/platform/darwin/ios/English.lproj/InfoPlist.strings) | ||
| 34 | set_source_files_properties(${CMAKE_SOURCE_DIR}/xbmc/platform/darwin/ios/English.lproj/InfoPlist.strings PROPERTIES MACOSX_PACKAGE_LOCATION "${RESOURCE_LOCATION}/English.lproj") | ||
| 35 | |||
| 36 | # Options for code signing propagated as env vars to Codesign.command via Xcode | ||
| 37 | set(IOS_CODE_SIGN_IDENTITY "" CACHE STRING "Code Sign Identity") | ||
| 38 | if(IOS_CODE_SIGN_IDENTITY) | ||
| 39 | set_target_properties(${APP_NAME_LC} PROPERTIES XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED TRUE | ||
| 40 | XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${IOS_CODE_SIGN_IDENTITY}) | ||
| 41 | endif() | ||
| 42 | |||
| 43 | add_custom_command(TARGET ${APP_NAME_LC} POST_BUILD | ||
| 44 | # TODO: Remove in sync with CopyRootFiles-ios expecting the ".bin" file | ||
| 45 | COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${APP_NAME_LC}> | ||
| 46 | $<TARGET_FILE_DIR:${APP_NAME_LC}>/${APP_NAME}.bin | ||
| 47 | |||
| 48 | COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/DllPaths_generated.h | ||
| 49 | ${CMAKE_BINARY_DIR}/xbmc/DllPaths_generated.h | ||
| 50 | COMMAND "ACTION=build" | ||
| 51 | "TARGET_BUILD_DIR=$<TARGET_FILE_DIR:${APP_NAME_LC}>/.." | ||
| 52 | "TARGET_NAME=${APP_NAME}.app" | ||
| 53 | "APP_NAME=${APP_NAME}" | ||
| 54 | "PRODUCT_NAME=${APP_NAME}" | ||
| 55 | "WRAPPER_EXTENSION=app" | ||
| 56 | "SRCROOT=${CMAKE_BINARY_DIR}" | ||
| 57 | ${CMAKE_SOURCE_DIR}/tools/darwin/Support/CopyRootFiles-ios.command | ||
| 58 | COMMAND "XBMC_DEPENDS=${DEPENDS_PATH}" | ||
| 59 | "TARGET_BUILD_DIR=$<TARGET_FILE_DIR:${APP_NAME_LC}>/.." | ||
| 60 | "TARGET_NAME=${APP_NAME}.app" | ||
| 61 | "APP_NAME=${APP_NAME}" | ||
| 62 | "PRODUCT_NAME=${APP_NAME}" | ||
| 63 | "FULL_PRODUCT_NAME=${APP_NAME}.app" | ||
| 64 | "WRAPPER_EXTENSION=app" | ||
| 65 | "SRCROOT=${CMAKE_BINARY_DIR}" | ||
| 66 | ${CMAKE_SOURCE_DIR}/tools/darwin/Support/copyframeworks-ios.command | ||
| 67 | COMMAND "NATIVEPREFIX=${NATIVEPREFIX}" | ||
| 68 | "PLATFORM_NAME=${PLATFORM}" | ||
| 69 | "CODESIGNING_FOLDER_PATH=$<TARGET_FILE_DIR:${APP_NAME_LC}>" | ||
| 70 | "BUILT_PRODUCTS_DIR=$<TARGET_FILE_DIR:${APP_NAME_LC}>/.." | ||
| 71 | "WRAPPER_NAME=${APP_NAME}.app" | ||
| 72 | "APP_NAME=${APP_NAME}" | ||
| 73 | ${CMAKE_SOURCE_DIR}/tools/darwin/Support/Codesign.command | ||
| 74 | ) | ||
| 75 | |||
| 76 | set(DEPENDS_ROOT_FOR_XCODE ${NATIVEPREFIX}/..) | ||
| 77 | configure_file(${CMAKE_SOURCE_DIR}/tools/darwin/packaging/ios/mkdeb-ios.sh.in | ||
| 78 | ${CMAKE_BINARY_DIR}/tools/darwin/packaging/ios/mkdeb-ios.sh @ONLY) | ||
| 79 | configure_file(${CMAKE_SOURCE_DIR}/tools/darwin/packaging/migrate_to_kodi_ios.sh.in | ||
| 80 | ${CMAKE_BINARY_DIR}/tools/darwin/packaging/migrate_to_kodi_ios.sh @ONLY) | ||
| 81 | |||
| 82 | add_custom_target(deb | ||
| 83 | COMMAND sh ./mkdeb-ios.sh ${CORE_BUILD_CONFIG} | ||
| 84 | WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tools/darwin/packaging/ios) | ||
| 85 | add_dependencies(deb ${APP_NAME_LC}) | ||
| 86 | |||
diff --git a/cmake/scripts/ios/Macros.cmake b/cmake/scripts/ios/Macros.cmake new file mode 120000 index 0000000..54c1b28 --- /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 0000000..d7f25b2 --- /dev/null +++ b/cmake/scripts/ios/PathSetup.cmake | |||
| @@ -0,0 +1 @@ | |||
| ../osx/PathSetup.cmake \ No newline at end of file | |||
