561
edits
(Stub out XCode instructions till they are up to date.) |
(→Unofficial SDK: Update cross-compilation instructions.) |
||
Line 5: | Line 5: | ||
'''TODO:''' Describe how to use XCode and create_project to compile for iOS using the official Apple toolchain. | '''TODO:''' Describe how to use XCode and create_project to compile for iOS using the official Apple toolchain. | ||
= | = Cross-Compilation = | ||
== Setup == | Please note binaries generated with these instructions only work with jailbroken devices. | ||
== Toolchain Setup == | |||
=== Toolchain === | === Toolchain === | ||
=== | First you need to set up a toolchain for cross-compilation. On our buildbot we use [https://github.com/lordhoto/ios-toolchain this toolchain]. It is based on LLVM/Clang and contains instructions on how to set it up. | ||
=== External libs === | |||
In the previously linked toolchain a script to compile all libraries used by the iOS version of ScummVM is contained. Please refer to the toolchain's README file on how to build them. | |||
== Building ScummVM == | |||
=== Configuration === | |||
=== | Before we can compile ScummVM we need to configure the source tree for building. This is usually only required once or when you want to alter build options. | ||
==== Choosing an iOS target ==== | |||
We feature two different iOS backends: | |||
* ''iphone'': Our legacy iOS backend, which supports all iOS3+ devices. | |||
* ''ios7'': Our modern iOS7+ backend, which only supports iOS7+ devices but features better integration for these. | |||
Depending on which backend you use you will need to use a different value for the ''TARGET'' environment variable. | |||
* For ''iphone'' use: | |||
< | <source lang="bash"> | ||
export TARGET=arm-apple-darwin9 | |||
</source> | |||
</ | |||
== | * For ''ios7'' use: | ||
<source lang="bash"> | |||
export TARGET=arm-apple-darwin11 | |||
</source> | |||
==== Setting up the Environment ==== | |||
< | <source lang="bash"> | ||
export PATH="$IOS_TOOLCHAIN_BASE/bin:$IOS_TOOLCHAIN_BASE/$TARGET/bin:$IOS_TOOLCHAIN_BASE/$TARGET/usr/bin:$PATH" | |||
export CPPFLAGS="-isystem $IOS_TOOLCHAIN_BASE/$TARGET/usr/include" | |||
export LDFLAGS="-L$IOS_TOOLCHAIN_BASE/$TARGET/usr/lib" | |||
</source> | |||
Where ''IOS_TOOLCHAIN_BASE'' contains the directory where you installed the toolchain. And ''TRAGET'' has been setup from the previous step. | |||
</ | |||
'''NOTE''': If you quit the shell you are using when configuring ScummVM and pick up compilation later, you will need to re-export only the ''PATH'' variable like described above. | |||
==== Configuring the Build ==== | |||
Then configure ScummVM for the iOS version you want to target. | |||
First, navigate to a path where you want your build files to be located (this can be the ScummVM root directory but does not have to be). | |||
Then run the following: | |||
<source lang="bash"> | |||
./path/to/scummvm/configure --host=ios7 --with-staticlib-prefix=$IOS_TOOLCHAIN_BASE/$TARGET/usr | |||
</source> | |||
Replace ''ios7'' with ''iphone'' if you want to build the older version of our iOS backend. | |||
=== Compilation === | |||
You can simple compile ScummVM with running make: | |||
<source lang="bash"> | |||
make iphone | |||
</source> | |||
If you simply want to test whether changes you made compile but do not plan to use the binary for deployment you can also simply run ''make''. | |||
< | Please note that if you want to deploy ScummVM on your iOS device you will need to generate a bundle file. For this run either: | ||
<source lang="bash"> | |||
</ | make ios7bundle | ||
</source> | |||
for the ''ios7'' backend. Or | |||
<source lang="bash"> | |||
make iphonebundle | |||
</source> | |||
for the ''iphone'' backend. | |||
Then simply upload the whole ScummVM.app directory to your device under the /Applications folder, and you're done! | Then simply upload the whole ScummVM.app directory to your device under the /Applications folder, and you're done! |
edits