aboutsummaryrefslogtreecommitdiff
path: root/ports/theia/fix-external-dependencies.patch
diff options
context:
space:
mode:
authorStefano Sinigardi <stesinigardi@hotmail.com>2019-06-01 00:48:17 +0200
committerVictor Romero <romerosanchezv@gmail.com>2019-05-31 15:48:17 -0700
commit5898891125b00a3ec2b698bc496735ab997669f5 (patch)
treeea6f52bc69dec26f7c88d6766234a7c507607a06 /ports/theia/fix-external-dependencies.patch
parent26a9338c5055193915290527eacb37f2ac7fdcb8 (diff)
downloadvcpkg-5898891125b00a3ec2b698bc496735ab997669f5.tar.gz
vcpkg-5898891125b00a3ec2b698bc496735ab997669f5.zip
[openexr,openimageio,suitesparse,theia] updates for non-win32 (#6371)
* [openexr,openimageio,suitesparse,theia] updates for non-win32 * [theia] use only valid cmake symbols * [suitesparse] Fix build * [lapack] still not properly integrating with other ports * [lapack] intercept cmake module calls and substitute them with our defs * [suitesparse,clapack] fixes for proper integration * [ceres,clapack] bump CONTROL * [suitesparse] remove unnecessary defs * [clapack] improve wrapper logic * [WIN32] remove wrong symbol * [clapack] fix wrapper integration * [Accelerate] use best framework when available * [clapack] separate config from wrapper * [clapack] fix paths and filenames * [mlpack,armadillo,clapack] improve library handling * [mlpack] remove unnecessary cmake option * [clp,coinutils,osi,liblemon] dependencies of openmvg, improve compatibility with non-win32 * [openmvg] fix for case-sensitive filesystems * [clp,coinutils,osi] simplify CMakeLists removing many unnecessary steps * [sophus] Force rebuild * [theia] fixes for linux, part1 * [io2d] remove broken sintax * [fontconfig] bump version to remove CI cached failure * [theia] fixes for linux, part2 * [theia] remove unnecessary empty folders and comments from portfile * [theia] use correct build type removing forced vars in cmakelists.txt * [openmvg] add missing suitesparse target detection * [sophus] fix Suitesparse dependency * [sophus,openmvg] use suitesparse lowercase for module compatibility on case-sensitive filesystems * [suitesparse] fixes for case-sensitive filesystems * [openmvg] use correct Eigen3 name for case-sensitive filesystems * [sophus] trigger rebuild * [shogun] use modern vcpkg style * [shogun] add missing cmake system processor symbol
Diffstat (limited to 'ports/theia/fix-external-dependencies.patch')
-rw-r--r--ports/theia/fix-external-dependencies.patch405
1 files changed, 405 insertions, 0 deletions
diff --git a/ports/theia/fix-external-dependencies.patch b/ports/theia/fix-external-dependencies.patch
new file mode 100644
index 000000000..7a4b00961
--- /dev/null
+++ b/ports/theia/fix-external-dependencies.patch
@@ -0,0 +1,405 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9c1b150..5810156 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -129,70 +129,27 @@ endif ()
+
+ # GFlags. The namespace patch is borrow from Ceres Solver (see license in
+ # FindGflags.cmake)
++message("-- Check for Google Flags")
+ find_package(Gflags REQUIRED)
+-if (GFLAGS_FOUND)
+- message("-- Found Google Flags: ${GFLAGS_INCLUDE_DIRS} in namespace: ${GFLAGS_NAMESPACE}")
+- add_definitions(-DTHEIA_GFLAGS_NAMESPACE=${GFLAGS_NAMESPACE})
+-else (GFLAGS_FOUND)
+- message(FATAL_ERROR "Can't find Google FLAGS.")
+-endif (GFLAGS_FOUND)
+
+ # Google Logging
+ message("-- Check for Google Log")
+ find_package(Glog REQUIRED)
+-if (GLOG_FOUND)
+- message("-- Found Google Logging: ${GLOG_INCLUDE_DIRS}")
+-else (GLOG_FOUND)
+- message(FATAL_ERROR "Can't find Google Logging. Please set GLOG_INCLUDE_DIR & "
+- "GLOG_LIBRARY")
+-endif (GLOG_FOUND)
++
++# Flann
++message("-- Check for Flann")
++find_package(Flann REQUIRED)
+
+ # Ceres
+ message("-- Check for Ceres")
+ find_package(Ceres REQUIRED SuiteSparse)
+-if (CERES_FOUND)
+- message("-- Found Ceres: ${CERES_INCLUDE_DIRS}")
+-else (CERES_FOUND)
+- message(FATAL_ERROR "Can't find Ceres. Please set CERES_INCLUDE_DIR & "
+- "CERES_LIBRARY")
+-endif (CERES_FOUND)
+
+ # OpenImageIO
+ message("-- Check for OpenImageIO")
+ find_package(OpenImageIO REQUIRED)
+-if (OPENIMAGEIO_FOUND)
+- message("-- Found OpenImageIO: ${OPENIMAGEIO_INCLUDE_DIRS}")
+-else (OPENIMAGEIO_FOUND)
+- message(FATAL_ERROR "Can't find OpenImageIO. Please set OPENIMAGEIO_INCLUDE_DIR & "
+- "OPENIMAGEIO_LIBRARY")
+-endif (OPENIMAGEIO_FOUND)
+
+ # Suitesparse
+ find_package(SuiteSparse REQUIRED)
+-if (SUITESPARSE_FOUND)
+- # On Ubuntu the system install of SuiteSparse (v3.4.0) up to at least
+- # Ubuntu 13.10 cannot be used to link shared libraries.
+- if (BUILD_SHARED_LIBS AND
+- SUITESPARSE_IS_BROKEN_SHARED_LINKING_UBUNTU_SYSTEM_VERSION)
+- message(FATAL_ERROR "You are attempting to build Theia as a shared "
+- "library on Ubuntu using a system package install of SuiteSparse "
+- "3.4.0. This package is broken and does not support the "
+- "construction of shared libraries (you can still build Theia as "
+- "a static library). If you wish to build a shared version of Theia "
+- "you should uninstall the system install of SuiteSparse "
+- "(libsuitesparse-dev) and perform a source install of SuiteSparse "
+- "(we recommend that you use the latest version), "
+- "see http://theia-solver.org/building.html for more information.")
+- endif (BUILD_SHARED_LIBS AND
+- SUITESPARSE_IS_BROKEN_SHARED_LINKING_UBUNTU_SYSTEM_VERSION)
+- message("-- Found SuiteSparse ${SUITESPARSE_VERSION}")
+- add_definitions(-DTHEIA_SUITESPARSE_VERSION="${SUITESPARSE_VERSION}")
+-else (SUITESPARSE_FOUND)
+- # Disable use of SuiteSparse if it cannot be found and continue.
+- message(FATAL ERROR "Can't find SuiteSparse. This library is required "
+- "for bundle adjustment and for solving convex optimization problems. "
+- "Please set SUITESPARSE_INCLUDE_DIR & SUITESPARSE_LIBRARY")
+-endif (SUITESPARSE_FOUND)
+
+ include_directories(
+ include
+@@ -225,24 +182,19 @@ include_directories(
+ libraries/spectra
+ ${akaze_SOURCE_DIR}
+ ${akaze_INCLUDE_DIR}
+- ${cereal_SOURCE_DIR}
+- ${cereal_SOURCE_DIR}/include
+- ${flann_SOURCE_DIR}
+- ${flann_SOURCE_DIR}/src/cpp
+- ${gtest_SOURCE_DIR}/include
+- ${gtest_SOURCE_DIR}
+ ${optimo_SOURCE_DIR}
+ ${statx_SOURCE_DIR}
+ ${stlplus3_SOURCE_DIR}
+ ${vlfeat_SOURCE_DIR}
+- ${visual_sfm_SOURCE_DIR})
++ ${visual_sfm_SOURCE_DIR}
++)
+
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
+ include(OptimizeTheiaCompilerFlags)
+ optimizetheiacompilerflags()
+
+ add_subdirectory(src/theia)
+-add_subdirectory(applications)
++#add_subdirectory(applications)
+
+ if (BUILD_DOCUMENTATION)
+ message("-- Documentation building is enabled")
+@@ -260,7 +212,13 @@ install(FILES ${THEIA_HDRS} DESTINATION include/theia)
+ file(GLOB_RECURSE THEIA_INTERNAL_HDRS ${CMAKE_SOURCE_DIR}/src/theia/*.h)
+ install(DIRECTORY src/theia/ DESTINATION include/theia FILES_MATCHING PATTERN "*.h")
+
+-install(DIRECTORY libraries/ DESTINATION include/theia/libraries FILES_MATCHING PATTERN "*.h*")
++install(DIRECTORY libraries/akaze/ DESTINATION include/theia/libraries/akaze FILES_MATCHING PATTERN "*.h*")
++install(DIRECTORY libraries/optimo/ DESTINATION include/theia/libraries/optimo FILES_MATCHING PATTERN "*.h*")
++install(DIRECTORY libraries/spectra/ DESTINATION include/theia/libraries/spectra FILES_MATCHING PATTERN "*.h*")
++install(DIRECTORY libraries/statx/ DESTINATION include/theia/libraries/statx FILES_MATCHING PATTERN "*.h*")
++install(DIRECTORY libraries/stlplus3/ DESTINATION include/theia/libraries/stlplus3 FILES_MATCHING PATTERN "*.h*")
++install(DIRECTORY libraries/visual_sfm/ DESTINATION include/theia/libraries/visual_sfm FILES_MATCHING PATTERN "*.h*")
++install(DIRECTORY libraries/vlfeat/ DESTINATION include/theia/libraries/vlfeat FILES_MATCHING PATTERN "*.h*")
+
+ # Add an uninstall target to remove all installed files.
+ configure_file("${CMAKE_SOURCE_DIR}/cmake/uninstall.cmake.in"
+@@ -272,17 +230,10 @@ add_custom_target(uninstall
+
+ # Set up install directories. INCLUDE_INSTALL_DIR, LIB_INSTALL_DIR and
+ # CMAKECONFIG_INSTALL_DIR must not be absolute paths.
+-if (WIN32)
+- set(INCLUDE_INSTALL_DIR Include)
+- set(LIB_INSTALL_DIR Lib)
+- set(CMAKECONFIG_INSTALL_DIR CMake)
+- set(RELATIVE_CMAKECONFIG_INSTALL_DIR CMake)
+-else ()
+- set(INCLUDE_INSTALL_DIR include)
+- set(LIB_INSTALL_DIR lib)
+- set(CMAKECONFIG_INSTALL_DIR share/Theia)
+- set(RELATIVE_CMAKECONFIG_INSTALL_DIR share/Theia)
+-endif ()
++set(INCLUDE_INSTALL_DIR include)
++set(LIB_INSTALL_DIR lib)
++set(CMAKECONFIG_INSTALL_DIR share/theia)
++set(RELATIVE_CMAKECONFIG_INSTALL_DIR share/theia)
+
+ # This "exports" all targets which have been put into the export set
+ # "TheiaExport". This means that CMake generates a file with the given
+@@ -319,9 +270,5 @@ configure_file("${CMAKE_SOURCE_DIR}/cmake/TheiaConfigVersion.cmake.in"
+ # in the public API of Theia and should thus be present in THEIA_INCLUDE_DIRS.
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/TheiaConfig.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/TheiaConfigVersion.cmake"
+- "${CMAKE_SOURCE_DIR}/cmake/FindEigen.cmake"
+- "${CMAKE_SOURCE_DIR}/cmake/FindGlog.cmake"
+- "${CMAKE_SOURCE_DIR}/cmake/FindGflags.cmake"
+- "${CMAKE_SOURCE_DIR}/cmake/FindOpenImageIO.cmake"
+- "${CMAKE_SOURCE_DIR}/cmake/FindSuiteSparse.cmake"
++ "${CMAKE_SOURCE_DIR}/cmake/FindOpenImageIO.cmake"
+ DESTINATION ${CMAKECONFIG_INSTALL_DIR})
+diff --git a/cmake/TheiaConfig.cmake.in b/cmake/TheiaConfig.cmake.in
+index a3ea187..7e9d912 100644
+--- a/cmake/TheiaConfig.cmake.in
++++ b/cmake/TheiaConfig.cmake.in
+@@ -124,14 +124,7 @@ list(APPEND CERES_INCLUDE_DIR_HINTS @CERES_INCLUDE_DIR@)
+ get_filename_component(THEIA_BUILD_CERES_LIBRARY_DIR @CERES_LIBRARIES@ PATH)
+ list(APPEND CERES_LIBRARY_DIR_HINTS ${THEIA_BUILD_CERES_LIBRARY_DIR})
+ # Search quietly s/t we control the timing of the error message if not found.
+-find_package(Ceres QUIET)
+-if (CERES_FOUND)
+- message(STATUS "Found required Theia dependency: "
+- "Ceres in ${CERES_INCLUDE_DIRS}")
+-else (CERES_FOUND)
+- theia_report_not_found("Missing required Theia "
+- "dependency: Ceres, please set CERES_INCLUDE_DIR.")
+-endif (CERES_FOUND)
++find_package(Ceres REQUIRED)
+ list(APPEND THEIA_INCLUDE_DIRS ${CERES_INCLUDE_DIRS})
+
+ # Glog.
+@@ -140,64 +133,19 @@ list(APPEND GLOG_INCLUDE_DIR_HINTS @GLOG_INCLUDE_DIR@)
+ get_filename_component(THEIA_BUILD_GLOG_LIBRARY_DIR @GLOG_LIBRARY@ PATH)
+ list(APPEND GLOG_LIBRARY_DIR_HINTS ${THEIA_BUILD_GLOG_LIBRARY_DIR})
+ # Search quietly s/t we control the timing of the error message if not found.
+-find_package(Glog QUIET)
+-if (GLOG_FOUND)
+- message(STATUS "Found required Theia dependency: "
+- "Glog in ${GLOG_INCLUDE_DIRS}")
+-else (GLOG_FOUND)
+- theia_report_not_found("Missing required Theia "
+- "dependency: Glog, please set GLOG_INCLUDE_DIR.")
+-endif (GLOG_FOUND)
++find_package(Glog REQUIRED)
+ list(APPEND THEIA_INCLUDE_DIRS ${GLOG_INCLUDE_DIRS})
+
+ # GFlags. The namespace patch is borrow from Ceres Solver (see license in
+ # FindGflags.cmake)
+-find_package(Gflags QUIET)
+-if (GFLAGS_FOUND)
+- message(STATUS "Found required Theia dependency: Google Flags in "
+- "${GFLAGS_INCLUDE_DIRS} in namespace: ${GFLAGS_NAMESPACE}")
+- add_definitions(-DTHEIA_GFLAGS_NAMESPACE=${GFLAGS_NAMESPACE})
+-else (GFLAGS_FOUND)
+- theia_report_not_found("Missing required Theia dependency: Google Flags, please set "
+- "GFLAGS_INCLUDE_DIR.")
+-endif (GFLAGS_FOUND)
++find_package(Gflags REQUIRED)
+ list(APPEND THEIA_INCLUDE_DIRS ${GFLAGS_INCLUDE_DIRS})
+
+ # OpenImageIO
+-find_package(OpenImageIO QUIET)
+-if (OPENIMAGEIO_FOUND)
+- message(STATUS "Found Theia dependency: OpenImageIO in ${OPENIMAGEIO_INCLUDE_DIRS}")
+-else (OPENIMAGEIO_FOUND)
+- theia_report_not_found("Missing required Theia dependency: OpenImageIO. Please set "
+- "OPENIMAGEIO_INCLUDE_DIR & OPENIMAGEIO_LIBRARY")
+-endif (OPENIMAGEIO_FOUND)
++find_package(OpenImageIO REQUIRED)
+ list(APPEND THEIA_INCLUDE_DIRS ${OPENIMAGEIO_INCLUDE_DIRS})
+
+-find_package(SuiteSparse QUIET)
+-if (SUITESPARSE_FOUND)
+- # On Ubuntu the system install of SuiteSparse (v3.4.0) up to at least
+- # Ubuntu 13.10 cannot be used to link shared libraries.
+- if (BUILD_SHARED_LIBS AND
+- SUITESPARSE_IS_BROKEN_SHARED_LINKING_UBUNTU_SYSTEM_VERSION)
+- theia_report_not_found("You are attempting to build Theia as a shared "
+- "library on Ubuntu using a system package install of SuiteSparse "
+- "3.4.0. This package is broken and does not support the "
+- "construction of shared libraries (you can still build Theia as "
+- "a static library). If you wish to build a shared version of Theia "
+- "you should uninstall the system install of SuiteSparse "
+- "(libsuitesparse-dev) and perform a source install of SuiteSparse "
+- "(we recommend that you use the latest version), "
+- "see http://theia-solver.org/building.html for more information.")
+- endif (BUILD_SHARED_LIBS AND
+- SUITESPARSE_IS_BROKEN_SHARED_LINKING_UBUNTU_SYSTEM_VERSION)
+- message("-- Found SuiteSparse ${SUITESPARSE_VERSION}")
+- add_definitions(-DTHEIA_SUITESPARSE_VERSION="${SUITESPARSE_VERSION}")
+-else (SUITESPARSE_FOUND)
+- # Disable use of SuiteSparse if it cannot be found and continue.
+- theia_report_not_found("Can't find SuiteSparse. This library is required "
+- "for bundle adjustment and for solving convex optimization problems. "
+- "Please set SUITESPARSE_INCLUDE_DIR & SUITESPARSE_LIBRARY")
+-endif (SUITESPARSE_FOUND)
++find_package(SuiteSparse REQUIRED)
+ list(APPEND THEIA_INCLUDE_DIRS ${SUITESPARSE_INCLUDE_DIRS})
+
+ # Import exported Theia targets.
+@@ -207,22 +155,24 @@ endif (NOT TARGET theia AND NOT Theia_BINARY_DIR)
+ # Set the expected XX_LIBRARIES variable for FindPackage().
+ set(THEIA_LIBRARIES theia)
+
++find_package(cereal REQUIRED)
++list(APPEND THEIA_LIBRARIES cereal)
++
++find_package(Flann REQUIRED)
++list(APPEND THEIA_INCLUDE_DIRS ${FLANN_INCLUDE_DIR})
++list(APPEND THEIA_LIBRARIES ${FLANN_LIBRARY})
++
+ # Add the libraries included with the distribution.
+ set(THEIA_INTERNAL_LIB_PREFIX ${THEIA_INCLUDE_DIR}/theia/libraries)
+ set(THEIA_INTERNAL_LIBS_INCLUDES
+ ${THEIA_INTERNAL_LIB_PREFIX}
+ ${THEIA_INTERNAL_LIB_PREFIX}/akaze
+- ${THEIA_INTERNAL_LIB_PREFIX}/cereal
+- ${THEIA_INTERNAL_LIB_PREFIX}/cereal/include
+- ${THEIA_INTERNAL_LIB_PREFIX}/flann
+- ${THEIA_INTERNAL_LIB_PREFIX}/gtest
+- ${THEIA_INTERNAL_LIB_PREFIX}/gtest/include
+ ${THEIA_INTERNAL_LIB_PREFIX}/optimo
+ ${THEIA_INTERNAL_LIB_PREFIX}/spectra
+ ${THEIA_INTERNAL_LIB_PREFIX}/statx
+ ${THEIA_INTERNAL_LIB_PREFIX}/stlplus3
+- ${THEIA_INTERNAL_LIB_PREFIX}/vlfeat
+- ${THEIA_INTERNAL_LIB_PREFIX}/visual_sfm)
++ ${THEIA_INTERNAL_LIB_PREFIX}/visual_sfm
++ ${THEIA_INTERNAL_LIB_PREFIX}/vlfeat)
+
+ list(APPEND THEIA_INCLUDE_DIRS ${THEIA_INTERNAL_LIBS_INCLUDES})
+
+diff --git a/libraries/CMakeLists.txt b/libraries/CMakeLists.txt
+index 84f3829..f88d75a 100644
+--- a/libraries/CMakeLists.txt
++++ b/libraries/CMakeLists.txt
+@@ -5,12 +5,6 @@ endif (${BUILD_TESTING})
+ # AKAZE feature extractor.
+ add_subdirectory(akaze)
+
+-# Cereal for portable IO.
+-add_subdirectory(cereal)
+-
+-# Flann for fast approximate nearest neighbor searches.
+-add_subdirectory(flann)
+-
+ # Add Optimo.
+ add_subdirectory(optimo)
+
+@@ -24,4 +18,4 @@ add_subdirectory(stlplus3)
+ add_subdirectory(vlfeat)
+
+ # Add VisualSfM files.
+-add_subdirectory(visual_sfm)
+\ No newline at end of file
++add_subdirectory(visual_sfm)
+diff --git a/libraries/statx/CMakeLists.txt b/libraries/statx/CMakeLists.txt
+index 23b9e49..af236a3 100644
+--- a/libraries/statx/CMakeLists.txt
++++ b/libraries/statx/CMakeLists.txt
+@@ -103,7 +103,11 @@ if(STATX_WITH_CERES)
+ endif(CERES_FOUND)
+
+ # BLAS
+- find_package(BLAS REQUIRED)
++ if(UNIX AND NOT APPLE)
++ find_package(OpenBLAS REQUIRED)
++ else()
++ find_package(BLAS REQUIRED)
++ endif()
+
+ # LAPACK
+ find_package(LAPACK REQUIRED)
+@@ -129,7 +133,6 @@ set(XGAMMA_FILES ${XGAMMA_FUNCS}/asa121.cpp ${XGAMMA_FUNCS}/asa103.cpp)
+
+ # Setting CXX FLAGS appropriately. The code below was inspired from
+ # Google CERES and modified for this library.
+-set (CMAKE_BUILD_TYPE Release)
+ set (STATX_CXX_FLAGS)
+
+ if (CMAKE_BUILD_TYPE STREQUAL "Release")
+diff --git a/libraries/vlfeat/CMakeLists.txt b/libraries/vlfeat/CMakeLists.txt
+index 7f4ffc7..15bca12 100644
+--- a/libraries/vlfeat/CMakeLists.txt
++++ b/libraries/vlfeat/CMakeLists.txt
+@@ -18,14 +18,19 @@ set(vl_sources
+ vl/random.c
+ vl/sift.c
+ vl/vlad.c)
++
+ set_source_files_properties(${vl_sources} PROPERTIES LANGUAGE C)
+
++add_library(vlfeat ${vl_sources})
++
+ if (MSVC)
+- add_definitions(-DVL_BUILD_DLL)
+- add_definitions(-DVL_DISABLE_SSE2)
++ if(BUILD_SHARED_LIBS)
++ target_compile_definitions(vlfeat PRIVATE VL_BUILD_DLL)
++ target_compile_definitions(vlfeat INTERFACE BUILD_DLL)
++ endif()
++ target_compile_definitions(vlfeat PUBLIC VL_DISABLE_SSE2)
+ endif (MSVC)
+
+-add_library(vlfeat SHARED ${vl_sources})
+ install(TARGETS vlfeat
+ EXPORT TheiaExport
+ RUNTIME DESTINATION bin
+diff --git a/libraries/vlfeat/vl/host.h b/libraries/vlfeat/vl/host.h
+index 293fe1f..0ea3d42 100644
+--- a/libraries/vlfeat/vl/host.h
++++ b/libraries/vlfeat/vl/host.h
+@@ -312,27 +312,31 @@ defined(__DOXYGEN__)
+ #if defined(VL_COMPILER_MSC) & ! defined(__DOXYGEN__)
+ # define VL_UNUSED
+ # define VL_INLINE static __inline
+-# define snprintf _snprintf
+ # define isnan _isnan
+-# ifdef VL_BUILD_DLL
++# if defined(VL_BUILD_DLL)
+ # ifdef __cplusplus
+ # define VL_EXPORT extern "C" __declspec(dllexport)
+ # else
+ # define VL_EXPORT extern __declspec(dllexport)
+ # endif
+-# else
++# elif defined(VL_DLL)
+ # ifdef __cplusplus
+ # define VL_EXPORT extern "C" __declspec(dllimport)
+ # else
+ # define VL_EXPORT extern __declspec(dllimport)
+ # endif
++# else
++# ifdef __cplusplus
++# define VL_EXPORT extern "C"
++# else
++# define VL_EXPORT extern
++# endif
+ # endif
+ #endif
+
+ #if defined(VL_COMPILER_LCC) & ! defined(__DOXYGEN__)
+ # define VL_UNUSED
+ # define VL_INLINE static __inline
+-# define snprintf _snprintf
+ # define isnan _isnan
+ VL_INLINE float fabsf(float x) { return (float) fabs((double) x) ; }
+ # ifdef VL_BUILD_DLL
+diff --git a/src/theia/CMakeLists.txt b/src/theia/CMakeLists.txt
+index 6830f71..768586d 100644
+--- a/src/theia/CMakeLists.txt
++++ b/src/theia/CMakeLists.txt
+@@ -209,7 +209,6 @@ set(THEIA_LIBRARY_DEPENDENCIES
+ ${SUITESPARSE_LIBRARIES}
+ ${OPENIMAGEIO_LIBRARIES}
+ akaze
+- flann_cpp
+ statx
+ stlplus3
+ vlfeat