mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-24 03:17:49 +08:00
459 lines
17 KiB
Diff
459 lines
17 KiB
Diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index 9c1b150..1adbfed 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -105,10 +105,10 @@ add_definitions(-DTHEIA_DATA_DIR="${CMAKE_SOURCE_DIR}/data")
|
|
|
|
# Eigen
|
|
set(MIN_EIGEN_VERSION 3.2.0)
|
|
-find_package(Eigen ${MIN_EIGEN_VERSION} REQUIRED)
|
|
-if (EIGEN_FOUND)
|
|
- message("-- Found Eigen version ${EIGEN_VERSION}: ${EIGEN_INCLUDE_DIRS}")
|
|
-endif (EIGEN_FOUND)
|
|
+find_package(Eigen3 ${MIN_EIGEN_VERSION} REQUIRED)
|
|
+if (EIGEN3_FOUND)
|
|
+ message("-- Found Eigen version ${EIGEN3_VERSION}: ${EIGEN3_INCLUDE_DIRS}")
|
|
+endif (EIGEN3_FOUND)
|
|
|
|
# Use a larger inlining threshold for Clang, since it hobbles Eigen,
|
|
# resulting in an unreasonably slow version of the blas routines. The
|
|
@@ -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/optimo/CMakeLists.txt b/libraries/optimo/CMakeLists.txt
|
|
index 80f5e5f..ea57f1b 100644
|
|
--- a/libraries/optimo/CMakeLists.txt
|
|
+++ b/libraries/optimo/CMakeLists.txt
|
|
@@ -67,11 +67,11 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
|
|
|
# Locations to search for Eigen
|
|
# Eigen
|
|
-find_package(Eigen REQUIRED)
|
|
-if (EIGEN_FOUND)
|
|
- message("-- Found Eigen version ${EIGEN_VERSION}: ${EIGEN_INCLUDE_DIRS}")
|
|
-endif (EIGEN_FOUND)
|
|
-include_directories(${EIGEN_INCLUDE_DIRS})
|
|
+find_package(Eigen3 REQUIRED)
|
|
+if (EIGEN3_FOUND)
|
|
+ message("-- Found Eigen version ${EIGEN3_VERSION_STRING}: ${EIGEN3_INCLUDE_DIRS}")
|
|
+endif (EIGEN3_FOUND)
|
|
+include_directories(${EIGEN3_INCLUDE_DIRS})
|
|
|
|
# Setting CXX FLAGS appropriately. The code below was inspired from
|
|
# Google CERES and modified for this library.
|
|
diff --git a/libraries/statx/CMakeLists.txt b/libraries/statx/CMakeLists.txt
|
|
index 23b9e49..c58a550 100644
|
|
--- a/libraries/statx/CMakeLists.txt
|
|
+++ b/libraries/statx/CMakeLists.txt
|
|
@@ -72,11 +72,11 @@ message("-- Default Install prefix: ${CMAKE_INSTALL_PREFIX}")
|
|
option(STATX_WITH_CERES "Enables GEV parameter estimation using Ceres" ON)
|
|
|
|
# Eigen
|
|
-find_package(Eigen REQUIRED)
|
|
-if (EIGEN_FOUND)
|
|
- message("-- Found Eigen version ${EIGEN_VERSION}: ${EIGEN_INCLUDE_DIRS}")
|
|
-endif (EIGEN_FOUND)
|
|
-include_directories(${EIGEN_INCLUDE_DIRS})
|
|
+find_package(Eigen3 REQUIRED)
|
|
+if (EIGEN3_FOUND)
|
|
+ message("-- Found Eigen version ${EIGEN3_VERSION_STRING}: ${EIGEN3_INCLUDE_DIRS}")
|
|
+endif (EIGEN3_FOUND)
|
|
+include_directories(${EIGEN3_INCLUDE_DIRS})
|
|
|
|
# Google Flags
|
|
find_package(Gflags REQUIRED)
|
|
@@ -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
|