diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index 0af6776bf6..836097fcd1 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -354,7 +354,17 @@ static void frontend_darwin_get_environment_settings(int *argc, char *argv[], strlcat(home_dir_buf, "/RetroArch", sizeof(home_dir_buf)); fill_pathname_join(g_defaults.dir.shader, home_dir_buf, "shaders_glsl", sizeof(g_defaults.dir.shader)); +#if TARGET_OS_IPHONE + int major, minor; + get_ios_version(&major, &minor); + if (major >= 10 ) { + fill_pathname_join(g_defaults.dir.core, bundle_path_buf, "modules", sizeof(g_defaults.dir.core)); + } else { + fill_pathname_join(g_defaults.dir.core, home_dir_buf, "cores", sizeof(g_defaults.dir.core)); + } +#else fill_pathname_join(g_defaults.dir.core, home_dir_buf, "cores", sizeof(g_defaults.dir.core)); +#endif fill_pathname_join(g_defaults.dir.core_info, home_dir_buf, "info", sizeof(g_defaults.dir.core_info)); fill_pathname_join(g_defaults.dir.overlay, home_dir_buf, "overlays", sizeof(g_defaults.dir.overlay)); fill_pathname_join(g_defaults.dir.autoconfig, home_dir_buf, "autoconfig", sizeof(g_defaults.dir.autoconfig)); @@ -408,9 +418,6 @@ static void frontend_darwin_get_environment_settings(int *argc, char *argv[], #if TARGET_OS_IPHONE char assets_zip_path[PATH_MAX_LENGTH]; - int major, minor; - - get_ios_version(&major, &minor); if (major > 8) strlcpy(g_defaults.path.buildbot_server_url, "http://buildbot.libretro.com/nightly/apple/ios9/latest/", sizeof(g_defaults.path.buildbot_server_url)); diff --git a/libretro-common/features/features_cpu.c b/libretro-common/features/features_cpu.c index bedf50baf6..e9f93744ed 100644 --- a/libretro-common/features/features_cpu.c +++ b/libretro-common/features/features_cpu.c @@ -86,6 +86,8 @@ #define CLOCK_REALTIME 0 #endif +#if __IPHONE_OS_VERSION_MAX_ALLOWED < 100000 +// this function is part of iOS 10 now static int clock_gettime(int clk_ik, struct timespec *t) { struct timeval now; @@ -97,6 +99,7 @@ static int clock_gettime(int clk_ik, struct timespec *t) return 0; } #endif +#endif #ifdef EMSCRIPTEN #include diff --git a/pkg/apple/RetroArch_iOS.xcodeproj/project.pbxproj b/pkg/apple/RetroArch_iOS.xcodeproj/project.pbxproj index e0d9ca51ff..0d1eccb475 100644 --- a/pkg/apple/RetroArch_iOS.xcodeproj/project.pbxproj +++ b/pkg/apple/RetroArch_iOS.xcodeproj/project.pbxproj @@ -76,6 +76,32 @@ 83D632E219ECFCC4009E3161 /* iOS/Resources/ic_pause.png in Resources */ = {isa = PBXBuildFile; fileRef = 83D632DB19ECFCC4009E3161 /* iOS/Resources/ic_pause.png */; }; 83D632E519ECFCC4009E3161 /* iOS/Resources/PauseIndicatorView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 83D632DE19ECFCC4009E3161 /* iOS/Resources/PauseIndicatorView.xib */; }; 83EB676019EEAF050096F441 /* iOS/modules in Resources */ = {isa = PBXBuildFile; fileRef = 83EB675F19EEAF050096F441 /* iOS/modules */; }; + 9204BE0B1D319EF300BD49DB /* float_to_s16_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 507E056A1CE9C67500E023D3 /* float_to_s16_neon.S */; }; + 9204BE0C1D319EF300BD49DB /* cc_resampler_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 50D00E8D19D117C400EBA71E /* cc_resampler_neon.S */; }; + 9204BE0D1D319EF300BD49DB /* griffin_objc.m in Sources */ = {isa = PBXBuildFile; fileRef = 50521A431AA23BF500185CC9 /* griffin_objc.m */; }; + 9204BE0E1D319EF300BD49DB /* s16_to_float_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 501232CD192E5FE30063A359 /* s16_to_float_neon.S */; }; + 9204BE0F1D319EF300BD49DB /* sinc_resampler_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 501232CB192E5FDC0063A359 /* sinc_resampler_neon.S */; }; + 9204BE101D319EF300BD49DB /* griffin.c in Sources */ = {isa = PBXBuildFile; fileRef = 501232C9192E5FC40063A359 /* griffin.c */; }; + 9204BE121D319EF300BD49DB /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 5040F04F1AE47ED4006F6972 /* libz.dylib */; }; + 9204BE131D319EF300BD49DB /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50C3B1AD1AB1107100F478D3 /* QuartzCore.framework */; }; + 9204BE141D319EF300BD49DB /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 963C3C33186E3DED00A6EB1E /* GameController.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 9204BE151D319EF300BD49DB /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 696012F119F3389A006A1088 /* CoreText.framework */; }; + 9204BE161D319EF300BD49DB /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50CCC827185E0E7D001F5BC8 /* CoreLocation.framework */; }; + 9204BE171D319EF300BD49DB /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 501881ED184BB54C006F665D /* CoreMedia.framework */; }; + 9204BE181D319EF300BD49DB /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 501881EB184BAD6D006F665D /* AVFoundation.framework */; }; + 9204BE191D319EF300BD49DB /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50E7189E184B88AA001956CE /* CoreVideo.framework */; }; + 9204BE1A1D319EF300BD49DB /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96366C5816C9ACF500D64A22 /* AudioToolbox.framework */; }; + 9204BE1B1D319EF300BD49DB /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96366C5416C9AC3300D64A22 /* CoreAudio.framework */; }; + 9204BE1C1D319EF300BD49DB /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAE2916C1D4EA009DE44C /* UIKit.framework */; }; + 9204BE1D1D319EF300BD49DB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAE2B16C1D4EA009DE44C /* Foundation.framework */; }; + 9204BE1E1D319EF300BD49DB /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAE2D16C1D4EA009DE44C /* CoreGraphics.framework */; }; + 9204BE1F1D319EF300BD49DB /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAE2F16C1D4EA009DE44C /* GLKit.framework */; }; + 9204BE201D319EF300BD49DB /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAE3116C1D4EA009DE44C /* OpenGLES.framework */; }; + 9204BE221D319EF300BD49DB /* iOS/Resources/ic_pause.png in Resources */ = {isa = PBXBuildFile; fileRef = 83D632DB19ECFCC4009E3161 /* iOS/Resources/ic_pause.png */; }; + 9204BE231D319EF300BD49DB /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 967894611788EBD800D6CA69 /* InfoPlist.strings */; }; + 9204BE241D319EF300BD49DB /* iOS/Resources/Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 69D31DE31A547EC800EF4C92 /* iOS/Resources/Media.xcassets */; }; + 9204BE251D319EF300BD49DB /* iOS/Resources/PauseIndicatorView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 83D632DE19ECFCC4009E3161 /* iOS/Resources/PauseIndicatorView.xib */; }; + 9204BE261D319EF300BD49DB /* iOS/modules in Resources */ = {isa = PBXBuildFile; fileRef = 83EB675F19EEAF050096F441 /* iOS/modules */; }; 96366C5516C9AC3300D64A22 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96366C5416C9AC3300D64A22 /* CoreAudio.framework */; }; 96366C5916C9ACF500D64A22 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96366C5816C9ACF500D64A22 /* AudioToolbox.framework */; }; 967894631788EBD800D6CA69 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 967894611788EBD800D6CA69 /* InfoPlist.strings */; }; @@ -108,6 +134,7 @@ 83D632DB19ECFCC4009E3161 /* iOS/Resources/ic_pause.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iOS/Resources/ic_pause.png; sourceTree = SOURCE_ROOT; }; 83D632DE19ECFCC4009E3161 /* iOS/Resources/PauseIndicatorView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = iOS/Resources/PauseIndicatorView.xib; sourceTree = SOURCE_ROOT; }; 83EB675F19EEAF050096F441 /* iOS/modules */ = {isa = PBXFileReference; lastKnownFileType = folder; path = iOS/modules; sourceTree = SOURCE_ROOT; }; + 9204BE2B1D319EF300BD49DB /* RetroArchiOS10.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RetroArchiOS10.app; sourceTree = BUILT_PRODUCTS_DIR; }; 96366C5416C9AC3300D64A22 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; 96366C5816C9ACF500D64A22 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; 963C3C33186E3DED00A6EB1E /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; }; @@ -167,6 +194,28 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 9204BE111D319EF300BD49DB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9204BE121D319EF300BD49DB /* libz.dylib in Frameworks */, + 9204BE131D319EF300BD49DB /* QuartzCore.framework in Frameworks */, + 9204BE141D319EF300BD49DB /* GameController.framework in Frameworks */, + 9204BE151D319EF300BD49DB /* CoreText.framework in Frameworks */, + 9204BE161D319EF300BD49DB /* CoreLocation.framework in Frameworks */, + 9204BE171D319EF300BD49DB /* CoreMedia.framework in Frameworks */, + 9204BE181D319EF300BD49DB /* AVFoundation.framework in Frameworks */, + 9204BE191D319EF300BD49DB /* CoreVideo.framework in Frameworks */, + 9204BE1A1D319EF300BD49DB /* AudioToolbox.framework in Frameworks */, + 9204BE1B1D319EF300BD49DB /* CoreAudio.framework in Frameworks */, + 9204BE1C1D319EF300BD49DB /* UIKit.framework in Frameworks */, + 9204BE1D1D319EF300BD49DB /* Foundation.framework in Frameworks */, + 9204BE1E1D319EF300BD49DB /* CoreGraphics.framework in Frameworks */, + 9204BE1F1D319EF300BD49DB /* GLKit.framework in Frameworks */, + 9204BE201D319EF300BD49DB /* OpenGLES.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 96AFAE2216C1D4EA009DE44C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -227,6 +276,7 @@ 96AFAE2516C1D4EA009DE44C /* RetroArch.app */, 503700AD1ACA18E400A51A37 /* RetroArch copy.app */, 0FDA2A911BE1AFA800F2B5DA /* RetroArch.app */, + 9204BE2B1D319EF300BD49DB /* RetroArchiOS10.app */, ); name = Products; sourceTree = ""; @@ -346,6 +396,24 @@ productReference = 503700AD1ACA18E400A51A37 /* RetroArch copy.app */; productType = "com.apple.product-type.application"; }; + 9204BE091D319EF300BD49DB /* RetroArchiOS10 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9204BE281D319EF300BD49DB /* Build configuration list for PBXNativeTarget "RetroArchiOS10" */; + buildPhases = ( + 9204BE0A1D319EF300BD49DB /* Sources */, + 9204BE111D319EF300BD49DB /* Frameworks */, + 9204BE211D319EF300BD49DB /* Resources */, + 9204BE271D319EF300BD49DB /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = RetroArchiOS10; + productName = RetroArch; + productReference = 9204BE2B1D319EF300BD49DB /* RetroArchiOS10.app */; + productType = "com.apple.product-type.application"; + }; 96AFAE2416C1D4EA009DE44C /* RetroArch */ = { isa = PBXNativeTarget; buildConfigurationList = 96AFAE5416C1D4EA009DE44C /* Build configuration list for PBXNativeTarget "RetroArch" */; @@ -375,8 +443,13 @@ 503700861ACA18E400A51A37 = { DevelopmentTeam = YLQUB5DVUQ; }; + 9204BE091D319EF300BD49DB = { + DevelopmentTeam = R72X3BF4KE; + DevelopmentTeamName = "Yoshinobu Sugawara"; + }; 96AFAE2416C1D4EA009DE44C = { - DevelopmentTeam = YLQUB5DVUQ; + DevelopmentTeam = R72X3BF4KE; + DevelopmentTeamName = "Yoshinobu Sugawara"; }; }; }; @@ -395,6 +468,7 @@ 96AFAE2416C1D4EA009DE44C /* RetroArch */, 503700861ACA18E400A51A37 /* RetroArch iOS6 */, 0FDA2A701BE1AFA800F2B5DA /* RetroArch iOS9 */, + 9204BE091D319EF300BD49DB /* RetroArchiOS10 */, ); }; /* End PBXProject section */ @@ -424,6 +498,18 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 9204BE211D319EF300BD49DB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9204BE221D319EF300BD49DB /* iOS/Resources/ic_pause.png in Resources */, + 9204BE231D319EF300BD49DB /* InfoPlist.strings in Resources */, + 9204BE241D319EF300BD49DB /* iOS/Resources/Media.xcassets in Resources */, + 9204BE251D319EF300BD49DB /* iOS/Resources/PauseIndicatorView.xib in Resources */, + 9204BE261D319EF300BD49DB /* iOS/modules in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 96AFAE2316C1D4EA009DE44C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -438,6 +524,22 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 9204BE271D319EF300BD49DB /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "./code-sign-cores.sh"; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 0FDA2A711BE1AFA800F2B5DA /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -465,6 +567,19 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 9204BE0A1D319EF300BD49DB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9204BE0B1D319EF300BD49DB /* float_to_s16_neon.S in Sources */, + 9204BE0C1D319EF300BD49DB /* cc_resampler_neon.S in Sources */, + 9204BE0D1D319EF300BD49DB /* griffin_objc.m in Sources */, + 9204BE0E1D319EF300BD49DB /* s16_to_float_neon.S in Sources */, + 9204BE0F1D319EF300BD49DB /* sinc_resampler_neon.S in Sources */, + 9204BE101D319EF300BD49DB /* griffin.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 96AFAE2116C1D4EA009DE44C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -516,13 +631,13 @@ ONLY_ACTIVE_ARCH = NO; OTHER_CFLAGS = ( "-DHAVE_NETPLAY", - "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_LANGEXTRA", + "-DHAVE_LANGEXTRA", "-DHAVE_CHEEVOS", "-DHAVE_IMAGEVIEWER", "-DHAVE_CORELOCATION", @@ -595,13 +710,13 @@ "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", "-DHAVE_NETPLAY", - "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_LANGEXTRA", + "-DHAVE_LANGEXTRA", "-DHAVE_CHEEVOS", "-DHAVE_IMAGEVIEWER", "-DHAVE_CORELOCATION", @@ -645,13 +760,13 @@ "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", "-DHAVE_NETPLAY", - "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_LANGEXTRA", + "-DHAVE_LANGEXTRA", "-DHAVE_CHEEVOS", "-DHAVE_IMAGEVIEWER", "-DHAVE_CORELOCATION", @@ -724,13 +839,13 @@ ONLY_ACTIVE_ARCH = NO; OTHER_CFLAGS = ( "-DHAVE_NETPLAY", - "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_LANGEXTRA", + "-DHAVE_LANGEXTRA", "-DHAVE_CHEEVOS", "-DHAVE_IMAGEVIEWER", "-DHAVE_CORETEXT", @@ -799,13 +914,13 @@ "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", "-DHAVE_NETPLAY", - "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_LANGEXTRA", + "-DHAVE_LANGEXTRA", "-DHAVE_CHEEVOS", "-DHAVE_IMAGEVIEWER", "-DHAVE_CORELOCATION", @@ -846,13 +961,13 @@ "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", "-DHAVE_NETPLAY", - "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_LANGEXTRA", + "-DHAVE_LANGEXTRA", "-DHAVE_CHEEVOS", "-DHAVE_IMAGEVIEWER", "-DHAVE_CORELOCATION", @@ -896,6 +1011,212 @@ }; name = Release; }; + 9204BE291D319EF300BD49DB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = armv7; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_CXX_LIBRARY = "libstdc++"; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; + ENABLE_BITCODE = NO; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = ( + ../../, + "../../libretro-common/include", + ); + INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + LD_NO_PIE = YES; + LIBRARY_SEARCH_PATHS = ""; + ONLY_ACTIVE_ARCH = NO; + OTHER_CFLAGS = ( + "-DHAVE_NETPLAY", + "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_CORETEXT", + "-DHAVE_HID", + "-DHAVE_NETWORKING", + "-DHAVE_AVFOUNDATION", + "-DHAVE_GRIFFIN", + "-DHAVE_LANGEXTRA", + "-DHAVE_CHEEVOS", + "-DHAVE_IMAGEVIEWER", + "-DHAVE_CORELOCATION", + "-DHAVE_RGUI", + "-DHAVE_MENU", + "-DHAVE_LIBRETRODB", + "-DIOS", + "-DHAVE_OPENGL", + "-DHAVE_FBO", + "-DHAVE_OPENGLES", + "-DHAVE_OPENGLES2", + "-DHAVE_GLSL", + "-DINLINE=inline", + "-D__LIBRETRO__", + "-DRARCH_MOBILE", + "-DHAVE_COREAUDIO", + "-DHAVE_DYNAMIC", + "-DHAVE_OVERLAY", + "-DHAVE_ZLIB", + "-DHAVE_RPNG", + "-DHAVE_RJPEG", + "-DHAVE_RBMP", + "-DHAVE_RTGA", + "-DHAVE_COCOATOUCH", + "-DHAVE_MAIN", + "-DSINC_LOWER_QUALITY", + "-DRARCH_INTERNAL", + "-DHAVE_THREADS", + "-DHAVE_FILTERS_BUILTIN", + "-DHAVE_MATERIALUI", + "-DHAVE_ZARCH", + "-DHAVE_XMB", + "-DHAVE_SHADERPIPELINE", + "-D_LZMA_UINT32_IS_ULONG", + "-DHAVE_MFI", + "-DHAVE_BTSTACK", + "-DHAVE_AVFOUNDATION", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + VALID_ARCHS = armv7; + WARNING_CFLAGS = "-Wno-invalid-source-encoding"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + 9204BE2A1D319EF300BD49DB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = armv7; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_CXX_LIBRARY = "libstdc++"; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; + ENABLE_BITCODE = NO; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = ( + ../../, + "../../libretro-common/include", + ); + INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + LD_NO_PIE = YES; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "-DNDEBUG", + "-DHAVE_NETPLAY", + "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_CORETEXT", + "-DHAVE_HID", + "-DHAVE_NETWORKING", + "-DHAVE_AVFOUNDATION", + "-DHAVE_GRIFFIN", + "-DHAVE_LANGEXTRA", + "-DHAVE_CHEEVOS", + "-DHAVE_IMAGEVIEWER", + "-DHAVE_CORELOCATION", + "-DHAVE_RGUI", + "-DHAVE_MENU", + "-DHAVE_LIBRETRODB", + "-DIOS", + "-DHAVE_OPENGL", + "-DHAVE_FBO", + "-DHAVE_OPENGLES", + "-DHAVE_OPENGLES2", + "-DHAVE_GLSL", + "-DINLINE=inline", + "-D__LIBRETRO__", + "-DRARCH_MOBILE", + "-DHAVE_COREAUDIO", + "-DHAVE_DYNAMIC", + "-DHAVE_OVERLAY", + "-DHAVE_ZLIB", + "-DHAVE_RPNG", + "-DHAVE_RJPEG", + "-DHAVE_RBMP", + "-DHAVE_RTGA", + "-DHAVE_COCOATOUCH", + "-DHAVE_MAIN", + "-DSINC_LOWER_QUALITY", + "-DRARCH_INTERNAL", + "-DHAVE_THREADS", + "-DHAVE_FILTERS_BUILTIN", + "-DHAVE_7ZIP", + "-DHAVE_MATERIALUI", + "-DHAVE_ZARCH", + "-DHAVE_XMB", + "-DHAVE_SHADERPIPELINE", + "-D_LZMA_UINT32_IS_ULONG", + "-DHAVE_MFI", + "-DHAVE_BTSTACK", + "-DHAVE_AVFOUNDATION", + ); + "OTHER_CFLAGS[arch=*]" = ( + "-DNS_BLOCK_ASSERTIONS=1", + "-DNDEBUG", + "-DHAVE_NETPLAY", + "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_CORETEXT", + "-DHAVE_HID", + "-DHAVE_NETWORKING", + "-DHAVE_AVFOUNDATION", + "-DHAVE_GRIFFIN", + "-DHAVE_LANGEXTRA", + "-DHAVE_CHEEVOS", + "-DHAVE_IMAGEVIEWER", + "-DHAVE_CORELOCATION", + "-DHAVE_RGUI", + "-DHAVE_MENU", + "-DHAVE_LIBRETRODB", + "-DIOS", + "-DHAVE_OPENGL", + "-DHAVE_FBO", + "-DHAVE_OPENGLES", + "-DHAVE_OPENGLES2", + "-DHAVE_GLSL", + "-DINLINE=inline", + "-D__LIBRETRO__", + "-DRARCH_MOBILE", + "-DHAVE_COREAUDIO", + "-DHAVE_DYNAMIC", + "-DRARCH_INTERNAL", + "-DHAVE_OVERLAY", + "-DHAVE_ZLIB", + "-DHAVE_RPNG", + "-DHAVE_RJPEG", + "-DHAVE_RBMP", + "-DHAVE_RTGA", + "-DHAVE_COCOATOUCH", + "-DHAVE_MAIN", + "-DSINC_LOWER_QUALITY", + "-DHAVE_THREADS", + "-DHAVE_FILTERS_BUILTIN", + "-DHAVE_7ZIP", + "-DHAVE_MATERIALUI", + "-DHAVE_ZARCH", + "-DHAVE_XMB", + "-DHAVE_SHADERPIPELINE", + "-D_LZMA_UINT32_IS_ULONG", + "-DHAVE_MFI", + "-DHAVE_BTSTACK", + "-DHAVE_AVFOUNDATION", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + VALID_ARCHS = armv7; + WARNING_CFLAGS = "-Wno-invalid-source-encoding"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; 96AFAE5216C1D4EA009DE44C /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -925,13 +1246,13 @@ ONLY_ACTIVE_ARCH = NO; OTHER_CFLAGS = ( "-DHAVE_NETPLAY", - "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_LANGEXTRA", + "-DHAVE_LANGEXTRA", "-DHAVE_CHEEVOS", "-DHAVE_IMAGEVIEWER", "-DHAVE_CORELOCATION", @@ -993,13 +1314,13 @@ "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", "-DHAVE_NETPLAY", - "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_LANGEXTRA", + "-DHAVE_LANGEXTRA", "-DHAVE_CHEEVOS", "-DHAVE_IMAGEVIEWER", "-DHAVE_CORELOCATION", @@ -1062,13 +1383,13 @@ ONLY_ACTIVE_ARCH = NO; OTHER_CFLAGS = ( "-DHAVE_NETPLAY", - "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_LANGEXTRA", + "-DHAVE_LANGEXTRA", "-DHAVE_CHEEVOS", "-DHAVE_IMAGEVIEWER", "-DHAVE_CORELOCATION", @@ -1140,13 +1461,13 @@ "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", "-DHAVE_NETPLAY", - "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_LANGEXTRA", + "-DHAVE_LANGEXTRA", "-DHAVE_CHEEVOS", "-DHAVE_IMAGEVIEWER", "-DHAVE_CORELOCATION", @@ -1190,13 +1511,13 @@ "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", "-DHAVE_NETPLAY", - "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_LANGEXTRA", + "-DHAVE_LANGEXTRA", "-DHAVE_CHEEVOS", "-DHAVE_IMAGEVIEWER", "-DHAVE_CORELOCATION", @@ -1265,6 +1586,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 9204BE281D319EF300BD49DB /* Build configuration list for PBXNativeTarget "RetroArchiOS10" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9204BE291D319EF300BD49DB /* Debug */, + 9204BE2A1D319EF300BD49DB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 96AFAE1F16C1D4EA009DE44C /* Build configuration list for PBXProject "RetroArch_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/pkg/apple/code-sign-cores.sh b/pkg/apple/code-sign-cores.sh new file mode 100755 index 0000000000..b2f2402a7f --- /dev/null +++ b/pkg/apple/code-sign-cores.sh @@ -0,0 +1,62 @@ +#!/bin/sh + +# WARNING: You may have to run Clean in Xcode after changing CODE_SIGN_IDENTITY! + +# Verify that $CODE_SIGN_IDENTITY is set +if [ -z "${CODE_SIGN_IDENTITY}" ] ; then + echo "CODE_SIGN_IDENTITY needs to be set for code-signing!" + + if [ "${CONFIGURATION}" = "Release" ] ; then + exit 1 + else + # Code-signing is optional for non-release builds. + exit 0 + fi +fi + +ITEMS="" + +CORES_DIR="${PROJECT_DIR}/iOS/modules" +echo "Cores dir: ${CORES_DIR}" +if [ -d "$CORES_DIR" ] ; then + CORES=$(find "${CORES_DIR}" -depth -type d -name "*.framework" -or -name "*.dylib" -or -name "*.bundle" | sed -e "s/\(.*framework\)/\1\/Versions\/A\//") + RESULT=$? + if [[ $RESULT != 0 ]] ; then + exit 1 + fi + + ITEMS="${CORES}" +fi + +# Prefer the expanded name, if available. +CODE_SIGN_IDENTITY_FOR_ITEMS="${EXPANDED_CODE_SIGN_IDENTITY_NAME}" +if [ "${CODE_SIGN_IDENTITY_FOR_ITEMS}" = "" ] ; then + # Fall back to old behavior. + CODE_SIGN_IDENTITY_FOR_ITEMS="${CODE_SIGN_IDENTITY}" +fi + +echo "Identity:" +echo "${CODE_SIGN_IDENTITY_FOR_ITEMS}" + +echo "Found:" +echo "${ITEMS}" + +# Change the Internal Field Separator (IFS) so that spaces in paths will not cause problems below. +SAVED_IFS=$IFS +IFS=$(echo -en "\n\b") + +# Loop through all items. +for ITEM in $ITEMS; +do + echo "Signing '${ITEM}'" + codesign --force --verbose --sign "${CODE_SIGN_IDENTITY_FOR_ITEMS}" "${ITEM}" + RESULT=$? + if [[ $RESULT != 0 ]] ; then + echo "Failed to sign '${ITEM}'." + IFS=$SAVED_IFS + exit 1 + fi +done + +# Restore $IFS. +IFS=$SAVED_IFS \ No newline at end of file diff --git a/pkg/apple/iOS/Info.plist b/pkg/apple/iOS/Info.plist index 2a782afa53..fe02442895 100644 --- a/pkg/apple/iOS/Info.plist +++ b/pkg/apple/iOS/Info.plist @@ -19,7 +19,7 @@ CFBundleExecutable - RetroArch + ${EXECUTABLE_NAME} CFBundleIcons CFBundleIcons~ipad diff --git a/ui/drivers/ui_cocoatouch.m b/ui/drivers/ui_cocoatouch.m index c694516846..c58cdf093b 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -296,6 +296,7 @@ enum get_ios_version(&major, &minor); +#if __IPHONE_OS_VERSION_MAX_ALLOWED < 70000 if ((major < 7) && [event respondsToSelector:@selector(_gsEvent)]) { /* Keyboard event hack for iOS versions prior to iOS 7. @@ -315,6 +316,7 @@ enum break; } } +#endif } @end