From 14c32946871202da54b862a5ffd25dd716aedd8b Mon Sep 17 00:00:00 2001
From: Pierre-Emmanuel Viel
Date: Sun, 10 May 2020 16:16:53 +0200
Subject: [PATCH] Fix solve cmake error with cmake >= 3.11 using a dummy file
CMake doesn't support anymore add_library with a "" sources field, that
was previously allowing further to link exclusively with a static lib.
This solution creates a dummy empty source file passed to add_library.
---
src/cpp/CMakeLists.txt | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt
index b421abb0..3e443df1 100644
--- a/src/cpp/CMakeLists.txt
+++ b/src/cpp/CMakeLists.txt
@@ -29,13 +29,14 @@ if (BUILD_CUDA_LIB)
set_property(TARGET flann_cuda_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
endif()
+file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/dummy_source_file_for_shared_lib.cpp)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC)
- add_library(flann_cpp SHARED "")
+ add_library(flann_cpp SHARED dummy_source_file_for_shared_lib.cpp)
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 "")
+ cuda_add_library(flann_cuda SHARED dummy_source_file_for_shared_lib.cpp)
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)
@@ -88,7 +89,7 @@ if (BUILD_C_BINDINGS)
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 "")
+ add_library(flann SHARED dummy_source_file_for_shared_lib.cpp)
set_target_properties(flann PROPERTIES LINKER_LANGUAGE CXX)
target_link_libraries(flann -Wl,-whole-archive flann_s -Wl,-no-whole-archive)
else()