101 lines
4.5 KiB
Plaintext
101 lines
4.5 KiB
Plaintext
|
Overview
|
||
|
========
|
||
|
|
||
|
The FreeRDP iOS port allows users to enjoy FreeRDP features on Apple iOS devices.
|
||
|
The application was written to be compatible with devices running iOS 4.3 or higher.
|
||
|
|
||
|
Build requirements
|
||
|
==================
|
||
|
|
||
|
The following prerequisites are required in order to build the iOS port:
|
||
|
|
||
|
- cmake version >= 2.8.9
|
||
|
- latest Xcode installed (>= 4.6)
|
||
|
- installed Provisioning Profile and iOS Developer Certificate for code signing
|
||
|
(not required for simulator builds)
|
||
|
- pre-build static OpenSSL libraries (see below)
|
||
|
|
||
|
FreeRDP requires OpenSSL libraries for building but they are not part of the iOS SDK and therefore they need to be pre-build manually.
|
||
|
There are various versions and builds of static OpenSSL libraries floating around like iOSPorts.
|
||
|
At the time of writing we have tested and used a small script (OpenSSL-DownloadAndBuild.command) that downloads and builds armv7, armv7s and i386 versions of the OpenSSL 1.0.0e libraries.
|
||
|
|
||
|
If you don't care about modifying the OpenSSL build you can run the following command in the FreeRDP root directory:
|
||
|
|
||
|
./scripts/OpenSSL-DownloadAndBuild.command
|
||
|
|
||
|
The output of the script will be found in external/openssl/. In case you want a
|
||
|
different install/build directory you specify it as first parameter:
|
||
|
|
||
|
./scripts/OpenSSL-DownloadAndBuild.command /tmp/
|
||
|
|
||
|
In the example above the output can then be found in /tmp/openssl.
|
||
|
|
||
|
The script uses oldest iOS/iPhoneSimulator SDK found on the build machine per default. If it is required to build against a specific SDK version
|
||
|
the variable SDK_VERSION can be used to specify it. The minimum SDK version that should be used can be set with MIN_SDK_VERSION within the script.
|
||
|
|
||
|
When the script is finished you will find libcrypto.a and libssl.at, both universal libraries containing all openssl/lib
|
||
|
subfolder in the specified
|
||
|
install directory (external per default)
|
||
|
|
||
|
When the script finishes you will find libcrypto.a and libssl.a, both universal
|
||
|
binary libraries containing arm and i386 targets in order to compile FreeRDP for
|
||
|
iOS devices and the simulator, in the lib subfolder of your installation
|
||
|
directory.
|
||
|
|
||
|
If you build OpenSSL youself or with an install directory specified you need to set FREERDP_IOS_EXTERNAL_SSL_PATH when running cmake.
|
||
|
|
||
|
|
||
|
Building
|
||
|
========
|
||
|
|
||
|
Run the following commands in the top level FreeRDP directory:
|
||
|
|
||
|
cmake -DCMAKE_TOOLCHAIN_FILE=cmake/iOSToolchain.cmake -GXcode
|
||
|
|
||
|
This command will create a XCode project in the FreeRDP root folder called FreeRDP.xcodeproj.
|
||
|
Open the project in XCode and modify, build or run the app.
|
||
|
|
||
|
Alternatively you can also build the project from the command line using xcodebuild:
|
||
|
|
||
|
xcodebuild -project FreeRDP.xcodeproj -configuration Debug -sdk iphoneos6.1
|
||
|
|
||
|
or with cmake --build . in your build directory.
|
||
|
|
||
|
Notes:
|
||
|
|
||
|
* XCode, by default will build the application into its derived data location (usually in ~/Library/Developer/...).
|
||
|
If you want to specify an output directory add CONFIGURATION_BUILD_DIR=<output-path-here> to the end of above command line.
|
||
|
|
||
|
* If using XCode choose "Open Other" from the welcome screen, browse to the FreeRDP root directory and select FreeRDP.xcodeproj. Alternatively you can
|
||
|
also start it with "open FreeRDP.xcodeproj".
|
||
|
|
||
|
* If you switch between platforms (OS and SIMULATOR) please remove CMakeCache.txt and CMakeFiles/ before calling cmake again.
|
||
|
Otherwise build errors might occur (this seems to be a bug with cmake or the cmake scripts). To switch between platforms do:
|
||
|
|
||
|
rm CMakeCache.txt
|
||
|
rm -rf CMakeFiles/
|
||
|
|
||
|
before you run a new cmake command with the desired platform.
|
||
|
|
||
|
|
||
|
cmake variables
|
||
|
===============
|
||
|
|
||
|
CMAKE_TOOLCHAIN_FILE
|
||
|
* the toolchain file to use must be cmake/iOSToolchain.cmake
|
||
|
|
||
|
IOS_PLATFORM (OS (default), SIMULATOR)
|
||
|
* the platform for which to build iFreeRDP. OS compiles for iOS devices (using armv7 and armv7s ABIs) and SIMULATOR compiles for the iOS Simulator (i386)
|
||
|
|
||
|
CMAKE_IOS_DEVELOPER_ROOT (used by toolchain file)
|
||
|
* absolute path to the iOS developer platform (i.e. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer) the toolchain file will usually auto-detect the correct Developer platform depending on IOS_PLATFORM
|
||
|
|
||
|
CMAKE_IOS_SDK_ROOT (used by toolchain file)
|
||
|
* absolute path to the iOS SDK (i.e. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk) the toolchain file will usually auto-detect the correct SDK, depending on IOS_PLATFORM
|
||
|
|
||
|
FREERDP_IOS_EXTERNAL_SSL_PATH (used by FindOpenSSL)
|
||
|
* absolut root path to the pre-built static OpenSSL libraries
|
||
|
|
||
|
CODE_SIGN_IDENTITY
|
||
|
* specify the identity to sign the code with
|