mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Fix for iOS CMake
Update toolchain file to reflect that we want to use clang (rock88 is using clang). Set target in the CMake. Fix for packaging and signing (thanks rock88). Update linking to include audio and GLKit (thanks rock88). Update README
This commit is contained in:
parent
adf461802d
commit
e3a953972a
3 changed files with 37 additions and 22 deletions
|
@ -63,12 +63,12 @@ else()
|
|||
endif()
|
||||
|
||||
#find_package(Qt5Widgets)
|
||||
if(USING_GLES2)
|
||||
if(USING_GLES2 AND NOT IOS)
|
||||
set(OPENGL_LIBRARIES GLESv2)
|
||||
else()
|
||||
elseif(NOT IOS)
|
||||
include(FindOpenGL REQUIRED)
|
||||
endif()
|
||||
if (NOT BLACKBERRY AND NOT ANDROID)
|
||||
if (NOT BLACKBERRY AND NOT ANDROID AND NOT IOS)
|
||||
include(FindSDL)
|
||||
endif()
|
||||
include(FindThreads)
|
||||
|
@ -119,9 +119,8 @@ if(NOT MSVC)
|
|||
add_definitions(-D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D__BSD_VISIBLE=1)
|
||||
add_definitions(-D_LARGEFILE64_SOURCE=1 -D_FILE_OFFSET_BITS=64)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
||||
if(IOS)
|
||||
add_definitions(-DGL_ETC1_RGB8_OES=0)
|
||||
endif()
|
||||
|
||||
if(BLACKBERRY)
|
||||
|
@ -133,6 +132,9 @@ if(NOT MSVC)
|
|||
add_definitions(-msse2)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
||||
endif()
|
||||
if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7.0)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
||||
else()
|
||||
|
@ -415,9 +417,8 @@ elseif(IOS)
|
|||
ios/AppDelegate.h
|
||||
ios/ViewController.mm
|
||||
ios/ViewController.h)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "-framework Foundation -framework CoreGraphics -framework QuartzCore -framework OpenGLES -framework UIKit")
|
||||
# No target
|
||||
# set(TargetBin PPSSPP)
|
||||
set(nativeExtraLibs ${nativeExtraLibs} "-framework Foundation -framework AudioToolbox -framework CoreGraphics -framework QuartzCore -framework OpenGLES -framework UIKit -framework GLKit")
|
||||
set(TargetBin PPSSPP)
|
||||
elseif(USING_QT_UI)
|
||||
# Currently unused
|
||||
find_package(Qt4 COMPONENTS QtMultimedia QtOpenGL QtGui QtCore)
|
||||
|
@ -950,15 +951,28 @@ set(NativeAssets
|
|||
set(LinkCommon ${CoreLibName} ${CMAKE_THREAD_LIBS_INIT} ${nativeExtraLibs})
|
||||
|
||||
if (TargetBin)
|
||||
add_executable(${TargetBin} ${NativeAppSource})
|
||||
if (IOS)
|
||||
add_executable(${TargetBin} MACOSX_BUNDLE ${NativeAppSource})
|
||||
else()
|
||||
add_executable(${TargetBin} ${NativeAppSource})
|
||||
endif()
|
||||
target_link_libraries(${TargetBin} ${LinkCommon})
|
||||
endif()
|
||||
|
||||
# installs
|
||||
file(INSTALL ${NativeAssets} DESTINATION assets)
|
||||
|
||||
# code signing
|
||||
# packaging and code signing
|
||||
if (IOS)
|
||||
set_target_properties(${NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST PPSSPP-Info.plist XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer: My Name")
|
||||
set(RSRC_XIB_FILES assets/Icon@2x.png)
|
||||
set(RSRC_PATH /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources)
|
||||
SET_SOURCE_FILES_PROPERTIES(${RSRC_XIB_FILES} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
||||
set(APP_DIR_NAME \${TARGET_BUILD_DIR}/\${FULL_PRODUCT_NAME})
|
||||
set(RES_DIR assets)
|
||||
add_custom_command(TARGET PPSSPP POST_BUILD
|
||||
COMMAND ${RSRC_PATH}/pbxcp -exclude .DS_Store -exclude CVS -exclude .git -resolve-src-symlinks ${RES_DIR} ${APP_DIR_NAME}
|
||||
)
|
||||
set_target_properties(${TargetBin} PROPERTIES MACOSX_BUNDLE_INFO_PLIST ../ios/PPSSPP-Info.plist XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer: My Name")
|
||||
endif()
|
||||
|
||||
#include(CPack)
|
||||
|
|
|
@ -103,8 +103,6 @@ other than Microsoft's, but `NMake Makefiles` works fine.
|
|||
Building for iOS
|
||||
----------------
|
||||
|
||||
Note: This does not work yet.
|
||||
|
||||
Create a `build-ios` directory and inside it run:
|
||||
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=../ios/ios.toolchain.cmake -GXcode ..
|
||||
|
|
|
@ -31,9 +31,12 @@
|
|||
# Standard settings
|
||||
set (CMAKE_SYSTEM_NAME Darwin)
|
||||
set (CMAKE_SYSTEM_VERSION 1)
|
||||
set (CMAKE_SYSTEM_PROCESSOR arm)
|
||||
set (UNIX True)
|
||||
set (APPLE True)
|
||||
set (IOS True)
|
||||
set (APP_TYPE MACOSX_BUNDLE)
|
||||
set (CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET 5.0)
|
||||
|
||||
# Determine the cmake host system version so we know where to find the iOS SDKs
|
||||
find_program (CMAKE_UNAME uname /bin /usr/bin /usr/local/bin)
|
||||
|
@ -42,12 +45,8 @@ if (CMAKE_UNAME)
|
|||
string (REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\1" DARWIN_MAJOR_VERSION "${CMAKE_HOST_SYSTEM_VERSION}")
|
||||
endif (CMAKE_UNAME)
|
||||
|
||||
# Force the compilers to gcc for iOS
|
||||
include (CMakeForceCompiler)
|
||||
CMAKE_FORCE_C_COMPILER (gcc gcc)
|
||||
CMAKE_FORCE_CXX_COMPILER (g++ g++)
|
||||
|
||||
# Skip the platform compiler checks for cross compiling
|
||||
set (CMAKE_CROSSCOMPILING TRUE)
|
||||
set (CMAKE_CXX_COMPILER_WORKS TRUE)
|
||||
set (CMAKE_C_COMPILER_WORKS TRUE)
|
||||
|
||||
|
@ -105,12 +104,9 @@ endif (${IOS_PLATFORM} STREQUAL "OS")
|
|||
# Setup iOS developer location unless specified manually with CMAKE_IOS_DEVELOPER_ROOT
|
||||
# Note Xcode 4.3 changed the installation location, choose the most recent one available
|
||||
set (XCODE_POST_43_ROOT "/Applications/Xcode.app/Contents/Developer/Platforms/${IOS_PLATFORM_LOCATION}/Developer")
|
||||
set (XCODE_PRE_43_ROOT "/Developer/Platforms/${IOS_PLATFORM_LOCATION}/Developer")
|
||||
if (NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT)
|
||||
if (EXISTS ${XCODE_POST_43_ROOT})
|
||||
set (CMAKE_IOS_DEVELOPER_ROOT ${XCODE_POST_43_ROOT})
|
||||
elseif(EXISTS ${XCODE_PRE_43_ROOT})
|
||||
set (CMAKE_IOS_DEVELOPER_ROOT ${XCODE_PRE_43_ROOT})
|
||||
endif (EXISTS ${XCODE_POST_43_ROOT})
|
||||
endif (NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT)
|
||||
set (CMAKE_IOS_DEVELOPER_ROOT ${CMAKE_IOS_DEVELOPER_ROOT} CACHE PATH "Location of iOS Platform")
|
||||
|
@ -132,6 +128,13 @@ set (CMAKE_IOS_SDK_ROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Location of the select
|
|||
# Set the sysroot default to the most recent SDK
|
||||
set (CMAKE_OSX_SYSROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Sysroot used for iOS support")
|
||||
|
||||
# Force the compilers to clang for iOS
|
||||
include (CMakeForceCompiler)
|
||||
CMAKE_FORCE_C_COMPILER ("${CMAKE_IOS_DEVELOPER_ROOT}/usr/bin/clang")
|
||||
CMAKE_FORCE_CXX_COMPILER ("${CMAKE_IOS_DEVELOPER_ROOT}/usr/bin/clang++")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++0x")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libstdc++")
|
||||
|
||||
# set the architecture for iOS
|
||||
# NOTE: Currently both ARCHS_STANDARD_32_BIT and ARCHS_UNIVERSAL_IPHONE_OS set armv7 only, so set both manually
|
||||
if (${IOS_PLATFORM} STREQUAL "OS")
|
||||
|
|
Loading…
Add table
Reference in a new issue