cmake_minimum_required(VERSION 3.7) include(BundleUtilities) if(ENABLE_METAL) find_library(METAL Metal) set(EXTRA_LIBRARIES GFXMetal ${METAL} ${EXTRA_LIBRARIES}) endif() if(ENABLE_VULKAN) set(EXTRA_LIBRARIES GFXVulkan ${EXTRA_LIBRARIES}) endif() set(APP_HEADER_FILES ${PROJECT_SOURCE_DIR}/platforms/uikit/AppDelegate.h ) set(APP_SOURCE_FILES ${PROJECT_SOURCE_DIR}/platforms/uikit/AppDelegate.m ${PROJECT_SOURCE_DIR}/platforms/uikit/main.m ) set(RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/Main.storyboard ${CMAKE_CURRENT_SOURCE_DIR}/LaunchScreen.storyboard ${CMAKE_SOURCE_DIR}/example/data ${CMAKE_BINARY_DIR}/bin/shaders ) include(../../cmake/AddPlatformExecutable.cmake) find_library(UIKIT UIKit) find_library(FOUNDATION Foundation) find_library(MOBILECORESERVICES MobileCoreServices) find_library(CFNETWORK CFNetwork) find_library(SYSTEMCONFIGURATION SystemConfiguration) find_library(GAMECONTROLLER GameController) find_library(QUARTZ QuartzCore) find_library(METAL Metal) find_library(CORE_GRAPHICS CoreGraphics) add_platform( MAIN_FILE ../uikit/ViewController.mm.in SRC MACOSX_BUNDLE ${APP_HEADER_FILES} ${APP_SOURCE_FILES} ${RESOURCES} ${PROJECT_SOURCE_DIR}/platforms/uikit/file.mm EXECUTABLE_PROPERTIES MACOSX_BUNDLE ON LINK_LIBRARIES Core ${UIKIT} ${FOUNDATION} ${MOBILECORESERVICES} ${CFNETWORK} ${SYSTEMCONFIGURATION} ${GAMECONTROLLER} ${QUARTZ} ${METAL} ${CORE_GRAPHICS} ${EXTRA_LIBRARIES} GFXDummy COMPILE_OPTIONS ) function(add_platform_commands APP_NAME data_directory) # you should set these as cmake options as these reset on cmake reconfigure #set(APP_BUNDLE_IDENTIFIER "your app bundle id here, such as com.redstrate.prismtest") #set(CODE_SIGN_IDENTITY "iPhone Developer") #set(DEVELOPMENT_TEAM_ID "your dev team id here") set(DEPLOYMENT_TARGET 13.5) set(DEVICE_FAMILY "1,2") # plist values set(PRODUCT_NAME ${APP_NAME}) set(EXECUTABLE_NAME ${APP_NAME}) set(MACOSX_BUNDLE_EXECUTABLE_NAME ${APP_NAME}) set(MACOSX_BUNDLE_INFO_STRING ${APP_BUNDLE_IDENTIFIER}) set(MACOSX_BUNDLE_GUI_IDENTIFIER ${APP_BUNDLE_IDENTIFIER}) set(MACOSX_BUNDLE_BUNDLE_NAME ${APP_BUNDLE_IDENTIFIER}) set(MACOSX_BUNDLE_ICON_FILE "") set(MACOSX_BUNDLE_LONG_VERSION_STRING "1.0") set(MACOSX_BUNDLE_SHORT_VERSION_STRING "1.0") set(MACOSX_BUNDLE_BUNDLE_VERSION "1.0") set(MACOSX_BUNDLE_COPYRIGHT "Copyright lololol") set(MACOSX_DEPLOYMENT_TARGET ${DEPLOYMENT_TARGET}) set(IOS_DIRECTORY ${PROJECT_SOURCE_DIR}/platforms/ios) configure_file(${PROJECT_SOURCE_DIR}/platforms/uikit/plist.in ${CMAKE_BINARY_DIR}/${add_platform_executable_TARGET}Info.plist) set(RESOURCES ${IOS_DIRECTORY}/Main.storyboard ${IOS_DIRECTORY}/LaunchScreen.storyboard ${PROJECT_SOURCE_DIR}/example/data ${CMAKE_BINARY_DIR}/bin/shaders ) set_target_properties(${APP_NAME} PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" RESOURCE "${RESOURCES}" XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER "YES" XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET ${DEPLOYMENT_TARGET} XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY} XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID} XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY ${DEVICE_FAMILY} MACOSX_BUNDLE TRUE MACOSX_BUNDLE_INFO_PLIST "${CMAKE_BINARY_DIR}/${APP_NAME}Info.plist" XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES XCODE_ATTRIBUTE_COMBINE_HIDPI_IMAGES NO XCODE_ATTRIBUTE_INSTALL_PATH "$(LOCAL_APPS_DIR)" XCODE_ATTRIBUTE_ENABLE_TESTABILITY YES XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN YES ) endfunction()