You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
4.8 KiB
126 lines
4.8 KiB
From: Jochen Sprickerhof <git@jochen.sprickerhof.de>
|
|
Date: Sun, 14 Oct 2018 00:25:05 +0200
|
|
Subject: Use system version of liblz4
|
|
|
|
Also make sure that flann_cpp is linked against LZ4.
|
|
---
|
|
CMakeLists.txt | 3 +++
|
|
cmake/flann.pc.in | 2 +-
|
|
examples/CMakeLists.txt | 3 +++
|
|
src/cpp/CMakeLists.txt | 8 ++++++--
|
|
src/cpp/flann/util/serialization.h | 4 ++--
|
|
5 files changed, 15 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index a01fb7a..995e54e 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -142,6 +142,9 @@ if (BUILD_CUDA_LIB)
|
|
endif(CUDA_FOUND)
|
|
endif(BUILD_CUDA_LIB)
|
|
|
|
+find_package(PkgConfig REQUIRED)
|
|
+pkg_check_modules(LZ4 REQUIRED liblz4)
|
|
+
|
|
#set the C/C++ include path to the "include" directory
|
|
include_directories(BEFORE ${PROJECT_SOURCE_DIR}/src/cpp)
|
|
|
|
diff --git a/cmake/flann.pc.in b/cmake/flann.pc.in
|
|
index 82eee5e..07b8d64 100644
|
|
--- a/cmake/flann.pc.in
|
|
+++ b/cmake/flann.pc.in
|
|
@@ -8,6 +8,6 @@ Name: @PROJECT_NAME@
|
|
Description: @PKG_DESC@
|
|
Version: @FLANN_VERSION@
|
|
Requires: @PKG_EXTERNAL_DEPS@
|
|
-Libs: -L${libdir} -lflann -lflann_cpp
|
|
+Libs: -L${libdir} @LZ4_STATIC_LDFLAGS@ -lflann -lflann_cpp
|
|
Cflags: -I${includedir}
|
|
|
|
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
|
|
index e9fef04..2b2bb9d 100644
|
|
--- a/examples/CMakeLists.txt
|
|
+++ b/examples/CMakeLists.txt
|
|
@@ -3,6 +3,7 @@ add_custom_target(examples ALL)
|
|
|
|
if (BUILD_C_BINDINGS)
|
|
add_executable(flann_example_c flann_example.c)
|
|
+ target_link_libraries(flann_example_c -Wl,--push-state,--no-as-needed ${LZ4_LIBRARIES} -Wl,--pop-state)
|
|
target_link_libraries(flann_example_c flann)
|
|
set_target_properties(flann_example_c PROPERTIES COMPILE_FLAGS -std=c99)
|
|
|
|
@@ -14,6 +15,7 @@ if (HDF5_FOUND)
|
|
include_directories(${HDF5_INCLUDE_DIRS})
|
|
|
|
add_executable(flann_example_cpp flann_example.cpp)
|
|
+ target_link_libraries(flann_example_cpp -Wl,--push-state,--no-as-needed ${LZ4_LIBRARIES} -Wl,--pop-state)
|
|
target_link_libraries(flann_example_cpp ${HDF5_LIBRARIES} flann_cpp)
|
|
if (HDF5_IS_PARALLEL)
|
|
target_link_libraries(flann_example_cpp ${MPI_LIBRARIES})
|
|
@@ -25,6 +27,7 @@ if (HDF5_FOUND)
|
|
|
|
if (USE_MPI AND HDF5_IS_PARALLEL)
|
|
add_executable(flann_example_mpi flann_example_mpi.cpp)
|
|
+ target_link_libraries(flann_example_mpi -Wl,--push-state,--no-as-needed ${LZ4_LIBRARIES} -Wl,--pop-state)
|
|
target_link_libraries(flann_example_mpi flann_cpp ${HDF5_LIBRARIES} ${MPI_LIBRARIES} ${Boost_LIBRARIES})
|
|
|
|
add_dependencies(examples flann_example_mpi)
|
|
diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt
|
|
index b453b27..5c4f693 100644
|
|
--- a/src/cpp/CMakeLists.txt
|
|
+++ b/src/cpp/CMakeLists.txt
|
|
@@ -4,11 +4,12 @@ add_definitions(-D_FLANN_VERSION=${FLANN_VERSION})
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/flann/config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/flann/config.h)
|
|
|
|
-file(GLOB_RECURSE C_SOURCES flann.cpp lz4.c lz4hc.c)
|
|
-file(GLOB_RECURSE CPP_SOURCES flann_cpp.cpp lz4.c lz4hc.c)
|
|
+file(GLOB_RECURSE C_SOURCES flann.cpp)
|
|
+file(GLOB_RECURSE CPP_SOURCES flann_cpp.cpp)
|
|
file(GLOB_RECURSE CU_SOURCES *.cu)
|
|
|
|
add_library(flann_cpp_s STATIC ${CPP_SOURCES})
|
|
+target_link_libraries(flann_cpp_s ${LZ4_LIBRARIES})
|
|
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
|
|
set_target_properties(flann_cpp_s PROPERTIES COMPILE_FLAGS -fPIC)
|
|
endif()
|
|
@@ -42,6 +43,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC)
|
|
endif()
|
|
else()
|
|
add_library(flann_cpp SHARED ${CPP_SOURCES})
|
|
+ target_link_libraries(flann_cpp -Wl,--push-state,--no-as-needed ${LZ4_LIBRARIES} -Wl,--pop-state)
|
|
if (BUILD_CUDA_LIB)
|
|
cuda_add_library(flann_cuda SHARED ${CPP_SOURCES})
|
|
set_property(TARGET flann_cpp PROPERTY COMPILE_DEFINITIONS FLANN_USE_CUDA)
|
|
@@ -77,6 +79,7 @@ endif()
|
|
|
|
if (BUILD_C_BINDINGS)
|
|
add_library(flann_s STATIC ${C_SOURCES})
|
|
+ target_link_libraries(flann_cpp -Wl,--push-state,--no-as-needed ${LZ4_LIBRARIES} -Wl,--pop-state)
|
|
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
|
|
set_target_properties(flann_s PROPERTIES COMPILE_FLAGS -fPIC)
|
|
endif()
|
|
@@ -88,6 +91,7 @@ if (BUILD_C_BINDINGS)
|
|
target_link_libraries(flann -Wl,-whole-archive flann_s -Wl,-no-whole-archive)
|
|
else()
|
|
add_library(flann SHARED ${C_SOURCES})
|
|
+ target_link_libraries(flann_cpp -Wl,--push-state,--no-as-needed ${LZ4_LIBRARIES} -Wl,--pop-state)
|
|
|
|
if(MINGW AND OPENMP_FOUND)
|
|
target_link_libraries(flann gomp)
|
|
diff --git a/src/cpp/flann/util/serialization.h b/src/cpp/flann/util/serialization.h
|
|
index d731021..cdc2e5e 100644
|
|
--- a/src/cpp/flann/util/serialization.h
|
|
+++ b/src/cpp/flann/util/serialization.h
|
|
@@ -6,8 +6,8 @@
|
|
#include <cstdlib>
|
|
#include <cstring>
|
|
#include <stdio.h>
|
|
-#include "flann/ext/lz4.h"
|
|
-#include "flann/ext/lz4hc.h"
|
|
+#include <lz4.h>
|
|
+#include <lz4hc.h>
|
|
|
|
|
|
namespace flann
|