From 71c14a53e1358eee3eaf441696873cc3f554ebc3 Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Mon, 25 Mar 2013 09:13:38 -0400 Subject: [PATCH 01/18] ignore tmp under the ios directory --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 18157fca3b..4d06d28530 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,4 @@ profile DerivedData .idea/ *.hmap +ios/tmp \ No newline at end of file From c04d96a59bfd6fa582d63178650b756246e1028c Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Mon, 25 Mar 2013 09:17:56 -0400 Subject: [PATCH 02/18] nestopia and snes9x-next build scripts These get built in a tmp directory under ios. Steps: * Clone (or pull master) repo * build core * move core to modules directory --- ios/script/cores/nestopia | 21 +++++++++++++++++++++ ios/script/cores/snes9x_next | 19 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100755 ios/script/cores/nestopia create mode 100755 ios/script/cores/snes9x_next diff --git a/ios/script/cores/nestopia b/ios/script/cores/nestopia new file mode 100755 index 0000000000..cace20b526 --- /dev/null +++ b/ios/script/cores/nestopia @@ -0,0 +1,21 @@ +#!/bin/sh + +cd tmp + +if [ -d "nestopia" ] +then + echo "Updating Nestopia" + cd nestopia + git pull origin master +else + git clone git@github.com:libretro/nestopia.git + cd nestopia +fi + +cd libretro + +echo "Building Nestopia" +make clean +make -f Makefile platform=ios +mv nestopia_libretro.dylib ../../../modules +cd ../../../ diff --git a/ios/script/cores/snes9x_next b/ios/script/cores/snes9x_next new file mode 100755 index 0000000000..ebe8201fb8 --- /dev/null +++ b/ios/script/cores/snes9x_next @@ -0,0 +1,19 @@ +#!/bin/sh + +cd tmp + +if [ -d "snes9x-next" ] +then + echo "Updating Snes9x-next" + cd snes9x-next + git pull origin master +else + git clone git@github.com:libretro/snes9x-next.git + cd snes9x-next +fi + +echo "Building Snes9x-next" +make -f Makefile.libretro clean +make -f Makefile.libretro platform=ios +mv snes9x_next_libretro.dylib ../../modules +cd ../../ From 845b87fbba0488d8e7d9f7fe9db7184b5954650c Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Mon, 25 Mar 2013 09:18:18 -0400 Subject: [PATCH 03/18] main core build script, calls all the build scripts for all of the cores --- ios/script/build_cores | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100755 ios/script/build_cores diff --git a/ios/script/build_cores b/ios/script/build_cores new file mode 100755 index 0000000000..67383d38f6 --- /dev/null +++ b/ios/script/build_cores @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e + +export IOSSDK=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/ + +test ! -d "tmp" && { + mkdir tmp +} + +script/cores/nestopia +script/cores/snes9x_next + From 2926e4533df8fb3061eaa96dcd0450b9368a3f69 Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Mon, 25 Mar 2013 09:18:29 -0400 Subject: [PATCH 04/18] removes the tmp directory --- ios/script/clean | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100755 ios/script/clean diff --git a/ios/script/clean b/ios/script/clean new file mode 100755 index 0000000000..2a05764296 --- /dev/null +++ b/ios/script/clean @@ -0,0 +1,7 @@ +#!/bin/sh + +set -e + +test -d "tmp" && { + rm -Rf tmp +} From 5cff8a9b39941a28d6307762c11c4a70ccc9b444 Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Mon, 25 Mar 2013 09:23:56 -0400 Subject: [PATCH 05/18] ignore all dynamic libraries in ios/modules --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 4d06d28530..211294259f 100644 --- a/.gitignore +++ b/.gitignore @@ -45,4 +45,5 @@ profile DerivedData .idea/ *.hmap -ios/tmp \ No newline at end of file +ios/tmp +ios/modules/*.dylib From bf810b0b1e9df5636d2151190496fa2990246888 Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Mon, 25 Mar 2013 11:37:41 -0400 Subject: [PATCH 06/18] set the codesigning setting for Release for Distribution --- ios/RetroArch.xcodeproj/project.pbxproj | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/ios/RetroArch.xcodeproj/project.pbxproj b/ios/RetroArch.xcodeproj/project.pbxproj index 26264379a1..d0a925d98c 100644 --- a/ios/RetroArch.xcodeproj/project.pbxproj +++ b/ios/RetroArch.xcodeproj/project.pbxproj @@ -497,9 +497,9 @@ "-std=gnu99", "-DHAVE_COREAUDIO", "-DHAVE_FBO", - "-DHAVE_OVERLAY", - "-DHAVE_ZLIB", - "-DWANT_MINIZ", + "-DHAVE_OVERLAY", + "-DHAVE_ZLIB", + "-DWANT_MINIZ", ); SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -545,9 +545,9 @@ "-std=gnu99", "-DHAVE_COREAUDIO", "-DHAVE_FBO", - "-DHAVE_OVERLAY", + "-DHAVE_OVERLAY", "-DHAVE_ZLIB", - "-DWANT_MINIZ", + "-DWANT_MINIZ", ); SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -559,6 +559,7 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_CXX_LIBRARY = "libstdc++"; + CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "RetroArch/RetroArch-Prefix.pch"; INFOPLIST_FILE = "RetroArch/RetroArch-Info.plist"; @@ -567,6 +568,7 @@ "$(inherited)", "\"$(SRCROOT)\"", "\"$(SRCROOT)/RetroArch/input/BTStack\"", + "\"$(SRCROOT)/Assets\"", ); OTHER_CFLAGS = ( "-DHAVE_RARCH_MAIN_WRAP", @@ -588,7 +590,7 @@ "-DHAVE_DYNAMIC", "-DHAVE_OVERLAY", "-DHAVE_ZLIB", - "-DWANT_MINIZ", + "-DWANT_MINIZ", ); PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; @@ -599,6 +601,9 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_CXX_LIBRARY = "libstdc++"; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "RetroArch/RetroArch-Prefix.pch"; INFOPLIST_FILE = "RetroArch/RetroArch-Info.plist"; @@ -607,6 +612,7 @@ "$(inherited)", "\"$(SRCROOT)\"", "\"$(SRCROOT)/RetroArch/input/BTStack\"", + "\"$(SRCROOT)/Assets\"", ); OTHER_CFLAGS = ( "-DNS_BLOCK_ASSERTIONS=1", @@ -630,9 +636,11 @@ "-DHAVE_DYNAMIC", "-DHAVE_OVERLAY", "-DHAVE_ZLIB", - "-DWANT_MINIZ", + "-DWANT_MINIZ", ); PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; WRAPPER_EXTENSION = app; }; name = Release; From 50af16e2e74ee48e4c544aee443c1db57c6b2d8e Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Mon, 25 Mar 2013 11:38:23 -0400 Subject: [PATCH 07/18] ignore ios provisioning files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 211294259f..75bd3dcee0 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,4 @@ DerivedData *.hmap ios/tmp ios/modules/*.dylib +ios/*.mobileprovision \ No newline at end of file From 80678332eccaeb222938331005914a82bf182f3e Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Mon, 25 Mar 2013 11:38:39 -0400 Subject: [PATCH 08/18] add build config file --- ios/script/build.config | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 ios/script/build.config diff --git a/ios/script/build.config b/ios/script/build.config new file mode 100644 index 0000000000..6797abfe5f --- /dev/null +++ b/ios/script/build.config @@ -0,0 +1,3 @@ +CODE_SIGN_IDENTITY="iPhone Distribution" +PROVISIONING="distribution.mobileprovision" +BUILD_PATH="$PWD/build/Release-iphoneos" From 56c1a5e0f1cebf39b2392c1495e19ef9ed434553 Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Mon, 25 Mar 2013 11:44:00 -0400 Subject: [PATCH 09/18] build the ios app * import the build config * clean the build * build the app * codesign the emulator core dynamic libraries * package the app into an IPA with the preferenced mobile provisioning --- ios/script/build_app | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100755 ios/script/build_app diff --git a/ios/script/build_app b/ios/script/build_app new file mode 100755 index 0000000000..e0348337fa --- /dev/null +++ b/ios/script/build_app @@ -0,0 +1,15 @@ +#!/bin/sh + +set -e + +. script/build.config + +xcodebuild clean +rm -rf build + +xcodebuild -verbose -sdk iphoneos -configuration Release + +codesign -fs "$CODE_SIGN_IDENTITY" "$BUILD_PATH/RetroArch.app/modules/snes9x_next_libretro.dylib" +codesign -fs "$CODE_SIGN_IDENTITY" "$BUILD_PATH/RetroArch.app/modules/nestopia_libretro.dylib" + +xcrun -sdk iphoneos PackageApplication "$BUILD_PATH/RetroArch.app" -o "$BUILD_PATH/RetroArch.ipa" --sign "$CODE_SIGN_IDENTITY" --embed "$PROVISIONING" From e90ef21565dbbd71e04811e6b596d69d890cfefb Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Mon, 25 Mar 2013 12:08:34 -0400 Subject: [PATCH 10/18] general overall build script --- ios/script/build | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100755 ios/script/build diff --git a/ios/script/build b/ios/script/build new file mode 100755 index 0000000000..88ab3dfc33 --- /dev/null +++ b/ios/script/build @@ -0,0 +1,6 @@ +#!/bin/sh + +set -e + +script/build_cores +script/build_app From 01940676eae88b5961b89020a9b086b6cd27b23f Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Mon, 25 Mar 2013 12:08:39 -0400 Subject: [PATCH 11/18] README --- ios/README.md | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 ios/README.md diff --git a/ios/README.md b/ios/README.md new file mode 100644 index 0000000000..6a4128c324 --- /dev/null +++ b/ios/README.md @@ -0,0 +1,82 @@ +# RetroArch for iOS + +RetroArch for iOS can be run directly on your device without the need for jailbreaking. To do this, you will need a few things: + +* Your own iOS Apple developer account +* Your developer account set up on your computer (your certs, etc.) +* A Distribution provisioning profile for RetroArch (a wildcard profile is fine and suggested) + +Once you have all of this stuff, getting RetroArch on a non-jailbroken device is pretty simple. + +## Config + +RetroArch needs to know a couple things when building the app. You can configure these under `ios/script/build.config` inside the RetroArch repo. Once you initially clone down the repo, go into this file and make the changes. + +### CODE_SIGN_IDENTITY + +This is the identity that will be used when signing the app after it is built. Under normal circumstance, you shouldn't have to change this. But if you have multiple Apple dev accounts on your computer, you will have to be more specific. + +``` +CODE_SIGN_IDENTITY="iPhone Distribution: Bill Cosby" +``` + +Adding the name of the account will make sure it uses the exact codesigning identity. + +### PROVISIONING + +Before you build the app, you'll need to download the provisioning profile you want to use for the app into the `ios` directory. Just drop it in there, and add the file name to the config. + +When RetroArch is built into an IPA, it will embed this provisioning profile into the IPA so you can just install the IPA right onto your phone. + + +## Building + +After you've configured the right things, you're ready for building. You'll want to run these from the `ios` directory of the RetroArch project. + +### Everything + +To build everything at once, just run: + +```sh +script/build +``` + +This will build the emulator cores, and the RetroArch iOS app. + +### Emulator Cores + +If you'd like to build just the emulator cores, run: + +```sh +script/build_cores +``` + +This will clone down their repos, build them, and copy them into the RetroArch project. + + +### RetroArch iOS app + +If you'd like to just build the RetroArch iOS app, run: + +```sh +script/build_app +``` + +This will build the iOS app, codesign everything that needs to, and package it into a distributable IPA. + +## Cleaning + +If you want to wipe everything out and start from scratch, run: + +```sh +script/clean +``` + +This will delete all the emulator core repos. The next time you build these, they will do a fresh clone on their repos. + +## Roms + +iTunes File Sharing is enabled on RetroArch. You can simply drag your rom files into the RetroArch app. They will be available the next time you launch the app. + +Alternatively, you can use something like [iExplorer](http://www.macroplant.com/iexplorer) to manually copy files over. Doing this will give you the benefit of being able to use diretories, since iTunes File Sharing does not support directories. + From 8d30aba4d7d2ffb1175b139dde94490a53b95020 Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Mon, 25 Mar 2013 12:29:46 -0400 Subject: [PATCH 12/18] give the ability to disable codesigning so this build stack can hopefully be helpful to jailbreak distroing too --- ios/script/build_app | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ios/script/build_app b/ios/script/build_app index e0348337fa..f403f0586c 100755 --- a/ios/script/build_app +++ b/ios/script/build_app @@ -9,7 +9,9 @@ rm -rf build xcodebuild -verbose -sdk iphoneos -configuration Release -codesign -fs "$CODE_SIGN_IDENTITY" "$BUILD_PATH/RetroArch.app/modules/snes9x_next_libretro.dylib" -codesign -fs "$CODE_SIGN_IDENTITY" "$BUILD_PATH/RetroArch.app/modules/nestopia_libretro.dylib" +if ! $nocodesign ; then + codesign -fs "$CODE_SIGN_IDENTITY" "$BUILD_PATH/RetroArch.app/modules/snes9x_next_libretro.dylib" + codesign -fs "$CODE_SIGN_IDENTITY" "$BUILD_PATH/RetroArch.app/modules/nestopia_libretro.dylib" -xcrun -sdk iphoneos PackageApplication "$BUILD_PATH/RetroArch.app" -o "$BUILD_PATH/RetroArch.ipa" --sign "$CODE_SIGN_IDENTITY" --embed "$PROVISIONING" + xcrun -sdk iphoneos PackageApplication "$BUILD_PATH/RetroArch.app" -o "$BUILD_PATH/RetroArch.ipa" --sign "$CODE_SIGN_IDENTITY" --embed "$PROVISIONING" +fi From 6945712eada71a4adadd601726727a9893472eb8 Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Mon, 25 Mar 2013 12:34:01 -0400 Subject: [PATCH 13/18] add an announcement to explain where they can find the app --- ios/script/build_app | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ios/script/build_app b/ios/script/build_app index f403f0586c..32dd42c944 100755 --- a/ios/script/build_app +++ b/ios/script/build_app @@ -15,3 +15,7 @@ if ! $nocodesign ; then xcrun -sdk iphoneos PackageApplication "$BUILD_PATH/RetroArch.app" -o "$BUILD_PATH/RetroArch.ipa" --sign "$CODE_SIGN_IDENTITY" --embed "$PROVISIONING" fi + + +echo "######### RetroArch build Complete!! #########" +echo "You can find the resulting app in the $BUILD_PATH directory.\n" From b20c19b4d02f390e9a2d0159d4101bade36166f6 Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Mon, 25 Mar 2013 12:34:57 -0400 Subject: [PATCH 14/18] explain where the app will be after being built --- ios/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ios/README.md b/ios/README.md index 6a4128c324..3a32f28fb5 100644 --- a/ios/README.md +++ b/ios/README.md @@ -64,6 +64,8 @@ script/build_app This will build the iOS app, codesign everything that needs to, and package it into a distributable IPA. +Once completed, you can find the IPA inside the `ios/build/Release-iphoneos` directory. + ## Cleaning If you want to wipe everything out and start from scratch, run: From 406ba52e4d6fd348b7056132d624ee861c3d3f06 Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Tue, 26 Mar 2013 10:36:21 -0400 Subject: [PATCH 15/18] drop all the build scripts, these belong in libretro-super --- ios/script/build_app | 21 --------------------- ios/script/build_cores | 13 ------------- ios/script/clean | 7 ------- ios/script/cores/nestopia | 21 --------------------- ios/script/cores/snes9x_next | 19 ------------------- 5 files changed, 81 deletions(-) delete mode 100755 ios/script/build_app delete mode 100755 ios/script/build_cores delete mode 100755 ios/script/clean delete mode 100755 ios/script/cores/nestopia delete mode 100755 ios/script/cores/snes9x_next diff --git a/ios/script/build_app b/ios/script/build_app deleted file mode 100755 index 32dd42c944..0000000000 --- a/ios/script/build_app +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -set -e - -. script/build.config - -xcodebuild clean -rm -rf build - -xcodebuild -verbose -sdk iphoneos -configuration Release - -if ! $nocodesign ; then - codesign -fs "$CODE_SIGN_IDENTITY" "$BUILD_PATH/RetroArch.app/modules/snes9x_next_libretro.dylib" - codesign -fs "$CODE_SIGN_IDENTITY" "$BUILD_PATH/RetroArch.app/modules/nestopia_libretro.dylib" - - xcrun -sdk iphoneos PackageApplication "$BUILD_PATH/RetroArch.app" -o "$BUILD_PATH/RetroArch.ipa" --sign "$CODE_SIGN_IDENTITY" --embed "$PROVISIONING" -fi - - -echo "######### RetroArch build Complete!! #########" -echo "You can find the resulting app in the $BUILD_PATH directory.\n" diff --git a/ios/script/build_cores b/ios/script/build_cores deleted file mode 100755 index 67383d38f6..0000000000 --- a/ios/script/build_cores +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -set -e - -export IOSSDK=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/ - -test ! -d "tmp" && { - mkdir tmp -} - -script/cores/nestopia -script/cores/snes9x_next - diff --git a/ios/script/clean b/ios/script/clean deleted file mode 100755 index 2a05764296..0000000000 --- a/ios/script/clean +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -set -e - -test -d "tmp" && { - rm -Rf tmp -} diff --git a/ios/script/cores/nestopia b/ios/script/cores/nestopia deleted file mode 100755 index cace20b526..0000000000 --- a/ios/script/cores/nestopia +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -cd tmp - -if [ -d "nestopia" ] -then - echo "Updating Nestopia" - cd nestopia - git pull origin master -else - git clone git@github.com:libretro/nestopia.git - cd nestopia -fi - -cd libretro - -echo "Building Nestopia" -make clean -make -f Makefile platform=ios -mv nestopia_libretro.dylib ../../../modules -cd ../../../ diff --git a/ios/script/cores/snes9x_next b/ios/script/cores/snes9x_next deleted file mode 100755 index ebe8201fb8..0000000000 --- a/ios/script/cores/snes9x_next +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -cd tmp - -if [ -d "snes9x-next" ] -then - echo "Updating Snes9x-next" - cd snes9x-next - git pull origin master -else - git clone git@github.com:libretro/snes9x-next.git - cd snes9x-next -fi - -echo "Building Snes9x-next" -make -f Makefile.libretro clean -make -f Makefile.libretro platform=ios -mv snes9x_next_libretro.dylib ../../modules -cd ../../ From f42078363db94e4dc9df0b2e876bcfe1cca4499d Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Tue, 26 Mar 2013 10:36:40 -0400 Subject: [PATCH 16/18] script/build will do the only thing that matters, the app building and codesigning --- ios/script/build | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/ios/script/build b/ios/script/build index 88ab3dfc33..32dd42c944 100755 --- a/ios/script/build +++ b/ios/script/build @@ -2,5 +2,20 @@ set -e -script/build_cores -script/build_app +. script/build.config + +xcodebuild clean +rm -rf build + +xcodebuild -verbose -sdk iphoneos -configuration Release + +if ! $nocodesign ; then + codesign -fs "$CODE_SIGN_IDENTITY" "$BUILD_PATH/RetroArch.app/modules/snes9x_next_libretro.dylib" + codesign -fs "$CODE_SIGN_IDENTITY" "$BUILD_PATH/RetroArch.app/modules/nestopia_libretro.dylib" + + xcrun -sdk iphoneos PackageApplication "$BUILD_PATH/RetroArch.app" -o "$BUILD_PATH/RetroArch.ipa" --sign "$CODE_SIGN_IDENTITY" --embed "$PROVISIONING" +fi + + +echo "######### RetroArch build Complete!! #########" +echo "You can find the resulting app in the $BUILD_PATH directory.\n" From ffc3b4c2113b1388efeb4d1fc861c49e7c064e5c Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Fri, 5 Apr 2013 13:45:32 -0400 Subject: [PATCH 17/18] update the README to reflect emulator core building and removal of the other scripts --- ios/README.md | 56 +++++++++++++++++++++------------------------------ 1 file changed, 23 insertions(+), 33 deletions(-) diff --git a/ios/README.md b/ios/README.md index 3a32f28fb5..c2246a8e67 100644 --- a/ios/README.md +++ b/ios/README.md @@ -33,49 +33,39 @@ When RetroArch is built into an IPA, it will embed this provisioning profile int After you've configured the right things, you're ready for building. You'll want to run these from the `ios` directory of the RetroArch project. -### Everything +### Emulator Cores -To build everything at once, just run: +Before building the app, you'll need to build the emulator cores. + +You'll need to clone down the [libretro/libretro-super](https://github.com/libretro/libretro-super) repo into the same directory where you cloned this repo. + +Your directories should look like this: + +``` +your-repos-dir/libretro-super +your-repos-dir/RetroArch +``` + +Run the libretro-super iOS build script to build the emulator cores. + +```sh +./libretro-build-ios.sh +``` + +This will clone down their repos, build them, and copy them into the appropriate directory for RetroArch iOS. + +### Build RetroArch iOS app + +Now just run: ```sh script/build ``` -This will build the emulator cores, and the RetroArch iOS app. - -### Emulator Cores - -If you'd like to build just the emulator cores, run: - -```sh -script/build_cores -``` - -This will clone down their repos, build them, and copy them into the RetroArch project. - - -### RetroArch iOS app - -If you'd like to just build the RetroArch iOS app, run: - -```sh -script/build_app -``` - This will build the iOS app, codesign everything that needs to, and package it into a distributable IPA. Once completed, you can find the IPA inside the `ios/build/Release-iphoneos` directory. -## Cleaning - -If you want to wipe everything out and start from scratch, run: - -```sh -script/clean -``` - -This will delete all the emulator core repos. The next time you build these, they will do a fresh clone on their repos. - ## Roms iTunes File Sharing is enabled on RetroArch. You can simply drag your rom files into the RetroArch app. They will be available the next time you launch the app. From fb5c0ae490a58fd2b6b6c2bc2b4de502fe3af848 Mon Sep 17 00:00:00 2001 From: Jon Maddox Date: Fri, 5 Apr 2013 14:58:09 -0400 Subject: [PATCH 18/18] codesign any dynamic lib inside /modules --- ios/script/build | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ios/script/build b/ios/script/build index 32dd42c944..19a8bf84c0 100755 --- a/ios/script/build +++ b/ios/script/build @@ -10,9 +10,7 @@ rm -rf build xcodebuild -verbose -sdk iphoneos -configuration Release if ! $nocodesign ; then - codesign -fs "$CODE_SIGN_IDENTITY" "$BUILD_PATH/RetroArch.app/modules/snes9x_next_libretro.dylib" - codesign -fs "$CODE_SIGN_IDENTITY" "$BUILD_PATH/RetroArch.app/modules/nestopia_libretro.dylib" - + codesign -fs "$CODE_SIGN_IDENTITY" "$BUILD_PATH/RetroArch.app/modules/*.dylib" xcrun -sdk iphoneos PackageApplication "$BUILD_PATH/RetroArch.app" -o "$BUILD_PATH/RetroArch.ipa" --sign "$CODE_SIGN_IDENTITY" --embed "$PROVISIONING" fi