Skip to content

Commit 4bc6dc2

Browse files
committed
[geogram] Update to 1.6.6
1 parent 4311847 commit 4bc6dc2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+1839
-3947
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ include(cmake/geogram.cmake)
3939

4040
set(VORPALINE_VERSION_MAJOR 1)
4141
set(VORPALINE_VERSION_MINOR 6)
42-
set(VORPALINE_VERSION_PATCH 5)
42+
set(VORPALINE_VERSION_PATCH 6)
4343
set(VORPALINE_VERSION ${VORPALINE_VERSION_MAJOR}.${VORPALINE_VERSION_MINOR}.${VORPALINE_VERSION_PATCH})
4444

4545
set(VORPALINE_INCLUDE_SUBPATH geogram${VORPALINE_VERSION_MAJOR})

CMakeOptions.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
set(CPACK_GENERATOR RPM)

cmake/platforms/Android-aarch64-gcc.cmake

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
include(${GEOGRAM_SOURCE_DIR}/cmake/platforms/Linux.cmake)
66

77
# Set the Android compilers
8-
set(CMAKE_CXX_COMPILER aarch64-linux-android-g++)
9-
set(CMAKE_C_COMPILER aarch64-linux-android-gcc)
8+
set(CMAKE_CXX_COMPILER aarch64-linux-android-clang++)
9+
set(CMAKE_C_COMPILER aarch64-linux-android-clang)
1010

1111
set(VORPALINE_ARCH_64 true)
1212

@@ -31,15 +31,21 @@ add_definitions(${FULL_WARNINGS})
3131
# Warn about missing virtual destructor (C++ only)
3232
add_flags(CMAKE_CXX_FLAGS -Wnon-virtual-dtor)
3333

34+
add_flags(CMAKE_CXX_FLAGS -Wno-unknown-warning-option)
35+
add_flags(CMAKE_C_FLAGS -Wno-unknown-warning-option)
36+
37+
# Activate c++ 2011
38+
add_flags(CMAKE_CXX_FLAGS -std=c++11)
39+
3440
# Add static and dynamic bounds checks (optimization required)
3541
# add_flags(CMAKE_CXX_FLAGS_RELEASE -D_FORTIFY_SOURCE=2)
3642
# add_flags(CMAKE_C_FLAGS_RELEASE -D_FORTIFY_SOURCE=2)
3743

38-
set(ARCH_FLAGS -ffp-contract=off)
44+
set(ARCH_FLAGS -ffp-contract=off -fPIE -fPIC)
3945

4046
add_flags(CMAKE_CXX_FLAGS ${ARCH_FLAGS})
4147
add_flags(CMAKE_C_FLAGS ${ARCH_FLAGS})
42-
add_flags(CMAKE_EXE_LINKER_FLAGS ${ARCH_FLAGS})
48+
add_flags(CMAKE_EXE_LINKER_FLAGS ${ARCH_FLAGS} -pie)
4349

4450
# Additional debug flags
4551
# deactivated for now: I added bound checking in VOR::vector<>.

doc/devkit/compiling.dox

Lines changed: 1 addition & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,7 @@ namespace GEO {
5151

5252
Geogram is tested under Linux (32 and 64 bits), Windows (32 and 64 bits) and MacOS/X.
5353
You 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
5655
Javascript transpiler) is also supported. Specific instructions for each platform are detailed below.
5756

5857
Contributors / 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-
274198
Emscripten
275199
==========
276200

0 commit comments

Comments
 (0)