summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Gu <timothygu99@gmail.com>2014-08-11 03:04:34 (GMT)
committerTimothy Gu <timothygu99@gmail.com>2014-08-11 17:36:54 (GMT)
commit9ed7f41489e61f00850dec9c27e5419920f65499 (patch)
treee26eae02ad61c17fcc74a8c89781ec18ce9dd49a
parent5880aee5cf50a10d0529f6e3c35725e92d4df537 (diff)
downloadmxe-9ed7f41489e61f00850dec9c27e5419920f65499.zip
mxe-9ed7f41489e61f00850dec9c27e5419920f65499.tar.gz
mxe-9ed7f41489e61f00850dec9c27e5419920f65499.tar.bz2
flann: enable shared lib
With this commit the static libs are installed as "libflann.a" instead of "libflann_s.a". pkg-config files are changed accordingly. Signed-off-by: Timothy Gu <timothygu99@gmail.com>
-rw-r--r--src/flann-1-fix-pkgconfig.patch16
-rw-r--r--src/flann-1-fixes.patch216
-rw-r--r--src/flann-2-disable-targets.patch22
-rw-r--r--src/flann-3-disable-sharedlibs.patch144
-rw-r--r--src/flann.mk2
5 files changed, 216 insertions, 184 deletions
diff --git a/src/flann-1-fix-pkgconfig.patch b/src/flann-1-fix-pkgconfig.patch
deleted file mode 100644
index b180d0d..0000000
--- a/src/flann-1-fix-pkgconfig.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-Fix flann.pc to link with the static libraries.
-diff -uNr flann-1.7.1-src/cmake/flann.pc.in flann-1.7.1-src.patched/cmake/flann.pc.in
---- flann-1.7.1-src/cmake/flann.pc.in 2011-12-23 12:16:09.000000000 +0100
-+++ flann-1.7.1-src.patched/cmake/flann.pc.in 2012-10-01 12:46:31.617169719 +0200
-@@ -8,6 +8,6 @@
- Description: @PKG_DESC@
- Version: @FLANN_VERSION@
- Requires: @PKG_EXTERNAL_DEPS@
--Libs: -L${libdir} -lflann_cpp -lflann_cpp-gd
-+Libs: -L${libdir} -lflann_cpp_s -lflann_cpp_s-gd
- Cflags: -I${includedir}
-
-
diff --git a/src/flann-1-fixes.patch b/src/flann-1-fixes.patch
new file mode 100644
index 0000000..d68f630
--- /dev/null
+++ b/src/flann-1-fixes.patch
@@ -0,0 +1,216 @@
+This file is part of MXE.
+See index.html for further information.
+
+Contains ad hoc patches for cross building.
+
+From fd5ab57afe6608de707ccdf3bc4eefa9a07117cf Mon Sep 17 00:00:00 2001
+From: MXE
+Date: Sun, 10 Aug 2014 19:35:55 -0700
+Subject: [PATCH 1/2] Disable targets
+
+Disable examples, test, and documentation in the CMakeLists.txt file.
+(The file unfortunately does not provide switches for this purpose.)
+
+Signed-off-by: Timothy Gu <timothygu99@gmail.com>
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 350eb8f..6ab370c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -143,9 +143,9 @@ endif(WIN32)
+
+ add_subdirectory( cmake )
+ add_subdirectory( src )
+-add_subdirectory( examples )
+-add_subdirectory( test )
+-add_subdirectory( doc )
++#add_subdirectory( examples )
++#add_subdirectory( test )
++#add_subdirectory( doc )
+
+
+ # CPACK options
+--
+1.9.1
+
+
+From 9081c609e07642e9316bd7ba846a619539030e17 Mon Sep 17 00:00:00 2001
+From: MXE
+Date: Sun, 10 Aug 2014 19:43:25 -0700
+Subject: [PATCH 2/2] Use BUILD_SHARED_LIBS to control which kind of libs to
+ build
+
+Also removes the Linux-only --whole-archive trick.
+
+Signed-off-by: Timothy Gu <timothygu99@gmail.com>
+
+diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt
+index 0e9c544..333fb89 100644
+--- a/src/cpp/CMakeLists.txt
++++ b/src/cpp/CMakeLists.txt
+@@ -8,40 +8,20 @@ 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})
+-if(CMAKE_COMPILER_IS_GNUCC)
+- set_target_properties(flann_cpp_s PROPERTIES COMPILE_FLAGS -fPIC)
+-endif()
+-set_property(TARGET flann_cpp_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
+-
+ if (BUILD_CUDA_LIB)
+ if(CMAKE_COMPILER_IS_GNUCC)
+ set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS};-Xcompiler;-fPIC;-arch=sm_13;--compiler-bindir=${NVCC_COMPILER_BINDIR}" )
+ else()
+ set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS};-arch=sm_13" )
+ endif()
+- cuda_add_library(flann_cuda_s STATIC ${CU_SOURCES})
+- set_property(TARGET flann_cuda_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
+ endif()
+
+-if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC)
+- add_library(flann_cpp SHARED "")
+- set_target_properties(flann_cpp PROPERTIES LINKER_LANGUAGE CXX)
+- target_link_libraries(flann_cpp -Wl,-whole-archive flann_cpp_s -Wl,-no-whole-archive)
+-
++ add_library(flann_cpp ${CPP_SOURCES})
+ if (BUILD_CUDA_LIB)
+- cuda_add_library(flann_cuda SHARED "")
+- set_target_properties(flann_cuda PROPERTIES LINKER_LANGUAGE CXX)
+- target_link_libraries(flann_cuda -Wl,-whole-archive flann_cuda_s -Wl,-no-whole-archive)
+- # target_link_libraries(flann_cuda cudpp_x86_64)
++ cuda_add_library(flann_cuda ${CPP_SOURCES})
+ endif()
+-else()
+- add_library(flann_cpp SHARED ${CPP_SOURCES})
+- if (BUILD_CUDA_LIB)
+- cuda_add_library(flann_cuda SHARED ${CPP_SOURCES})
+- endif()
+-endif()
+
++if (BUILD_SHARED_LIBS)
+ set_target_properties(flann_cpp PROPERTIES
+ VERSION ${FLANN_VERSION}
+ SOVERSION ${FLANN_SOVERSION}
+@@ -55,18 +35,25 @@ if (BUILD_CUDA_LIB)
+ DEFINE_SYMBOL FLANN_EXPORTS
+ )
+ endif()
++else()
++ set_property(TARGET flann_cpp PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
++ if (BUILD_CUDA_LIB)
++ set_property(TARGET flann_cuda PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
++ endif()
++endif()
+
+
+ #debug libraries
+-add_library(flann_cpp-gd SHARED ${CPP_SOURCES})
++add_library(flann_cpp-gd ${CPP_SOURCES})
++if (BUILD_SHARED_LIBS)
+ set_target_properties(flann_cpp-gd PROPERTIES
+ COMPILE_FLAGS ${CMAKE_CXX_FLAGS_DEBUG}
+ DEFINE_SYMBOL FLANN_EXPORTS
+ )
+-
+-add_library(flann_cpp_s-gd STATIC ${CPP_SOURCES})
+-set_target_properties(flann_cpp_s-gd PROPERTIES COMPILE_FLAGS ${CMAKE_CXX_FLAGS_DEBUG})
+-set_property(TARGET flann_cpp_s-gd PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
++else()
++set_target_properties(flann_cpp-gd PROPERTIES COMPILE_FLAGS ${CMAKE_CXX_FLAGS_DEBUG})
++set_property(TARGET flann_cpp-gd PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
++endif()
+
+
+
+@@ -90,37 +77,29 @@ if (HDF5_FOUND)
+ endif()
+
+ if (BUILD_CUDA_LIB)
+- add_library(flann_cuda-gd SHARED ${CPP_SOURCES})
++ add_library(flann_cuda-gd ${CPP_SOURCES})
++ if (BUILD_SHARED_LIBS)
+ set_target_properties(flann_cuda-gd PROPERTIES
+ COMPILE_FLAGS ${CMAKE_CXX_FLAGS_DEBUG}
+ DEFINE_SYMBOL FLANN_EXPORTS
+ )
+-
+- add_library(flann_cuda_s-gd STATIC ${CPP_SOURCES})
+- set_target_properties(flann_cuda_s-gd PROPERTIES COMPILE_FLAGS ${CMAKE_CXX_FLAGS_DEBUG})
+- set_property(TARGET flann_cuda_s-gd PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
++ else()
++ set_target_properties(flann_cuda-gd PROPERTIES COMPILE_FLAGS ${CMAKE_CXX_FLAGS_DEBUG})
++ set_property(TARGET flann_cuda-gd PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
++ endif()
+ endif()
+
+ if (BUILD_C_BINDINGS)
+- add_library(flann_s STATIC ${C_SOURCES})
+- if(CMAKE_COMPILER_IS_GNUCC)
+- set_target_properties(flann_s PROPERTIES COMPILE_FLAGS -fPIC)
+- endif()
+- set_property(TARGET flann_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
+-
+- if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC)
+- add_library(flann SHARED "")
+- set_target_properties(flann PROPERTIES LINKER_LANGUAGE CXX)
+- target_link_libraries(flann -Wl,-whole-archive flann_s -Wl,-no-whole-archive)
++ add_library(flann ${C_SOURCES})
++ if (NOT BUILD_SHARED_LIBS)
++ set_property(TARGET flann PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
+ else()
+- add_library(flann SHARED ${C_SOURCES})
+- endif()
+-
+ set_target_properties(flann PROPERTIES
+ VERSION ${FLANN_VERSION}
+ SOVERSION ${FLANN_SOVERSION}
+ DEFINE_SYMBOL FLANN_EXPORTS
+ )
++ endif()
+ endif()
+
+
+@@ -129,13 +108,15 @@ if (BUILD_C_BINDINGS)
+ install (
+ TARGETS flann
+ RUNTIME DESTINATION share/flann/matlab
++ LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}
++ ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}
+ )
+ endif()
+ endif(WIN32)
+
+
+ install (
+- TARGETS flann_cpp flann_cpp_s flann_cpp-gd flann_cpp_s-gd
++ TARGETS flann_cpp flann_cpp-gd
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}
+ ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}
+@@ -143,7 +124,7 @@ install (
+
+ if (BUILD_CUDA_LIB)
+ install (
+- TARGETS flann_cuda flann_cuda_s flann_cuda-gd flann_cuda_s-gd
++ TARGETS flann_cuda flann_cuda-gd
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}
+ ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}
+@@ -152,7 +133,7 @@ endif()
+
+ if (BUILD_C_BINDINGS)
+ install (
+- TARGETS flann flann_s
++ TARGETS flann
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}
+ ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}
+@@ -164,3 +145,4 @@ install (
+ DESTINATION include
+ FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
+ )
++
+--
+1.9.1
+
diff --git a/src/flann-2-disable-targets.patch b/src/flann-2-disable-targets.patch
deleted file mode 100644
index b5cea03..0000000
--- a/src/flann-2-disable-targets.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-Disable examples, test, and documentation in the CMakeLists.txt file.
-(The file unfortunately does not provide switches for this purpose.)
-diff -uNr flann-1.7.1-src/CMakeLists.txt flann-1.7.1-src.patched/CMakeLists.txt
---- flann-1.7.1-src/CMakeLists.txt 2011-12-23 12:16:09.000000000 +0100
-+++ flann-1.7.1-src.patched/CMakeLists.txt 2012-10-01 12:32:59.865199865 +0200
-@@ -143,9 +143,9 @@
-
- add_subdirectory( cmake )
- add_subdirectory( src )
--add_subdirectory( examples )
--add_subdirectory( test )
--add_subdirectory( doc )
-+#add_subdirectory( examples )
-+#add_subdirectory( test )
-+#add_subdirectory( doc )
-
-
- # CPACK options
-
diff --git a/src/flann-3-disable-sharedlibs.patch b/src/flann-3-disable-sharedlibs.patch
deleted file mode 100644
index f54ccda..0000000
--- a/src/flann-3-disable-sharedlibs.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-Disable building and installing dynamic libraries in the CMakeLists.txt file.
-(The file unfortunately does not provide switches for this purpose.)
-diff -uNr flann-1.7.1-src/src/cpp/CMakeLists.txt flann-1.7.1-src.patched/src/cpp/CMakeLists.txt
---- flann-1.7.1-src/src/cpp/CMakeLists.txt 2011-12-23 12:16:09.000000000 +0100
-+++ flann-1.7.1-src.patched/src/cpp/CMakeLists.txt 2012-10-01 12:36:59.013191056 +0200
-@@ -24,29 +24,29 @@
- set_property(TARGET flann_cuda_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
- endif()
-
--if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC)
-- add_library(flann_cpp SHARED "")
-- set_target_properties(flann_cpp PROPERTIES LINKER_LANGUAGE CXX)
-- target_link_libraries(flann_cpp -Wl,-whole-archive flann_cpp_s -Wl,-no-whole-archive)
--
-- if (BUILD_CUDA_LIB)
-- cuda_add_library(flann_cuda SHARED "")
-- set_target_properties(flann_cuda PROPERTIES LINKER_LANGUAGE CXX)
-- target_link_libraries(flann_cuda -Wl,-whole-archive flann_cuda_s -Wl,-no-whole-archive)
-- # target_link_libraries(flann_cuda cudpp_x86_64)
-- endif()
--else()
-- add_library(flann_cpp SHARED ${CPP_SOURCES})
-- if (BUILD_CUDA_LIB)
-- cuda_add_library(flann_cuda SHARED ${CPP_SOURCES})
-- endif()
--endif()
--
--set_target_properties(flann_cpp PROPERTIES
-- VERSION ${FLANN_VERSION}
-- SOVERSION ${FLANN_SOVERSION}
-- DEFINE_SYMBOL FLANN_EXPORTS
--)
-+#if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC)
-+# add_library(flann_cpp SHARED "")
-+# set_target_properties(flann_cpp PROPERTIES LINKER_LANGUAGE CXX)
-+# target_link_libraries(flann_cpp -Wl,-whole-archive flann_cpp_s -Wl,-no-whole-archive)
-+#
-+# if (BUILD_CUDA_LIB)
-+# cuda_add_library(flann_cuda SHARED "")
-+# set_target_properties(flann_cuda PROPERTIES LINKER_LANGUAGE CXX)
-+# target_link_libraries(flann_cuda -Wl,-whole-archive flann_cuda_s -Wl,-no-whole-archive)
-+# # target_link_libraries(flann_cuda cudpp_x86_64)
-+# endif()
-+#else()
-+# add_library(flann_cpp SHARED ${CPP_SOURCES})
-+# if (BUILD_CUDA_LIB)
-+# cuda_add_library(flann_cuda SHARED ${CPP_SOURCES})
-+# endif()
-+#endif()
-+#
-+#set_target_properties(flann_cpp PROPERTIES
-+# VERSION ${FLANN_VERSION}
-+# SOVERSION ${FLANN_SOVERSION}
-+# DEFINE_SYMBOL FLANN_EXPORTS
-+#)
-
- if (BUILD_CUDA_LIB)
- set_target_properties(flann_cuda PROPERTIES
-@@ -57,12 +57,12 @@
- endif()
-
-
--#debug libraries
--add_library(flann_cpp-gd SHARED ${CPP_SOURCES})
--set_target_properties(flann_cpp-gd PROPERTIES
-- COMPILE_FLAGS ${CMAKE_CXX_FLAGS_DEBUG}
-- DEFINE_SYMBOL FLANN_EXPORTS
--)
-+##debug libraries
-+#add_library(flann_cpp-gd SHARED ${CPP_SOURCES})
-+#set_target_properties(flann_cpp-gd PROPERTIES
-+# COMPILE_FLAGS ${CMAKE_CXX_FLAGS_DEBUG}
-+# DEFINE_SYMBOL FLANN_EXPORTS
-+#)
-
- add_library(flann_cpp_s-gd STATIC ${CPP_SOURCES})
- set_target_properties(flann_cpp_s-gd PROPERTIES COMPILE_FLAGS ${CMAKE_CXX_FLAGS_DEBUG})
-@@ -108,34 +108,35 @@
- endif()
- set_property(TARGET flann_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
-
-- if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC)
-- add_library(flann SHARED "")
-- set_target_properties(flann PROPERTIES LINKER_LANGUAGE CXX)
-- target_link_libraries(flann -Wl,-whole-archive flann_s -Wl,-no-whole-archive)
-- else()
-- add_library(flann SHARED ${C_SOURCES})
-- endif()
--
-- set_target_properties(flann PROPERTIES
-- VERSION ${FLANN_VERSION}
-- SOVERSION ${FLANN_SOVERSION}
-- DEFINE_SYMBOL FLANN_EXPORTS
-- )
-+# if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC)
-+# add_library(flann SHARED "")
-+# set_target_properties(flann PROPERTIES LINKER_LANGUAGE CXX)
-+# target_link_libraries(flann -Wl,-whole-archive flann_s -Wl,-no-whole-archive)
-+# else()
-+# add_library(flann SHARED ${C_SOURCES})
-+# endif()
-+#
-+# set_target_properties(flann PROPERTIES
-+# VERSION ${FLANN_VERSION}
-+# SOVERSION ${FLANN_SOVERSION}
-+# DEFINE_SYMBOL FLANN_EXPORTS
-+# )
- endif()
-
-
- if(WIN32)
- if (BUILD_C_BINDINGS)
-- install (
-- TARGETS flann
-- RUNTIME DESTINATION share/flann/matlab
-- )
-+# install (
-+# TARGETS flann
-+# RUNTIME DESTINATION share/flann/matlab
-+# )
- endif()
- endif(WIN32)
-
-
- install (
-- TARGETS flann_cpp flann_cpp_s flann_cpp-gd flann_cpp_s-gd
-+# TARGETS flann_cpp flann_cpp_s flann_cpp-gd flann_cpp_s-gd
-+ TARGETS flann_cpp_s flann_cpp_s-gd
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}
- ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}
-@@ -152,7 +153,8 @@
-
- if (BUILD_C_BINDINGS)
- install (
-- TARGETS flann flann_s
-+# TARGETS flann flann_s
-+ TARGETS flann_s
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}
- ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}
diff --git a/src/flann.mk b/src/flann.mk
index cae7cb9..c4e62fb 100644
--- a/src/flann.mk
+++ b/src/flann.mk
@@ -29,5 +29,3 @@ define $(PKG)_BUILD
-DBUILD_PYTHON_BINDINGS=OFF
$(MAKE) -C '$(1)' -j '$(JOBS)' install VERBOSE=1
endef
-
-$(PKG)_BUILD_SHARED =