• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

DoxyfileH A D12-Jan-202262 KiB1,5161,084

PrintFormatSpecifiers.mdH A D12-Jan-20226 KiB132102

README.androidH A D12-Jan-20222.6 KiB8764

README.iosH A D12-Jan-20224.5 KiB10164

README.macOSH A D12-Jan-2022412 86

README.timezonesH A D12-Jan-2022371 139

valgrind.suppH A D12-Jan-20221.7 KiB133120

wlog.mdH A D12-Jan-20224.1 KiB152108

README.android

1Overview
2========
3
4The FreeRDP Android port consists of three parts:
5* Android Java GUI (client/Android/Studio)
6* FreeRDP library and its dependencies
7* JNI bindings (client/Android/android_freerdp.c
8  and client/Android/Studio/freeRDPCore/src/main/java/com/freerdp/freerdpcore/services/LibFreeRDP.java)
9
10Build requirements
11=================
12
13For the Android port some additional dependencies need to be fulfilled:
14
15* for JNI
16- CMake >= 3.0
17- Android NDK (>= r9)
18
19* for the Java GUI
20- Android SDK
21
22FreeRDP requires openssl libraries for building but they are not part of the
23Android NDK and therefore they need to be prebuild manually.
24
25For jpeg support https://github.com/akallabeth/jpeg8d has been tested and used.
26However, any other static builds should work as well.
27
28Build native libraries:
29======================
30From the project root run the build script
31./scripts/android-build-freerdp.sh --ndk <ANDROID_NDK> --sdk <ANDROID_SDK>
32Set ANDROID_NDK and ANDROID_SDK to the absolute paths on your machine.
33This will fetch sources from git and build OpenSSL, OpenH264, libJPEG.
34The native FreeRDP libraries will also be build.
35
36Currently the default script builds for:
37* armeabi
38* armeabi-v7a
39* x86
40* mips
41* arm64-v8a
42* x86_64
43* mips64
44
45When the script is finished the libraries are ready for android studio to
46be picked up in client/Android/Studio/freeRDPCore/src/main/jniLibs
47
48The default configuration build configuration can be found in
49./scripts/android-build.conf and is configured to provide debug builds.
50They are limited to API level 21 and above.
51
52If release binaries (and old android API support) are required, build 32 bit architectures with
53./scripts/android-build-freerdp.sh --ndk <ANDROID_NDK> --sdk <ANDROID_SDK> --conf ./scripts/android-build-32.conf
54and 64 bit architectures with
55./scripts/android-build-freerdp.sh --ndk <ANDROID_NDK> --sdk <ANDROID_SDK> --conf ./scripts/android-build-64.conf
56
57Building the APK (Android Studio)
58================
59
60* Import the folder client/Android/Studio in Android Studio
61* You are ready to go
62
63Building the APK (gradle)
64================
65
66* change to directory client/Android/Studio
67* run ./gradlew build to build
68* run ./gradlew tasks for other gradle options
69
70Development
71===========
72
73Updating JNI
74------------
75
76Whenever the FreeRDP API changes or you need some extra functionality in your Java
77GUI the JNI needs to be updated.
78
79The JNI functions are defined in client/Android/android_freerdp.c
80Add the new functions to the methods struct.
81
82* edit client/Android/src/com/freerdp/afreerdp/services/LibFreeRDP.Java to
83  reflect your changes
84* edit client/Android/android_freerdp.c and adjust the methods struct to reflect
85  the changes made.
86
87

README.ios

1Overview
2========
3
4The FreeRDP iOS port allows users to enjoy FreeRDP features on Apple iOS devices.
5The application was written to be compatible with devices running iOS 4.3 or higher.
6
7Build requirements
8==================
9
10The following prerequisites are required in order to build the iOS port:
11
12- cmake version >= 2.8.9
13- latest Xcode installed (>= 4.6)
14- installed Provisioning Profile and iOS Developer Certificate for code signing
15	(not required for simulator builds)
16- pre-build static OpenSSL libraries (see below)
17
18FreeRDP requires OpenSSL libraries for building but they are not part of the iOS SDK and therefore they need to be pre-build manually.
19There are various versions and builds of static OpenSSL libraries floating around like iOSPorts.
20At 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.
21
22If you don't care about modifying the OpenSSL build you can run the following command in the FreeRDP root directory:
23
24./scripts/OpenSSL-DownloadAndBuild.command
25
26The output of the script will be found in external/openssl/. In case you want a
27different install/build directory you specify it as first parameter:
28
29./scripts/OpenSSL-DownloadAndBuild.command  /tmp/
30
31In the example above the output can then be found in /tmp/openssl.
32
33The script uses oldest iOS/iPhoneSimulator SDK found on the build machine per default. If it is required to build against a specific SDK version
34the 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.
35
36When the script is finished you will find libcrypto.a and libssl.at, both universal libraries containing all openssl/lib
37subfolder in the specified
38install directory (external per default)
39
40When the script finishes you will find libcrypto.a and libssl.a, both universal
41binary libraries containing arm and i386 targets in order to compile FreeRDP for
42iOS devices and the simulator, in the lib subfolder of your installation
43directory.
44
45If you build OpenSSL youself or with an install directory specified you need to set FREERDP_IOS_EXTERNAL_SSL_PATH when running cmake.
46
47
48Building
49========
50
51Run the following commands in the top level FreeRDP directory:
52
53cmake -DCMAKE_TOOLCHAIN_FILE=cmake/iOSToolchain.cmake -GXcode
54
55This command will create a XCode project in the FreeRDP root folder called FreeRDP.xcodeproj.
56Open the project in XCode and modify, build or run the app.
57
58Alternatively you can also build the project from the command line using xcodebuild:
59
60xcodebuild -project FreeRDP.xcodeproj -configuration Debug -sdk iphoneos6.1
61
62or with cmake --build . in your build directory.
63
64Notes:
65
66* XCode, by default will build the application into its derived data location (usually in ~/Library/Developer/...).
67If you want to specify an output directory add CONFIGURATION_BUILD_DIR=<output-path-here> to the end of above command line.
68
69* If using XCode choose "Open Other" from the welcome screen, browse to the FreeRDP root directory and select FreeRDP.xcodeproj. Alternatively you can
70  also start it with "open FreeRDP.xcodeproj".
71
72* If you switch between platforms (OS and SIMULATOR) please remove CMakeCache.txt and CMakeFiles/ before calling cmake again.
73  Otherwise build errors might occur (this seems to be a bug with cmake or the cmake scripts). To switch between platforms do:
74
75  rm CMakeCache.txt
76  rm -rf CMakeFiles/
77
78  before you run a new cmake command with the desired platform.
79
80
81cmake variables
82===============
83
84CMAKE_TOOLCHAIN_FILE
85* the toolchain file to use must be cmake/iOSToolchain.cmake
86
87IOS_PLATFORM (OS (default), SIMULATOR)
88* 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)
89
90CMAKE_IOS_DEVELOPER_ROOT (used by toolchain file)
91* 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
92
93CMAKE_IOS_SDK_ROOT (used by toolchain file)
94* 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
95
96FREERDP_IOS_EXTERNAL_SSL_PATH (used by FindOpenSSL)
97* absolut root path to the pre-built static OpenSSL libraries
98
99CODE_SIGN_IDENTITY
100* specify the identity to sign the code with
101

README.macOS

1Starting with "El Capitan" Apple removed the openssl headers. Therefore it's
2required to build openssl manually upfront. For example by using MacPorts or Homebrew.
3To build FreeRDP against this library it's required to set the PKG_CONFIG_PATH
4pointing to the openssl root directory befor building.
5For example with brew it would look like this:
6
7export PKG_CONFIG_PATH=$(brew --prefix)/opt/openssl/lib/pkgconfig
8

README.timezones

1On an up to date windows machine run the following scripts (from checkout root):
2
3csi.exe scripts/TimeZones.csx
4csi.exe scripts/WindowsZones.csx
5
6After running the scripts check
7 * winpr/libwinpr/timezone/TimeZones.c
8 * winpr/libwinpr/timezone/WindowsZones.c
9for changes.
10
11Commit if the definitions changed and create a pull request at
12https://github.com/FreeRDP/FreeRDP
13