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()