mxe/src/flann-1-fixes.patch

216 lines
6.8 KiB
Diff
Raw Permalink Normal View History

This file is part of MXE. See LICENSE.md for licensing information.
Contains ad hoc patches for cross building.
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "fix@me" <fix@me>
Date: Sun, 10 Aug 2014 19:35:55 -0700
Subject: [PATCH 1/3] 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 1111111..2222222 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -155,9 +155,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
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Mon, 11 Aug 2014 10:09:08 -0700
Subject: [PATCH 2/3] Fix gcc compile flags
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1111111..2222222 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -146,12 +146,12 @@ include_directories(${PROJECT_SOURCE_DIR}/src/cpp)
# require proper c++
#add_definitions( "-Wall -ansi -pedantic" )
# HDF5 uses long long which is not ansi
-if (WIN32)
+if (WIN32 AND NOT CMAKE_COMPILER_IS_GNUCC)
# lots of warnings with cl.exe right now, use /W1
add_definitions("/W1 -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS /bigobj")
-else(WIN32)
+else(WIN32 AND NOT CMAKE_COMPILER_IS_GNUCC)
add_definitions( "-Wall -Wno-unknown-pragmas -Wno-unused-function" )
-endif(WIN32)
+endif(WIN32 AND NOT CMAKE_COMPILER_IS_GNUCC)
add_subdirectory( cmake )
add_subdirectory( src )
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Mon, 11 Aug 2014 09:57:42 -0700
Subject: [PATCH 3/3] Use BUILD_SHARED_LIBS to control which kind of libs to
build
Also removes the Linux-only --whole-archive trick, and CUDA libs.
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt
index 1111111..2222222 100644
--- a/src/cpp/CMakeLists.txt
+++ b/src/cpp/CMakeLists.txt
@@ -8,58 +8,17 @@ 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 OR CMAKE_COMPILER_IS_CLANG)
- set_target_properties(flann_cpp_s PROPERTIES COMPILE_FLAGS -fPIC)
-endif()
-set_property(TARGET flann_cpp_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC FLANN_USE_CUDA)
-
-if (BUILD_CUDA_LIB)
- SET(CUDA_NVCC_FLAGS -DFLANN_USE_CUDA)
- if(CMAKE_COMPILER_IS_GNUCC)
- set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS};-Xcompiler;-fPIC;-arch=sm_13" )
- if (NVCC_COMPILER_BINDIR)
- set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS};--compiler-bindir=${NVCC_COMPILER_BINDIR}")
- endif()
- 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)
- set_property(TARGET flann_cpp_s PROPERTY COMPILE_DEFINITIONS FLANN_USE_CUDA)
- # 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})
- set_property(TARGET flann_cpp PROPERTY COMPILE_DEFINITIONS FLANN_USE_CUDA)
- 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
+if (BUILD_SHARED_LIBS)
+ set_target_properties(flann_cpp PROPERTIES
VERSION ${FLANN_VERSION}
SOVERSION ${FLANN_SOVERSION}
DEFINE_SYMBOL FLANN_EXPORTS
)
+else()
+ set_property(TARGET flann_cpp PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
endif()
@@ -76,60 +35,39 @@ endif()
if (BUILD_C_BINDINGS)
- add_library(flann_s STATIC ${C_SOURCES})
- if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
- set_target_properties(flann_s PROPERTIES COMPILE_FLAGS -fPIC)
- endif()
- set_property(TARGET flann_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
+ add_library(flann ${C_SOURCES})
- 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)
+ if (NOT BUILD_SHARED_LIBS)
+ set_property(TARGET flann PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
else()
- add_library(flann SHARED ${C_SOURCES})
+ set_target_properties(flann PROPERTIES
+ VERSION ${FLANN_VERSION}
+ SOVERSION ${FLANN_SOVERSION}
+ DEFINE_SYMBOL FLANN_EXPORTS
+ )
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
- )
endif()
-endif(WIN32)
-
install (
- TARGETS flann_cpp flann_cpp_s
+ TARGETS flann_cpp
RUNTIME DESTINATION bin
LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}
ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}
)
-if (BUILD_CUDA_LIB)
- install (
- TARGETS flann_cuda flann_cuda_s
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}
- ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}
- )
-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}
)
+ if (WIN32 AND BUILD_SHARED_LIBS)
+ install (
+ TARGETS flann
+ RUNTIME DESTINATION share/flann/matlab
+ )
+ endif(WIN32 AND BUILD_SHARED_LIBS)
endif()
install (