1 Building with CMake for Android {#occt_dev_guides__building_android}
6 This article describes the steps to build OCCT libraries for Android from a complete source package
7 with GNU make (makefiles) on Windows 7 and Ubuntu 15.10.
9 The steps on Windows and Ubuntu are similar. There is the only one difference: makefiles are built with mingw32-make
10 on Windows and native GNU make on Ubuntu.
12 Required tools (download and install if it is required):
13 - CMake v3.7+ https://www.cmake.org/cmake/resources/software.html
14 - Android NDK rev.10+ https://developer.android.com/tools/sdk/ndk/index.html
15 - GNU Make: MinGW v4.82+ for Windows (https://sourceforge.net/projects/mingw/files/), GNU Make 4.0 for Ubuntu.
19 In toolchain file <i>$CASROOT/adm/templates/android.toolchain.config.cmake</i>:
21 - Set CMAKE_ANDROID_NDK variable equal to your Android NDK path.
22 - Set CMAKE_ANDROID_STL_TYPE variable to specify which C++ standard library to use.
24 The default value of CMAKE_ANDROID_STL_TYPE is <i>gnustl_shared</i> (GNU libstdc++ Shared)
26 @figure{/dev_guides/building/android/images/android_image001.png}
28 ## Generation of makefiles using CMake GUI tool
29 Run GUI tool provided by CMake: cmake-gui
31 ### Tools configuration
32 - Specify the root folder of OCCT (<i>$CASROOT</i>, which contains *CMakelists.txt* file) by clicking **Browse Source**.
33 - Specify the location (build folder) for Cmake generated project files by clicking **Browse Build**.
35 @figure{/dev_guides/building/android/images/android_image002.png}
37 Click **Configure** button. It opens the window with a drop-down list of generators supported by CMake project.
39 Select "MinGW Makefiles" item from the list
40 - Choose "Specify toolchain file for cross-compiling"
43 @figure{/dev_guides/building/android/images/android_image003.png}
45 - Specify a toolchain file at the next dialog by <i>android.toolchain.config.cmake</i> . It is contained by cross-compilation toolchain for CMake
47 @figure{/dev_guides/building/android/images/android_image004.png}
49 If on Windows the message is appeared: "CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles"
50 CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.",
51 specify **CMAKE_MAKE_PROGRAM** to mingw32-make executable.
52 @figure{/dev_guides/building/android/images/android_image005.png}
54 ### OCCT Configuration
56 How to configure OCCT, see "OCCT Configuration" section of @ref occt_dev_guides__building_cmake "Building with CMake"
58 ### Generation of makefiles
60 Click **Generate** button and wait until the generation process is finished.
61 Then makefiles will appear in the build folder (e.g. <i> D:/occt/build-android </i>).
63 ## Generation of makefiles using CMake from the command line
65 Alternatively one may specify the values without a toolchain file:
67 > cmake -G "MinGW Makefiles" -DCMAKE_SYSTEM_NAME=Android -DCMAKE_ANDROID_NDK=D:/DevTools/android-ndk-r13b -DCMAKE_ANDROID_STL_TYPE=gnustl_shared -DCMAKE_SYSTEM_VERSION=15 -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a -DCMAKE_MAKE_PROGRAM=D:/DevTools/MinGW/bin/mingw32-make.exe -D3RDPARTY_DIR=D:/occt-3rdparty D:/occt
69 @figure{/dev_guides/building/android/images/android_image006.png}
71 ## Building makefiles of OCCT
73 Open console and go to the build folder. Type "mingw32-make" (Windows) or "make" (Ubuntu) to start build process.
80 Parallel building can be started with using **"-jN"** argument of "mingw32-make/make", where N is the number of building threads.
86 ## Install built OCCT libraries
88 Type "mingw32-make/make" with argument "install" to place the libraries
89 to the install folder (see "OCCT Configuration" section of @ref occt_dev_guides__building_cmake "Building with CMake")
91 > mingw32-make install