119 lines
3.4 KiB
CMake
119 lines
3.4 KiB
CMake
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)
|
|
# 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()
|