@@ -51,8 +51,7 @@ namespace GEO {
5151
5252Geogram is tested under Linux (32 and 64 bits), Windows (32 and 64 bits) and MacOS/X.
5353You will need CMake (version >= 2.8.11). There is no other dependancy (everything
54- that you need is shipped with Geogram). It also works with Android (ARMv7 processors).
55- Follow the Linux, MacOS/X, Windows or Android instructions below. In addition, Emscripten (C++ to
54+ that you need is shipped with Geogram). Follow the Linux, MacOS/X or Windows instructions below. In addition, Emscripten (C++ to
5655Javascript transpiler) is also supported. Specific instructions for each platform are detailed below.
5756
5857Contributors / Maintainers
@@ -196,81 +195,6 @@ CMakeOptions.txt, modifying it and re-running CMake:
196195- CMAKE_INSTALL_PREFIX: where to install Geogram (when building the INSTALL target)
197196- CPACK_GENERATOR: can be used to generate a Debian package
198197
199- Android
200- =======
201-
202- What follow are the instructions for installing the NDK on a Linux box, cross-compiling Geogram
203- and testing the binaries on the target Android platform.
204-
205- Preparing the NDK
206- -----------------
207-
208- - Download the [Android NDK](https://developer.android.com/ndk/downloads/index.html)
209-
210- - Unpack the archive:
211- \code
212- chmod 755 android-ndk-rxxy-linux-x86_64.bin
213- ./android-ndk-rxxy-linux-x86_64.bin
214- \endcode
215- where 'rxxy' denotes the NDK version and release (e.g., r10e)
216-
217- - Create a standalone toolchain (cross-compiler)
218- \code
219- mkdir toolchain
220- ./android-ndk-rxxy/build/tools/make-standalone-toolchain.sh
221- --platform=android-zz --toolchain=arm-linux-androideabi-4.9
222- --system=linux-x86_64 --install-dir=`pwd`/toolchain
223- --stl=libc++
224- \endcode
225- where 'zz' denotes the target Android version (e.g., 19 for KitKat, 20 for Lollipop etc...)
226-
227- - Add the binaries directory of the toolchain in the path
228- \code
229- export PATH=`pwd`/toolchain/bin/:$PATH
230- \endcode
231- (the line above can be added to your .bashrc)
232- \endcode
233-
234- Cross-compiling Geogram
235- -----------------------
236-
237- \code
238- cd geogram
239- ./configure.sh Android-armv7-gcc
240- cd build/Android-armv7-gcc-Release/
241- make
242- \endcode
243-
244- Note: for now, only 32 bits ARM with FPU is supported. ARM64 can be quite easily
245- supported (but this requires implementing a couple of ASM functions in basic/atomics.h),
246- will be implemented when I'll update my phone.
247-
248- Using the generated binaries on the phone
249- -----------------------------------------
250-
251- You can install [TerminalIDE](https://play.google.com/store/apps/details?id=com.spartacusrex.spartacuside&hl=fr)
252- on the phone, then copy the binaries and some data files in TerminalIDE's working directory
253- (/data/data/com.spartacusrex.spartacuside/files). It can be also used through
254- [ADB](http://developer.android.com/tools/help/adb.html).
255-
256- What about performances ?
257- -------------------------
258-
259- On my PC (Intel Core i7-4900MQ, 2.8 GHz), compute_delaunay with 850,000 points
260- takes 1.4 seconds in parallel mode (and 4.3 seconds in sequential mode).
261-
262- On my phone (HTC One M7, Snapdragon 600, 4 cores, 1.7 GHz), compute_delaunay with 850,000 points
263- takes 15 seconds in parallel mode (and 35 seconds in sequential mode).
264-
265- The phone has approximately 1/10th of the horsepower of the computer.
266-
267- What is the point ?
268- -------------------
269-
270- A portable, small, easy to compile and efficient geometry processing library can be useful
271- for many projects, including 3D reconstruction with a mobile phone [here](http://cvg.ethz.ch/mobile/),
272- reconstructions of buildings using drones, ...
273-
274198Emscripten
275199==========
276200
0 commit comments