mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-26 01:30:55 +08:00
[ceres + downstreams] Update to ceres to 2.2.0 (#42475)
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com> Co-authored-by: Kai Pastor <dg0yt@darc.de>
This commit is contained in:
parent
6a4692e70f
commit
4a4b6702f1
@ -1,25 +0,0 @@
|
||||
diff --git a/cartographer/common/internal/testing/thread_pool_for_testing.cc b/cartographer/common/internal/testing/thread_pool_for_testing.cc
|
||||
index f804e13..c987f68 100644
|
||||
--- a/cartographer/common/internal/testing/thread_pool_for_testing.cc
|
||||
+++ b/cartographer/common/internal/testing/thread_pool_for_testing.cc
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
#include "cartographer/common/internal/testing/thread_pool_for_testing.h"
|
||||
|
||||
-#include <unistd.h>
|
||||
+//#include <unistd.h>
|
||||
#include <algorithm>
|
||||
#include <chrono>
|
||||
#include <numeric>
|
||||
diff --git a/cartographer/mapping/pose_graph_interface.h b/cartographer/mapping/pose_graph_interface.h
|
||||
index 6483ef4..6456720 100644
|
||||
--- a/cartographer/mapping/pose_graph_interface.h
|
||||
+++ b/cartographer/mapping/pose_graph_interface.h
|
||||
@@ -18,6 +18,7 @@
|
||||
#define CARTOGRAPHER_MAPPING_POSE_GRAPH_INTERFACE_H_
|
||||
|
||||
#include <vector>
|
||||
+#include <array>
|
||||
|
||||
#include "cartographer/common/optional.h"
|
||||
#include "cartographer/mapping/id.h"
|
@ -1,22 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 2e3a686be..f2a0c5d8e 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -300,7 +300,7 @@ foreach(HDR ${INSTALL_GENERATED_HDRS})
|
||||
)
|
||||
endforeach()
|
||||
|
||||
-set(CARTOGRAPHER_CMAKE_DIR share/cartographer/cmake)
|
||||
+set(CARTOGRAPHER_CMAKE_DIR share/cartographer)
|
||||
include(CMakePackageConfigHelpers)
|
||||
configure_package_config_file(
|
||||
cartographer-config.cmake.in
|
||||
@@ -311,7 +311,7 @@ configure_package_config_file(
|
||||
|
||||
install(
|
||||
EXPORT CartographerExport
|
||||
- DESTINATION share/cartographer/cmake/
|
||||
+ DESTINATION share/cartographer/
|
||||
FILE CartographerTargets.cmake
|
||||
)
|
||||
|
@ -1,175 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 2e3a686..ed161e4 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -25,27 +25,33 @@ option(BUILD_GRPC "build Cartographer gRPC support" false)
|
||||
option(BUILD_PROMETHEUS "build Prometheus monitoring support" false)
|
||||
|
||||
include("${PROJECT_SOURCE_DIR}/cmake/functions.cmake")
|
||||
-google_initialize_cartographer_project()
|
||||
-google_enable_testing()
|
||||
+#google_initialize_cartographer_project()
|
||||
+#google_enable_testing()
|
||||
|
||||
find_package(Boost REQUIRED COMPONENTS iostreams)
|
||||
find_package(Ceres REQUIRED COMPONENTS SuiteSparse)
|
||||
find_package(Eigen3 REQUIRED)
|
||||
-find_package(LuaGoogle REQUIRED)
|
||||
-find_package(Protobuf 3.0.0 REQUIRED)
|
||||
+find_package(Lua REQUIRED)
|
||||
+find_package(Protobuf REQUIRED)
|
||||
+find_package(glog REQUIRED)
|
||||
+find_package(gflags REQUIRED)
|
||||
|
||||
if (${BUILD_GRPC})
|
||||
find_package(async_grpc REQUIRED)
|
||||
endif()
|
||||
|
||||
-include(FindPkgConfig)
|
||||
-PKG_SEARCH_MODULE(CAIRO REQUIRED cairo>=1.12.16)
|
||||
+#include(FindPkgConfig)
|
||||
+#PKG_SEARCH_MODULE(CAIRO REQUIRED cairo>=1.12.16)
|
||||
+#if(CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
+# set(CAIRO_LIB_SUFFIX d)
|
||||
+#endif()
|
||||
+find_library(CAIRO_LIBRARY cairo${CAIRO_LIB_SUFFIX})
|
||||
|
||||
# Only build the documentation if we can find Sphinx.
|
||||
-find_package(Sphinx)
|
||||
-if(SPHINX_FOUND)
|
||||
- add_subdirectory("docs")
|
||||
-endif()
|
||||
+#find_package(Sphinx)
|
||||
+#if(SPHINX_FOUND)
|
||||
+# add_subdirectory("docs")
|
||||
+#endif()
|
||||
|
||||
# Install catkin package.xml
|
||||
install(FILES package.xml DESTINATION share/cartographer)
|
||||
@@ -169,20 +175,20 @@ configure_file(
|
||||
${PROJECT_SOURCE_DIR}/cartographer/common/config.h.cmake
|
||||
${PROJECT_BINARY_DIR}/cartographer/common/config.h)
|
||||
|
||||
-google_binary(cartographer_autogenerate_ground_truth
|
||||
- SRCS
|
||||
- cartographer/ground_truth/autogenerate_ground_truth_main.cc
|
||||
-)
|
||||
-
|
||||
-google_binary(cartographer_compute_relations_metrics
|
||||
- SRCS
|
||||
- cartographer/ground_truth/compute_relations_metrics_main.cc
|
||||
-)
|
||||
-
|
||||
-google_binary(cartographer_migrate_serialization_format
|
||||
- SRCS
|
||||
- cartographer/io/migrate_serialization_format_main.cc
|
||||
-)
|
||||
+#google_binary(cartographer_autogenerate_ground_truth
|
||||
+# SRCS
|
||||
+# cartographer/ground_truth/autogenerate_ground_truth_main.cc
|
||||
+#)
|
||||
+#
|
||||
+#google_binary(cartographer_compute_relations_metrics
|
||||
+# SRCS
|
||||
+# cartographer/ground_truth/compute_relations_metrics_main.cc
|
||||
+#)
|
||||
+#
|
||||
+#google_binary(cartographer_migrate_serialization_format
|
||||
+# SRCS
|
||||
+# cartographer/io/migrate_serialization_format_main.cc
|
||||
+#)
|
||||
|
||||
if(${BUILD_GRPC})
|
||||
google_binary(cartographer_grpc_server
|
||||
@@ -213,18 +219,16 @@ target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC ${Boost_LIBRARIES})
|
||||
|
||||
# We expect find_package(Ceres) to have located these for us.
|
||||
-target_link_libraries(${PROJECT_NAME} PUBLIC glog)
|
||||
-target_link_libraries(${PROJECT_NAME} PUBLIC gflags)
|
||||
+#target_link_libraries(${PROJECT_NAME} PUBLIC glog)
|
||||
+#target_link_libraries(${PROJECT_NAME} PUBLIC gflags)
|
||||
+#target_link_libraries(${PROJECT_NAME} PUBLIC ${CAIRO_LIBRARY})
|
||||
|
||||
-target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC
|
||||
- "${CAIRO_INCLUDE_DIRS}")
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC ${CAIRO_LIBRARIES})
|
||||
|
||||
-target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC
|
||||
- ${PROTOBUF_INCLUDE_DIR})
|
||||
# TODO(hrapp): This should not explicitly list pthread and use
|
||||
# PROTOBUF_LIBRARIES, but that failed on first try.
|
||||
-target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY} pthread)
|
||||
+#target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY} pthread)
|
||||
+target_link_libraries(${PROJECT_NAME} PUBLIC protobuf::libprotobuf)
|
||||
if(${BUILD_GRPC})
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC grpc++)
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC async_grpc)
|
||||
@@ -237,7 +241,7 @@ endif()
|
||||
set(TARGET_COMPILE_FLAGS "${TARGET_COMPILE_FLAGS} ${GOOG_CXX_FLAGS}")
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
COMPILE_FLAGS ${TARGET_COMPILE_FLAGS})
|
||||
-
|
||||
+if(0)
|
||||
set(TEST_LIB
|
||||
cartographer_test_library
|
||||
)
|
||||
@@ -265,7 +269,7 @@ foreach(ABS_FIL ${ALL_TESTS})
|
||||
endif()
|
||||
target_link_libraries("${TEST_TARGET_NAME}" PUBLIC ${TEST_LIB})
|
||||
endforeach()
|
||||
-
|
||||
+endif()
|
||||
# Add the binary directory first, so that port.h is included after it has
|
||||
# been generated.
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC
|
||||
diff --git a/cartographer/common/math.h b/cartographer/common/math.h
|
||||
index c4a77ef..0248f66 100644
|
||||
--- a/cartographer/common/math.h
|
||||
+++ b/cartographer/common/math.h
|
||||
@@ -17,6 +17,10 @@
|
||||
#ifndef CARTOGRAPHER_COMMON_MATH_H_
|
||||
#define CARTOGRAPHER_COMMON_MATH_H_
|
||||
|
||||
+#ifndef M_PI
|
||||
+#define M_PI 3.14159265358979323846
|
||||
+#endif
|
||||
+
|
||||
#include <cmath>
|
||||
#include <vector>
|
||||
|
||||
diff --git a/cartographer/common/thread_pool.cc b/cartographer/common/thread_pool.cc
|
||||
index bc3c743..db424d1 100644
|
||||
--- a/cartographer/common/thread_pool.cc
|
||||
+++ b/cartographer/common/thread_pool.cc
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
#include "cartographer/common/thread_pool.h"
|
||||
|
||||
-#include <unistd.h>
|
||||
+//#include <unistd.h>
|
||||
#include <algorithm>
|
||||
#include <chrono>
|
||||
#include <numeric>
|
||||
diff --git a/cmake/functions.cmake b/cmake/functions.cmake
|
||||
index 3bfd343..3d961b0 100644
|
||||
--- a/cmake/functions.cmake
|
||||
+++ b/cmake/functions.cmake
|
||||
@@ -118,12 +118,12 @@ macro(google_initialize_cartographer_project)
|
||||
set(LIST_FILES_CMD "find ${PROJECT_SOURCE_DIR}/ -not -iwholename '*.git*' | sort | sed 's/^/#/'")
|
||||
set(FILES_LIST_PATH "${PROJECT_BINARY_DIR}/AllFiles.cmake")
|
||||
set(DETECT_CHANGES_CMD "bash" "-c" "${LIST_FILES_CMD} | diff -N -q ${FILES_LIST_PATH} - || ${LIST_FILES_CMD} > ${FILES_LIST_PATH}")
|
||||
- add_custom_target(${PROJECT_NAME}_detect_changes ALL
|
||||
- COMMAND ${DETECT_CHANGES_CMD}
|
||||
- VERBATIM
|
||||
- )
|
||||
+ #add_custom_target(${PROJECT_NAME}_detect_changes ALL
|
||||
+ # COMMAND ${DETECT_CHANGES_CMD}
|
||||
+ # VERBATIM
|
||||
+ #)
|
||||
if(NOT EXISTS ${FILES_LIST_PATH})
|
||||
- execute_process(COMMAND ${DETECT_CHANGES_CMD})
|
||||
+ #execute_process(COMMAND ${DETECT_CHANGES_CMD})
|
||||
endif()
|
||||
include(${FILES_LIST_PATH})
|
||||
endmacro()
|
@ -1,30 +0,0 @@
|
||||
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO googlecartographer/cartographer
|
||||
REF ${VERSION}
|
||||
SHA512 4e3b38ee40d9758cbd51f087578b82efb7d1199b4b7696d31f45938ac06250caaea2b4d85ccb0a848c958ba187a0101ee95c87323ca236c613995b23b215041c
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
fix-find-packages.patch
|
||||
fix-build-error.patch
|
||||
fix-cmake-location.patch
|
||||
)
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
OPTIONS_DEBUG
|
||||
-DFORCE_DEBUG_BUILD=True
|
||||
)
|
||||
|
||||
vcpkg_cmake_install()
|
||||
vcpkg_cmake_config_fixup()
|
||||
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/cartographer/CartographerTargets.cmake" "${SOURCE_PATH}/;" "")
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
# Clean
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
|
||||
|
||||
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
|
@ -1,30 +0,0 @@
|
||||
{
|
||||
"name": "cartographer",
|
||||
"version": "1.0.0",
|
||||
"port-version": 6,
|
||||
"description": "Google 2D & 3D SLAM package",
|
||||
"homepage": "https://github.com/googlecartographer/cartographer",
|
||||
"dependencies": [
|
||||
"boost-iostreams",
|
||||
"cairo",
|
||||
{
|
||||
"name": "ceres",
|
||||
"features": [
|
||||
"suitesparse"
|
||||
]
|
||||
},
|
||||
"gflags",
|
||||
"glog",
|
||||
"gtest",
|
||||
"lua",
|
||||
"protobuf",
|
||||
{
|
||||
"name": "vcpkg-cmake",
|
||||
"host": true
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-cmake-config",
|
||||
"host": true
|
||||
}
|
||||
]
|
||||
}
|
@ -1,11 +1,68 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 33e98b1..f275d68 100644
|
||||
index 8e49c19e..f8c61d92 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -426,27 +426,7 @@ if (MINIGLOG)
|
||||
@@ -292,27 +292,28 @@ if (SUITESPARSE)
|
||||
# built with SuiteSparse support.
|
||||
|
||||
# Check for SuiteSparse and dependencies.
|
||||
- find_package(SuiteSparse 4.5.6 COMPONENTS CHOLMOD SPQR
|
||||
- OPTIONAL_COMPONENTS Partition)
|
||||
- if (SuiteSparse_FOUND)
|
||||
- set(SuiteSparse_DEPENDENCY "find_dependency(SuiteSparse ${SuiteSparse_VERSION})")
|
||||
+ find_package(SuiteSparse REQUIRED CONFIG)
|
||||
+ if (SUITESPARSE_FOUND)
|
||||
+ set(SuiteSparse_DEPENDENCY "find_dependency(SuiteSparse ${SuiteSparse_VERSION} CONFIG)")
|
||||
# By default, if all of SuiteSparse's dependencies are found, Ceres is
|
||||
# built with SuiteSparse support.
|
||||
message("-- Found SuiteSparse ${SuiteSparse_VERSION}, "
|
||||
"building with SuiteSparse.")
|
||||
-
|
||||
- if (SuiteSparse_NO_CMAKE OR NOT SuiteSparse_DIR)
|
||||
- install(FILES ${Ceres_SOURCE_DIR}/cmake/FindSuiteSparse.cmake
|
||||
- ${Ceres_SOURCE_DIR}/cmake/FindMETIS.cmake
|
||||
- DESTINATION ${RELATIVE_CMAKECONFIG_INSTALL_DIR})
|
||||
- endif (SuiteSparse_NO_CMAKE OR NOT SuiteSparse_DIR)
|
||||
- else (SuiteSparse_FOUND)
|
||||
+ add_library(SuiteSparse::CONFIG ALIAS SuiteSparse::suitesparseconfig)
|
||||
+ add_library(SuiteSparse::AMD ALIAS SuiteSparse::amd)
|
||||
+ add_library(SuiteSparse::CAMD ALIAS SuiteSparse::camd)
|
||||
+ add_library(SuiteSparse::CCOLAMD ALIAS SuiteSparse::ccolamd)
|
||||
+ add_library(SuiteSparse::COLAMD ALIAS SuiteSparse::colamd)
|
||||
+ add_library(SuiteSparse::CHOLMOD ALIAS SuiteSparse::cholmod)
|
||||
+ add_library(SuiteSparse::SPQR ALIAS SuiteSparse::spqr)
|
||||
+ add_library(METIS::METIS ALIAS metis)
|
||||
+ else (SUITESPARSE_FOUND)
|
||||
# Disable use of SuiteSparse if it cannot be found and continue.
|
||||
message("-- Did not find all SuiteSparse dependencies, disabling "
|
||||
"SuiteSparse support.")
|
||||
update_cache_variable(SUITESPARSE OFF)
|
||||
list(APPEND CERES_COMPILE_OPTIONS CERES_NO_SUITESPARSE)
|
||||
- endif (SuiteSparse_FOUND)
|
||||
+ endif (SUITESPARSE_FOUND)
|
||||
else (SUITESPARSE)
|
||||
message("-- Building without SuiteSparse.")
|
||||
list(APPEND CERES_COMPILE_OPTIONS CERES_NO_SUITESPARSE)
|
||||
@@ -395,9 +396,12 @@ endif()
|
||||
# GFlags.
|
||||
if (GFLAGS)
|
||||
# Don't search with REQUIRED as we can continue without gflags.
|
||||
- find_package(gflags 2.2.0)
|
||||
+ find_package(gflags CONFIG REQUIRED)
|
||||
if (gflags_FOUND)
|
||||
- if (TARGET gflags)
|
||||
+ if (TARGET gflags::gflags)
|
||||
+ if(NOT TARGET gflags)
|
||||
+ add_library(gflags ALIAS gflags::gflags)
|
||||
+ endif()
|
||||
message("-- Found Google Flags (gflags) version ${gflags_VERSION}: ${gflags_DIR}")
|
||||
else()
|
||||
message("-- Detected version of gflags: ${gflags_VERSION} does not define "
|
||||
@@ -430,28 +434,7 @@ if (MINIGLOG)
|
||||
mark_as_advanced(FORCE GLOG_INCLUDE_DIR
|
||||
GLOG_LIBRARY)
|
||||
else (MINIGLOG)
|
||||
unset(MINIGLOG_MAX_LOG_LEVEL CACHE)
|
||||
- unset(MINIGLOG_MAX_LOG_LEVEL CACHE)
|
||||
- # Don't search with REQUIRED so that configuration continues if not found and
|
||||
- # we can output an error messages explaining MINIGLOG option.
|
||||
- find_package(Glog)
|
||||
@ -29,9 +86,18 @@ index 33e98b1..f275d68 100644
|
||||
- message("-- Found Google Log (glog)." ${GLOG_GFLAGS_DEPENDENCY_MESSAGE})
|
||||
+ find_package(Glog REQUIRED)
|
||||
endif (MINIGLOG)
|
||||
|
||||
|
||||
if (NOT SCHUR_SPECIALIZATIONS)
|
||||
@@ -760,12 +740,6 @@ install(FILES "${Ceres_BINARY_DIR}/CeresConfig-install.cmake"
|
||||
@@ -466,7 +449,7 @@ endif (NOT CUSTOM_BLAS)
|
||||
|
||||
if (BUILD_BENCHMARKS)
|
||||
# Version 1.3 was first to provide import targets
|
||||
- find_package(benchmark 1.3 QUIET)
|
||||
+ find_package(benchmark CONFIG REQUIRED)
|
||||
if (benchmark_FOUND)
|
||||
message("-- Found Google benchmark library. Building Ceres benchmarks.")
|
||||
else()
|
||||
@@ -722,12 +705,6 @@ install(FILES "${Ceres_BINARY_DIR}/CeresConfig-install.cmake"
|
||||
DESTINATION ${RELATIVE_CMAKECONFIG_INSTALL_DIR})
|
||||
install(FILES "${Ceres_BINARY_DIR}/CeresConfigVersion.cmake"
|
||||
DESTINATION ${RELATIVE_CMAKECONFIG_INSTALL_DIR})
|
||||
@ -41,6 +107,6 @@ index 33e98b1..f275d68 100644
|
||||
- install(FILES "${Ceres_SOURCE_DIR}/cmake/FindGlog.cmake"
|
||||
- DESTINATION ${RELATIVE_CMAKECONFIG_INSTALL_DIR})
|
||||
-endif()
|
||||
|
||||
|
||||
if (PROVIDE_UNINSTALL_TARGET)
|
||||
# Create an uninstall target to remove all installed files.
|
||||
|
@ -1,10 +1,10 @@
|
||||
diff --git a/internal/ceres/CMakeLists.txt b/internal/ceres/CMakeLists.txt
|
||||
index 0e33263..299b373 100644
|
||||
index f9fc2415..0aaabe4d 100644
|
||||
--- a/internal/ceres/CMakeLists.txt
|
||||
+++ b/internal/ceres/CMakeLists.txt
|
||||
@@ -101,17 +101,9 @@ endif()
|
||||
find_package(Threads QUIET)
|
||||
list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES Threads::Threads)
|
||||
@@ -85,17 +85,9 @@ endif (SCHUR_SPECIALIZATIONS)
|
||||
set_source_files_properties(${CERES_INTERNAL_SCHUR_FILES} PROPERTIES
|
||||
SKIP_UNITY_BUILD_INCLUSION ON)
|
||||
|
||||
-if (NOT MINIGLOG AND GLOG_FOUND)
|
||||
- list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES ${GLOG_LIBRARIES})
|
||||
|
@ -1,8 +1,17 @@
|
||||
diff --git a/cmake/CeresConfig.cmake.in b/cmake/CeresConfig.cmake.in
|
||||
index 4745483..b55462d 100644
|
||||
index ceb7e269..5dee7e3c 100644
|
||||
--- a/cmake/CeresConfig.cmake.in
|
||||
+++ b/cmake/CeresConfig.cmake.in
|
||||
@@ -217,55 +217,14 @@ else (Eigen3_FOUND)
|
||||
@@ -195,7 +195,7 @@ set(CERES_EIGEN_VERSION @Eigen3_VERSION@)
|
||||
# Search quietly to control the timing of the error message if not found. The
|
||||
# search should be for an exact match, but for usability reasons do a soft
|
||||
# match and reject with an explanation below.
|
||||
-find_package(Eigen3 ${CERES_EIGEN_VERSION} QUIET)
|
||||
+find_package(Eigen3 CONFIG ${CERES_EIGEN_VERSION} QUIET)
|
||||
if (Eigen3_FOUND)
|
||||
if (NOT Eigen3_VERSION VERSION_EQUAL CERES_EIGEN_VERSION)
|
||||
# CMake's VERSION check in FIND_PACKAGE() will accept any version >= the
|
||||
@@ -217,55 +217,8 @@ else (Eigen3_FOUND)
|
||||
endif (Eigen3_FOUND)
|
||||
|
||||
# glog (and maybe gflags).
|
||||
@ -35,15 +44,13 @@ index 4745483..b55462d 100644
|
||||
- # Search quietly s/t we control the timing of the error message if not found.
|
||||
- find_package(Glog QUIET)
|
||||
- endif()
|
||||
|
||||
-
|
||||
- if (GLOG_FOUND)
|
||||
- ceres_message(STATUS "Found required Ceres dependency: glog")
|
||||
- else()
|
||||
- ceres_report_not_found("Missing required Ceres dependency: glog.")
|
||||
- endif()
|
||||
+include (CMakeFindDependencyMacro)
|
||||
+find_dependency (glog NO_MODULE)
|
||||
|
||||
-
|
||||
- # gflags is only a public dependency of Ceres via glog, thus is not required
|
||||
- # if Ceres was built with MINIGLOG.
|
||||
- if (CERES_USES_GFLAGS)
|
||||
@ -57,10 +64,8 @@ index 4745483..b55462d 100644
|
||||
- endif()
|
||||
- endif()
|
||||
-endif(CERES_USES_MINIGLOG)
|
||||
+# SuiteSparse
|
||||
+if (@SUITESPARSE@)
|
||||
+ find_dependency(SuiteSparse CONFIG)
|
||||
+endif()
|
||||
+include(CMakeFindDependencyMacro)
|
||||
+find_dependency(glog NO_MODULE)
|
||||
|
||||
# Import exported Ceres targets, if they have not already been imported.
|
||||
if (NOT TARGET ceres AND NOT Ceres_BINARY_DIR)
|
||||
|
67
ports/ceres/0004_remove_broken_fake_ba_jac.patch
Normal file
67
ports/ceres/0004_remove_broken_fake_ba_jac.patch
Normal file
@ -0,0 +1,67 @@
|
||||
diff --git a/internal/ceres/fake_bundle_adjustment_jacobian.cc b/internal/ceres/fake_bundle_adjustment_jacobian.cc
|
||||
index efe4d8d7..22f34059 100644
|
||||
--- a/internal/ceres/fake_bundle_adjustment_jacobian.cc
|
||||
+++ b/internal/ceres/fake_bundle_adjustment_jacobian.cc
|
||||
@@ -96,25 +96,4 @@ std::unique_ptr<BlockSparseMatrix> CreateFakeBundleAdjustmentJacobian(
|
||||
return jacobian;
|
||||
}
|
||||
|
||||
-std::pair<
|
||||
- std::unique_ptr<PartitionedMatrixView<2, Eigen::Dynamic, Eigen::Dynamic>>,
|
||||
- std::unique_ptr<BlockSparseMatrix>>
|
||||
-CreateFakeBundleAdjustmentPartitionedJacobian(int num_cameras,
|
||||
- int num_points,
|
||||
- int camera_size,
|
||||
- int landmark_size,
|
||||
- double visibility,
|
||||
- std::mt19937& rng) {
|
||||
- using PartitionedView =
|
||||
- PartitionedMatrixView<2, Eigen::Dynamic, Eigen::Dynamic>;
|
||||
- auto block_sparse_matrix = CreateFakeBundleAdjustmentJacobian(
|
||||
- num_cameras, num_points, camera_size, landmark_size, visibility, rng);
|
||||
- LinearSolver::Options options;
|
||||
- options.elimination_groups.push_back(num_points);
|
||||
- auto partitioned_view =
|
||||
- std::make_unique<PartitionedView>(options, *block_sparse_matrix);
|
||||
- return std::make_pair(std::move(partitioned_view),
|
||||
- std::move(block_sparse_matrix));
|
||||
-}
|
||||
-
|
||||
} // namespace ceres::internal
|
||||
diff --git a/internal/ceres/fake_bundle_adjustment_jacobian.h b/internal/ceres/fake_bundle_adjustment_jacobian.h
|
||||
index ced1b161..0448dbf3 100644
|
||||
--- a/internal/ceres/fake_bundle_adjustment_jacobian.h
|
||||
+++ b/internal/ceres/fake_bundle_adjustment_jacobian.h
|
||||
@@ -47,32 +47,6 @@ std::unique_ptr<BlockSparseMatrix> CreateFakeBundleAdjustmentJacobian(
|
||||
double visibility,
|
||||
std::mt19937& prng);
|
||||
|
||||
-template <int kEBlockSize = 3, int kFBlockSize = 6>
|
||||
-std::pair<std::unique_ptr<PartitionedMatrixView<2, kEBlockSize, kFBlockSize>>,
|
||||
- std::unique_ptr<BlockSparseMatrix>>
|
||||
-CreateFakeBundleAdjustmentPartitionedJacobian(int num_cameras,
|
||||
- int num_points,
|
||||
- double visibility,
|
||||
- std::mt19937& rng) {
|
||||
- using PartitionedView = PartitionedMatrixView<2, kEBlockSize, kFBlockSize>;
|
||||
- auto block_sparse_matrix = CreateFakeBundleAdjustmentJacobian(
|
||||
- num_cameras, num_points, kFBlockSize, kEBlockSize, visibility, rng);
|
||||
- auto partitioned_view =
|
||||
- std::make_unique<PartitionedView>(*block_sparse_matrix, num_points);
|
||||
- return std::make_pair(std::move(partitioned_view),
|
||||
- std::move(block_sparse_matrix));
|
||||
-}
|
||||
-
|
||||
-std::pair<
|
||||
- std::unique_ptr<PartitionedMatrixView<2, Eigen::Dynamic, Eigen::Dynamic>>,
|
||||
- std::unique_ptr<BlockSparseMatrix>>
|
||||
-CreateFakeBundleAdjustmentPartitionedJacobian(int num_cameras,
|
||||
- int num_points,
|
||||
- int camera_size,
|
||||
- int landmark_size,
|
||||
- double visibility,
|
||||
- std::mt19937& rng);
|
||||
-
|
||||
} // namespace ceres::internal
|
||||
|
||||
#endif // CERES_INTERNAL_FAKE_BUNDLE_ADJUSTMENT_JACOBIAN
|
@ -1,112 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 2d241fe..b79454d 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -244,7 +244,7 @@ else (CUDA)
|
||||
endif (CUDA)
|
||||
|
||||
if (LAPACK)
|
||||
- find_package(LAPACK QUIET)
|
||||
+ find_package(LAPACK REQUIRED)
|
||||
if (LAPACK_FOUND)
|
||||
message("-- Found LAPACK library: ${LAPACK_LIBRARIES}")
|
||||
else (LAPACK_FOUND)
|
||||
@@ -266,7 +266,8 @@ if (SUITESPARSE)
|
||||
# built with SuiteSparse support.
|
||||
|
||||
# Check for SuiteSparse and dependencies.
|
||||
- find_package(SuiteSparse 4.0 COMPONENTS CHOLMOD SPQR)
|
||||
+ find_package(suitesparse CONFIG REQUIRED)
|
||||
+ set(SuiteSparse_FOUND 1)
|
||||
if (SuiteSparse_FOUND)
|
||||
set(SuiteSparse_DEPENDENCY "find_dependency(SuiteSparse ${SuiteSparse_VERSION})")
|
||||
# By default, if all of SuiteSparse's dependencies are found, Ceres is
|
||||
@@ -274,11 +275,11 @@ if (SUITESPARSE)
|
||||
message("-- Found SuiteSparse ${SuiteSparse_VERSION}, "
|
||||
"building with SuiteSparse.")
|
||||
|
||||
- if (SuiteSparse_NO_CMAKE OR NOT SuiteSparse_DIR)
|
||||
+ if (0)
|
||||
install(FILES ${Ceres_SOURCE_DIR}/cmake/FindSuiteSparse.cmake
|
||||
${Ceres_SOURCE_DIR}/cmake/FindMETIS.cmake
|
||||
DESTINATION ${RELATIVE_CMAKECONFIG_INSTALL_DIR})
|
||||
- endif (SuiteSparse_NO_CMAKE OR NOT SuiteSparse_DIR)
|
||||
+ endif ()
|
||||
else (SuiteSparse_FOUND)
|
||||
# Disable use of SuiteSparse if it cannot be found and continue.
|
||||
message("-- Did not find all SuiteSparse dependencies, disabling "
|
||||
@@ -294,7 +295,7 @@ endif (SUITESPARSE)
|
||||
# CXSparse.
|
||||
if (CXSPARSE)
|
||||
# Don't search with REQUIRED as we can continue without CXSparse.
|
||||
- find_package(CXSparse)
|
||||
+ find_package(CXSparse REQUIRED)
|
||||
if (CXSparse_FOUND)
|
||||
set(CXSparse_DEPENDENCY "find_dependency(CXSparse ${CXSparse_VERSION})")
|
||||
# By default, if CXSparse and all dependencies are found, Ceres is
|
||||
@@ -302,10 +303,10 @@ if (CXSPARSE)
|
||||
message("-- Found CXSparse version: ${CXSparse_VERSION}, "
|
||||
"building with CXSparse.")
|
||||
|
||||
- if (CXSparse_NO_CMAKE OR NOT CXSparse_DIR)
|
||||
+ if (0)
|
||||
install(FILES ${Ceres_SOURCE_DIR}/cmake/FindCXSparse.cmake
|
||||
DESTINATION ${RELATIVE_CMAKECONFIG_INSTALL_DIR})
|
||||
- endif (CXSparse_NO_CMAKE OR NOT CXSparse_DIR)
|
||||
+ endif ()
|
||||
else (CXSparse_FOUND)
|
||||
# Disable use of CXSparse if it cannot be found and continue.
|
||||
message("-- Did not find CXSparse, Building without CXSparse.")
|
||||
@@ -367,9 +368,10 @@ endif()
|
||||
# GFlags.
|
||||
if (GFLAGS)
|
||||
# Don't search with REQUIRED as we can continue without gflags.
|
||||
- find_package(gflags 2.2.0)
|
||||
+ find_package(gflags CONFIG REQUIRED)
|
||||
if (gflags_FOUND)
|
||||
- if (TARGET gflags)
|
||||
+ if (TARGET gflags::gflags)
|
||||
+ add_library(gflags ALIAS gflags::gflags)
|
||||
message("-- Found Google Flags (gflags) version ${gflags_VERSION}: ${gflags_DIR}")
|
||||
else()
|
||||
message("-- Detected version of gflags: ${gflags_VERSION} does not define "
|
||||
@@ -420,7 +422,7 @@ set_ceres_threading_model("${CERES_THREADING_MODEL}")
|
||||
|
||||
if (BUILD_BENCHMARKS)
|
||||
# Version 1.3 was first to provide import targets
|
||||
- find_package(benchmark 1.3 QUIET)
|
||||
+ find_package(benchmark CONFIG REQUIRED)
|
||||
if (benchmark_FOUND)
|
||||
message("-- Found Google benchmark library. Building Ceres benchmarks.")
|
||||
else()
|
||||
@@ -611,7 +613,7 @@ create_ceres_config("${CERES_COMPILE_OPTIONS}"
|
||||
add_subdirectory(internal/ceres)
|
||||
|
||||
if (BUILD_DOCUMENTATION)
|
||||
- find_package(Sphinx)
|
||||
+ find_package(Sphinx REQUIRED)
|
||||
if (NOT SPHINX_FOUND)
|
||||
message("-- Failed to find Sphinx and/or its dependencies, disabling build of documentation.")
|
||||
update_cache_variable(BUILD_DOCUMENTATION OFF)
|
||||
diff --git a/internal/ceres/CMakeLists.txt b/internal/ceres/CMakeLists.txt
|
||||
index 299b373..33d41d8 100644
|
||||
--- a/internal/ceres/CMakeLists.txt
|
||||
+++ b/internal/ceres/CMakeLists.txt
|
||||
@@ -108,14 +108,14 @@ endif (NOT MINIGLOG)
|
||||
if (SUITESPARSE AND SuiteSparse_FOUND)
|
||||
# Define version information for use in Solver::FullReport.
|
||||
add_definitions(-DCERES_SUITESPARSE_VERSION="${SuiteSparse_VERSION}")
|
||||
- list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES SuiteSparse::CHOLMOD
|
||||
- SuiteSparse::SPQR)
|
||||
+ list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES SuiteSparse::cholmod
|
||||
+ SuiteSparse::spqr)
|
||||
endif (SUITESPARSE AND SuiteSparse_FOUND)
|
||||
|
||||
if (CXSPARSE AND CXSparse_FOUND)
|
||||
# Define version information for use in Solver::FullReport.
|
||||
add_definitions(-DCERES_CXSPARSE_VERSION="${CXSparse_VERSION}")
|
||||
- list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES CXSparse::CXSparse)
|
||||
+ list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES ${CXSparse_LIBRARIES})
|
||||
endif (CXSPARSE AND CXSparse_FOUND)
|
||||
|
||||
if (ACCELERATESPARSE AND AccelerateSparse_FOUND)
|
@ -9,17 +9,16 @@ endif()
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO ceres-solver/ceres-solver
|
||||
REF f68321e7de8929fbcdb95dd42877531e64f72f66 #2.1.0
|
||||
SHA512 67bbd8a9385a40fe69d118fbc84da0fcc9aa1fbe14dd52f5403ed09686504213a1d931e95a1a0148d293b27ab5ce7c1d618fbf2e8fed95f2bbafab851a1ef449
|
||||
REF 85331393dc0dff09f6fb9903ab0c4bfa3e134b01 #2.2.0
|
||||
SHA512 16d3f4f3524b7532f666c0a626f1c678170698119eff3d914ade2e7cc65f25e644c2eabb618cd5805cba0fd4e08d3f64658a9f480934d8aace4089ec42b3d691
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
0001_cmakelists_fixes.patch
|
||||
0002_use_glog_target.patch
|
||||
0003_fix_exported_ceres_config.patch
|
||||
find-package-required.patch
|
||||
0004_remove_broken_fake_ba_jac.patch
|
||||
)
|
||||
|
||||
file(REMOVE "${SOURCE_PATH}/cmake/FindCXSparse.cmake")
|
||||
file(REMOVE "${SOURCE_PATH}/cmake/FindGflags.cmake")
|
||||
file(REMOVE "${SOURCE_PATH}/cmake/FindGlog.cmake")
|
||||
file(REMOVE "${SOURCE_PATH}/cmake/FindEigen.cmake")
|
||||
@ -30,7 +29,6 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
||||
FEATURES
|
||||
"schur" SCHUR_SPECIALIZATIONS
|
||||
"suitesparse" SUITESPARSE
|
||||
"cxsparse" CXSPARSE
|
||||
"lapack" LAPACK
|
||||
"eigensparse" EIGENSPARSE
|
||||
"tools" GFLAGS
|
||||
@ -44,6 +42,11 @@ foreach (FEATURE ${FEATURE_OPTIONS})
|
||||
message(STATUS "${FEATURE}")
|
||||
endforeach()
|
||||
|
||||
set(USE_CUDA OFF)
|
||||
if("cuda" IN_LIST FEATURES)
|
||||
set(USE_CUDA ON)
|
||||
endif()
|
||||
|
||||
set(TARGET_OPTIONS )
|
||||
if(VCPKG_TARGET_IS_IOS)
|
||||
# Note: CMake uses "OSX" not just for macOS, but also iOS, watchOS and tvOS.
|
||||
@ -60,9 +63,12 @@ vcpkg_cmake_configure(
|
||||
-DBUILD_EXAMPLES=OFF
|
||||
-DBUILD_TESTING=OFF
|
||||
-DBUILD_BENCHMARKS=OFF
|
||||
-DUSE_CUDA=${USE_CUDA}
|
||||
-DPROVIDE_UNINSTALL_TARGET=OFF
|
||||
-DMSVC_USE_STATIC_CRT=${MSVC_USE_STATIC_CRT_VALUE}
|
||||
-DLIB_SUFFIX=${LIB_SUFFIX}
|
||||
MAYBE_UNUSED_VARIABLES
|
||||
CUDA
|
||||
MSVC_USE_STATIC_CRT
|
||||
)
|
||||
|
||||
vcpkg_cmake_install()
|
||||
|
@ -1,7 +1,6 @@
|
||||
{
|
||||
"name": "ceres",
|
||||
"version": "2.1.0",
|
||||
"port-version": 5,
|
||||
"version": "2.2.0",
|
||||
"description": "non-linear optimization package",
|
||||
"homepage": "https://github.com/ceres-solver/ceres-solver",
|
||||
"license": "Apache-2.0",
|
||||
@ -28,17 +27,6 @@
|
||||
"cuda"
|
||||
]
|
||||
},
|
||||
"cxsparse": {
|
||||
"description": "CXSparse support for Ceres",
|
||||
"dependencies": [
|
||||
{
|
||||
"name": "ceres",
|
||||
"features": [
|
||||
"suitesparse"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"eigensparse": {
|
||||
"description": "Use of Eigen as a sparse linear algebra library in Ceres"
|
||||
},
|
||||
|
@ -1,13 +0,0 @@
|
||||
--- a/src/openMVG/multiview/CMakeLists.txt
|
||||
+++ b/src/openMVG/multiview/CMakeLists.txt
|
||||
@@ -38,6 +38,9 @@ target_include_directories(openMVG_multiview
|
||||
$<INSTALL_INTERFACE:include>
|
||||
)
|
||||
set_target_properties(openMVG_multiview PROPERTIES SOVERSION ${OPENMVG_VERSION_MAJOR} VERSION "${OPENMVG_VERSION_MAJOR}.${OPENMVG_VERSION_MINOR}")
|
||||
+if (MSVC)
|
||||
+ set_target_properties(openMVG_multiview PROPERTIES COMPILE_FLAGS "/bigobj")
|
||||
+endif (MSVC)
|
||||
|
||||
add_library(openMVG_multiview_test_data ${MULTIVIEWTESTDATA})
|
||||
target_link_libraries(openMVG_multiview_test_data PRIVATE openMVG_numeric openMVG_multiview)
|
||||
|
@ -1,32 +1,32 @@
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index 5d909ec..ab7eb6f 100644
|
||||
index 6879c4c6..edf4e5b2 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -20,6 +20,7 @@ if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
||||
message(FATAL_ERROR "In-source builds not allowed.")
|
||||
endif()
|
||||
@@ -24,6 +24,7 @@ endif()
|
||||
|
||||
set(CMAKE_FIND_FRAMEWORK LAST)
|
||||
|
||||
+if(0)
|
||||
# ==============================================================================
|
||||
# OpenMVG build options
|
||||
# ==============================================================================
|
||||
@@ -37,6 +38,7 @@ option(OpenMVG_USE_OPENMP "Enable OpenMP parallelization" ON)
|
||||
# and openMVG simultaneously
|
||||
@@ -59,6 +60,7 @@ option(OpenMVG_USE_OCVSIFT "Add or not OpenCV SIFT in available features" OFF)
|
||||
# Enable this to be able to use LiGT in main_SfM.
|
||||
# ==============================================================================
|
||||
option(OpenMVG_USE_OPENCV "Build or not opencv+openMVG samples programs" OFF)
|
||||
option(OpenMVG_USE_LIGT "Add or not LiGT in available" ON)
|
||||
+endif()
|
||||
|
||||
# ==============================================================================
|
||||
# Since OpenCV 3, SIFT is no longer in the default modules. See
|
||||
@@ -95,6 +97,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
register_definitions(-DOPENMVG_STD_UNORDERED_MAP)
|
||||
# OpenMVG version
|
||||
@@ -104,6 +106,7 @@ else (OpenMVG_BUILD_SHARED)
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
endif()
|
||||
|
||||
+if(0)
|
||||
# ==============================================================================
|
||||
# Check that submodule have been initialized and updated
|
||||
# ==============================================================================
|
||||
@@ -103,6 +106,7 @@ if (NOT EXISTS ${PROJECT_SOURCE_DIR}/dependencies/cereal/include)
|
||||
@@ -112,6 +115,7 @@ if (NOT EXISTS ${PROJECT_SOURCE_DIR}/dependencies/cereal/include)
|
||||
"\n submodule(s) are missing, please update your repository:\n"
|
||||
" > git submodule update -i\n")
|
||||
endif()
|
||||
@ -34,27 +34,7 @@ index 5d909ec..ab7eb6f 100644
|
||||
|
||||
# ==============================================================================
|
||||
# Additional cmake find modules
|
||||
@@ -138,7 +142,6 @@ if (OpenMVG_USE_OPENMP)
|
||||
find_package(OpenMP)
|
||||
if (OPENMP_FOUND)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
||||
- option(OpenMVG_USE_OPENMP "Use OpenMP for parallelization" ON)
|
||||
register_definitions(-DOPENMVG_USE_OPENMP)
|
||||
if (NOT MSVC)
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
@@ -149,11 +152,6 @@ if (OpenMVG_USE_OPENMP)
|
||||
endif()
|
||||
endif (NOT MSVC)
|
||||
endif (OPENMP_FOUND)
|
||||
-else (OpenMVG_USE_OPENMP)
|
||||
- option(OpenMVG_USE_OPENMP "Use OpenMP for parallelization" OFF)
|
||||
- include(UpdateCacheVariable)
|
||||
- UPDATE_CACHE_VARIABLE(OpenMVG_USE_OPENMP OFF)
|
||||
- remove_definitions(-DOPENMVG_USE_OPENMP)
|
||||
endif (OpenMVG_USE_OPENMP)
|
||||
|
||||
# ==============================================================================
|
||||
@@ -170,9 +168,10 @@ endif()
|
||||
@@ -191,9 +195,10 @@ endif()
|
||||
# ==============================================================================
|
||||
# IMAGE IO detection
|
||||
# ==============================================================================
|
||||
@ -68,43 +48,7 @@ index 5d909ec..ab7eb6f 100644
|
||||
|
||||
# Folders
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
@@ -192,6 +191,7 @@ if (OpenMVG_BUILD_OPENGL_EXAMPLES)
|
||||
set_property(TARGET glfw PROPERTY FOLDER OpenMVG/3rdParty/glfw)
|
||||
endif (OpenMVG_BUILD_OPENGL_EXAMPLES)
|
||||
|
||||
+if(0)
|
||||
# Dependencies install rules
|
||||
install(
|
||||
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/
|
||||
@@ -199,6 +199,7 @@ install(
|
||||
COMPONENT headers
|
||||
FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h"
|
||||
)
|
||||
+endif()
|
||||
|
||||
# ==============================================================================
|
||||
# --END-- SUBMODULE CONFIGURATION
|
||||
@@ -235,6 +236,7 @@ ENDMACRO(UNIT_TEST)
|
||||
# - external by default
|
||||
# - internal if cereal not found
|
||||
# ==============================================================================
|
||||
+if(0)
|
||||
find_package(cereal QUIET CONFIG)
|
||||
if (NOT TARGET cereal)
|
||||
add_library(cereal INTERFACE)
|
||||
@@ -247,7 +249,11 @@ if (NOT TARGET cereal)
|
||||
|
||||
set(OpenMVG_USE_INTERNAL_CEREAL ON)
|
||||
endif()
|
||||
+endif()
|
||||
|
||||
+find_package(cereal REQUIRED CONFIG)
|
||||
+get_target_property(CEREAL_INCLUDE_DIRS cereal::cereal INTERFACE_INCLUDE_DIRECTORIES)
|
||||
+
|
||||
# ==============================================================================
|
||||
# Eigen
|
||||
# ==============================================================================
|
||||
@@ -255,6 +261,7 @@ endif()
|
||||
@@ -281,6 +286,7 @@ endif()
|
||||
# - external if EIGEN_INCLUDE_DIR_HINTS is defined
|
||||
# - internal if Eigen not found
|
||||
# ==============================================================================
|
||||
@ -112,18 +56,19 @@ index 5d909ec..ab7eb6f 100644
|
||||
find_package(Eigen3 QUIET)
|
||||
if (NOT Eigen3_FOUND)
|
||||
set(EIGEN_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/eigen)
|
||||
@@ -263,6 +270,10 @@ if (NOT Eigen3_FOUND)
|
||||
@@ -289,7 +295,11 @@ if (NOT Eigen3_FOUND)
|
||||
else()
|
||||
set(EIGEN_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR})
|
||||
endif()
|
||||
+endif()
|
||||
+
|
||||
+
|
||||
add_definitions(-DEIGEN_MPL2_ONLY)
|
||||
+find_package(Eigen3 REQUIRED)
|
||||
+set(EIGEN_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR})
|
||||
|
||||
# ==============================================================================
|
||||
# Ceres
|
||||
@@ -270,6 +281,7 @@ endif()
|
||||
@@ -297,6 +307,7 @@ add_definitions(-DEIGEN_MPL2_ONLY)
|
||||
# - external by default if CERES_DIR_HINTS or find_package found a valid Ceres
|
||||
# - internal if ceres not found (ceres-solver+cxsparse+miniglog)
|
||||
# ==============================================================================
|
||||
@ -131,17 +76,17 @@ index 5d909ec..ab7eb6f 100644
|
||||
find_package(Ceres QUIET HINTS ${CERES_DIR_HINTS})
|
||||
if (NOT Ceres_FOUND)
|
||||
set(OpenMVG_USE_INTERNAL_CERES ON)
|
||||
@@ -281,6 +293,9 @@ if (NOT Ceres_FOUND)
|
||||
@@ -308,6 +319,9 @@ if (NOT Ceres_FOUND)
|
||||
STRING(REGEX REPLACE "version ([0-9.]+).*" "\\1" CERES_VERSION ${CERES_CONFIG})
|
||||
set(CERES_LIBRARIES openMVG_ceres)
|
||||
endif()
|
||||
+endif()
|
||||
+
|
||||
+
|
||||
+find_package(Ceres REQUIRED)
|
||||
|
||||
# ==============================================================================
|
||||
# Flann
|
||||
@@ -288,6 +303,7 @@ endif()
|
||||
@@ -315,6 +329,7 @@ endif()
|
||||
# - internal by default (flann),
|
||||
# - external if FLANN_INCLUDE_DIR_HINTS and a valid Flann setup is found
|
||||
# ==============================================================================
|
||||
@ -149,17 +94,33 @@ index 5d909ec..ab7eb6f 100644
|
||||
if (NOT DEFINED FLANN_INCLUDE_DIR_HINTS)
|
||||
set(FLANN_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/flann/src/cpp)
|
||||
set(OpenMVG_USE_INTERNAL_FLANN ON)
|
||||
@@ -296,6 +312,9 @@ find_package(Flann QUIET)
|
||||
@@ -330,6 +345,9 @@ endif()
|
||||
if (NOT FLANN_FOUND OR OpenMVG_USE_INTERNAL_FLANN)
|
||||
set(FLANN_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/flann/src/cpp)
|
||||
endif()
|
||||
+endif()
|
||||
+
|
||||
+
|
||||
+find_package(flann REQUIRED)
|
||||
|
||||
|
||||
# ==============================================================================
|
||||
# CoinUtils
|
||||
@@ -364,6 +395,7 @@ endif()
|
||||
@@ -356,13 +374,13 @@ endif()
|
||||
if (NOT DEFINED CLP_INCLUDE_DIR_HINTS)
|
||||
set(CLP_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/osi_clp/Clp/src/)
|
||||
set(OpenMVG_USE_INTERNAL_CLP ON)
|
||||
- find_package(Clp QUIET)
|
||||
+ find_package(Clp REQUIRED)
|
||||
set(CLP_INCLUDE_DIRS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/dependencies/osi_clp/Clp/src/
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/dependencies/osi_clp/Clp/src/OsiClp/)
|
||||
set(CLP_LIBRARIES lib_clp lib_OsiClpSolver)
|
||||
else()
|
||||
- find_package(Clp QUIET)
|
||||
+ find_package(Clp REQUIRED)
|
||||
endif()
|
||||
|
||||
# ==============================================================================
|
||||
@@ -398,6 +416,7 @@ endif()
|
||||
# - internal by default (Lemon),
|
||||
# - external if LEMON_INCLUDE_DIR_HINTS and a valid Lemon setup is found
|
||||
# ==============================================================================
|
||||
@ -167,7 +128,7 @@ index 5d909ec..ab7eb6f 100644
|
||||
if (NOT DEFINED LEMON_INCLUDE_DIR_HINTS)
|
||||
set(LEMON_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/lemon)
|
||||
set(OpenMVG_USE_INTERNAL_LEMON ON)
|
||||
@@ -374,6 +406,9 @@ if (NOT LEMON_FOUND OR OpenMVG_USE_INTERNAL_LEMON)
|
||||
@@ -408,13 +427,16 @@ if (NOT LEMON_FOUND OR OpenMVG_USE_INTERNAL_LEMON)
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/third_party/lemon
|
||||
${PROJECT_BINARY_DIR}/third_party/lemon)
|
||||
endif()
|
||||
@ -177,21 +138,24 @@ index 5d909ec..ab7eb6f 100644
|
||||
|
||||
# ==============================================================================
|
||||
# OpenCV
|
||||
@@ -381,12 +416,7 @@ endif()
|
||||
# ==============================================================================
|
||||
# - only external and enabled only if OpenMVG_USE_OPENCV is set to ON
|
||||
# ==============================================================================
|
||||
if (OpenMVG_USE_OPENCV)
|
||||
- find_package( OpenCV QUIET )
|
||||
- if (NOT OpenCV_FOUND OR OpenCV_VERSION VERSION_LESS "3.0.0")
|
||||
- message(STATUS "OpenCV was not found (note that OpenCV version >= 3.0.0 is required). -> Disabling OpenCV support.")
|
||||
- UPDATE_CACHE_VARIABLE(OpenMVG_USE_OPENCV OFF)
|
||||
- UPDATE_CACHE_VARIABLE(OpenMVG_USE_OCVSIFT OFF)
|
||||
- endif()
|
||||
+ find_package( OpenCV REQUIRED )
|
||||
-if (OpenMVG_USE_OPENCV)
|
||||
+if (0)
|
||||
find_package( OpenCV QUIET )
|
||||
if (NOT OpenCV_FOUND OR OpenCV_VERSION VERSION_LESS "3.0.0")
|
||||
message(STATUS "OpenCV was not found (note that OpenCV version >= 3.0.0 is required). -> Disabling OpenCV support.")
|
||||
@@ -429,7 +451,7 @@ endif()
|
||||
# ==============================================================================
|
||||
# - enabled only if OpenMVG_USE_LIGT is set to ON
|
||||
# ==============================================================================
|
||||
-if (OpenMVG_USE_LIGT)
|
||||
+if (0)
|
||||
add_definitions(-DUSE_PATENTED_LIGT)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -394,7 +424,6 @@ endif()
|
||||
@@ -438,7 +460,6 @@ endif()
|
||||
# Third-party libraries:
|
||||
# ==============================================================================
|
||||
add_subdirectory(third_party)
|
||||
@ -199,7 +163,28 @@ index 5d909ec..ab7eb6f 100644
|
||||
|
||||
# ==============================================================================
|
||||
# openMVG modules
|
||||
@@ -481,67 +510,67 @@ message("** Use OpenCV SIFT features: " ${OpenMVG_USE_OCVSIFT})
|
||||
@@ -447,9 +468,9 @@ add_subdirectory(testing)
|
||||
add_subdirectory(openMVG)
|
||||
|
||||
# openMVG tutorial examples
|
||||
-if (OpenMVG_BUILD_EXAMPLES)
|
||||
+if (0)
|
||||
add_subdirectory(openMVG_Samples)
|
||||
-endif (OpenMVG_BUILD_EXAMPLES)
|
||||
+endif ()
|
||||
|
||||
# Complete software(s) build on openMVG libraries
|
||||
if (OpenMVG_BUILD_SOFTWARES)
|
||||
@@ -464,7 +485,7 @@ add_subdirectory(nonFree)
|
||||
# --------------------------
|
||||
# Sphinx detection
|
||||
# ==============================================================================
|
||||
-if (OpenMVG_BUILD_DOC)
|
||||
+if (0)
|
||||
find_package(Sphinx)
|
||||
if (EXISTS ${SPHINX_EXECUTABLE})
|
||||
set(SPHINX_HTML_DIR "${CMAKE_CURRENT_BINARY_DIR}/htmlDoc")
|
||||
@@ -526,67 +547,67 @@ message("** Use LiGT for global translation estimation: " ${OpenMVG_USE_LIGT})
|
||||
|
||||
message("\n")
|
||||
|
||||
@ -278,356 +263,8 @@ index 5d909ec..ab7eb6f 100644
|
||||
message(STATUS "LEMON: " ${LEMON_VERSION} " (internal)")
|
||||
else()
|
||||
message(STATUS "LEMON: " ${LEMON_VERSION} " (external)")
|
||||
diff --git a/src/cmakeFindModules/OpenMVGConfig.cmake.in b/src/cmakeFindModules/OpenMVGConfig.cmake.in
|
||||
index e7dfbfd..65224c4 100644
|
||||
--- a/src/cmakeFindModules/OpenMVGConfig.cmake.in
|
||||
+++ b/src/cmakeFindModules/OpenMVGConfig.cmake.in
|
||||
@@ -19,7 +19,7 @@
|
||||
# OPENMVG_VERSION: Version of OpenMVG found.
|
||||
#
|
||||
|
||||
-# Called if we failed to find OpenMVG or any of it's required dependencies,
|
||||
+# Called if we failed to find OpenMVG or any of its required dependencies,
|
||||
# unsets all public (designed to be used externally) variables and reports
|
||||
# error message at priority depending upon [REQUIRED/QUIET/<NONE>] argument.
|
||||
macro(OPENMVG_REPORT_NOT_FOUND REASON_MSG)
|
||||
@@ -58,10 +58,17 @@ set(CALLERS_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
|
||||
# Reset CMake module path to the installation directory of this
|
||||
# script.
|
||||
set(CMAKE_MODULE_PATH ${CURRENT_CONFIG_INSTALL_DIR})
|
||||
+include(CMakeFindDependencyMacro)
|
||||
+
|
||||
+find_dependency(flann)
|
||||
+find_dependency(Threads)
|
||||
+find_dependency(cereal)
|
||||
+find_dependency(Ceres)
|
||||
+find_dependency(vlfeat)
|
||||
|
||||
# Build the absolute root install directory as a relative path
|
||||
get_filename_component(CURRENT_ROOT_INSTALL_DIR
|
||||
- ${CMAKE_MODULE_PATH}/../../../ ABSOLUTE)
|
||||
+ ${CMAKE_MODULE_PATH}/../../ ABSOLUTE)
|
||||
if (NOT EXISTS ${CURRENT_ROOT_INSTALL_DIR})
|
||||
OPENMVG_REPORT_NOT_FOUND(
|
||||
"OpenMVG install root: ${CURRENT_ROOT_INSTALL_DIR}, "
|
||||
diff --git a/src/nonFree/sift/CMakeLists.txt b/src/nonFree/sift/CMakeLists.txt
|
||||
index 402a2d8..60ddc11 100644
|
||||
--- a/src/nonFree/sift/CMakeLists.txt
|
||||
+++ b/src/nonFree/sift/CMakeLists.txt
|
||||
@@ -1,36 +1,36 @@
|
||||
|
||||
-# libs should be static
|
||||
-set(BUILD_SHARED_LIBS OFF)
|
||||
-
|
||||
-# use PIC code for link into shared lib
|
||||
-if(UNIX)
|
||||
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
|
||||
-endif(UNIX)
|
||||
-
|
||||
-if(NOT USE_SSE2)
|
||||
- add_definitions(-DVL_DISABLE_SSE2)
|
||||
-endif()
|
||||
-
|
||||
-add_definitions(-DVL_DISABLE_THREADS)
|
||||
-
|
||||
-include_directories(./vl)
|
||||
-set(FEATS
|
||||
- vl/generic.c
|
||||
- vl/imopv_sse2.c
|
||||
- vl/sift.c
|
||||
- vl/imopv.c
|
||||
- vl/mathop_sse2.c
|
||||
- vl/sift.c
|
||||
- vl/host.c
|
||||
- vl/mathop.c
|
||||
- vl/random.c)
|
||||
-set_source_files_properties(${FEATS} PROPERTIES LANGUAGE C)
|
||||
-add_library(vlsift ${FEATS})
|
||||
-install(TARGETS vlsift DESTINATION lib EXPORT openMVG-targets)
|
||||
-set_property(TARGET vlsift PROPERTY FOLDER OpenMVG/nonFree)
|
||||
+## libs should be static
|
||||
+#set(BUILD_SHARED_LIBS OFF)
|
||||
+#
|
||||
+## use PIC code for link into shared lib
|
||||
+#if(UNIX)
|
||||
+# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
|
||||
+#endif(UNIX)
|
||||
+#
|
||||
+#if(NOT USE_SSE2)
|
||||
+# add_definitions(-DVL_DISABLE_SSE2)
|
||||
+#endif()
|
||||
+#
|
||||
+#add_definitions(-DVL_DISABLE_THREADS)
|
||||
+#
|
||||
+#include_directories(./vl)
|
||||
+#set(FEATS
|
||||
+# vl/generic.c
|
||||
+# vl/imopv_sse2.c
|
||||
+# vl/sift.c
|
||||
+# vl/imopv.c
|
||||
+# vl/mathop_sse2.c
|
||||
+# vl/sift.c
|
||||
+# vl/host.c
|
||||
+# vl/mathop.c
|
||||
+# vl/random.c)
|
||||
+#set_source_files_properties(${FEATS} PROPERTIES LANGUAGE C)
|
||||
+#add_library(vlsift ${FEATS})
|
||||
+#install(TARGETS vlsift DESTINATION lib EXPORT openMVG-targets)
|
||||
+#set_property(TARGET vlsift PROPERTY FOLDER OpenMVG/nonFree)
|
||||
install(
|
||||
DIRECTORY .
|
||||
DESTINATION include/openMVG_dependencies/nonFree/sift
|
||||
COMPONENT headers
|
||||
- FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h"
|
||||
+ FILES_MATCHING PATTERN "*.hpp"
|
||||
)
|
||||
diff --git a/src/nonFree/sift/SIFT_describer.hpp b/src/nonFree/sift/SIFT_describer.hpp
|
||||
index cd800b0..20e9c8e 100644
|
||||
--- a/src/nonFree/sift/SIFT_describer.hpp
|
||||
+++ b/src/nonFree/sift/SIFT_describer.hpp
|
||||
@@ -17,9 +17,7 @@
|
||||
#include <iostream>
|
||||
#include <numeric>
|
||||
|
||||
-extern "C" {
|
||||
-#include "nonFree/sift/vl/sift.h"
|
||||
-}
|
||||
+#include <vl/sift.h>
|
||||
|
||||
namespace openMVG {
|
||||
namespace features {
|
||||
@@ -174,7 +172,7 @@ public:
|
||||
const int nkeys = vl_sift_get_nkeypoints(filt);
|
||||
|
||||
// Update gradient before launching parallel extraction
|
||||
- vl_sift_update_gradient(filt);
|
||||
+ update_gradient(filt);
|
||||
|
||||
#ifdef OPENMVG_USE_OPENMP
|
||||
#pragma omp parallel for private(descr, descriptor)
|
||||
diff --git a/src/openMVG/matching/CMakeLists.txt b/src/openMVG/matching/CMakeLists.txt
|
||||
index 2e0eafd7..d54d1e88 100644
|
||||
--- a/src/openMVG/matching/CMakeLists.txt
|
||||
+++ b/src/openMVG/matching/CMakeLists.txt
|
||||
@@ -16,6 +16,7 @@ list(REMOVE_ITEM matching_files_cpp ${REMOVEFILESUNITTEST})
|
||||
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package(Threads REQUIRED)
|
||||
+find_package(flann CONFIG REQUIRED)
|
||||
|
||||
set_source_files_properties(${matching_files_cpp} PROPERTIES LANGUAGE CXX)
|
||||
add_library(openMVG_matching
|
||||
@@ -35,12 +36,12 @@ target_link_libraries(openMVG_matching
|
||||
PUBLIC
|
||||
openMVG_features
|
||||
Threads::Threads
|
||||
- cereal
|
||||
+ cereal::cereal
|
||||
)
|
||||
-if (NOT DEFINED OpenMVG_USE_INTERNAL_FLANN)
|
||||
+if (NOT OpenMVG_USE_INTERNAL_FLANN)
|
||||
target_link_libraries(openMVG_matching
|
||||
PUBLIC
|
||||
- ${FLANN_LIBRARIES}
|
||||
+ $<IF:$<TARGET_EXISTS:flann::flann_s>,flann::flann_s,flann::flann>
|
||||
)
|
||||
endif()
|
||||
set_target_properties(openMVG_matching PROPERTIES SOVERSION ${OPENMVG_VERSION_MAJOR} VERSION "${OPENMVG_VERSION_MAJOR}.${OPENMVG_VERSION_MINOR}")
|
||||
diff --git a/src/openMVG/numeric/CMakeLists.txt b/src/openMVG/numeric/CMakeLists.txt
|
||||
index 1f3fc30..4097320 100644
|
||||
--- a/src/openMVG/numeric/CMakeLists.txt
|
||||
+++ b/src/openMVG/numeric/CMakeLists.txt
|
||||
@@ -26,7 +26,7 @@ target_include_directories(openMVG_numeric
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
)
|
||||
-if (DEFINED OpenMVG_USE_INTERNAL_EIGEN)
|
||||
+if (OpenMVG_USE_INTERNAL_EIGEN)
|
||||
target_include_directories(openMVG_numeric PUBLIC
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_PREFIX}/include/openMVG/third_party/eigen/>)
|
||||
else()
|
||||
diff --git a/src/openMVG_Samples/describe_and_match_GUI/CMakeLists.txt b/src/openMVG_Samples/describe_and_match_GUI/CMakeLists.txt
|
||||
index 862ffc7..62508af 100644
|
||||
--- a/src/openMVG_Samples/describe_and_match_GUI/CMakeLists.txt
|
||||
+++ b/src/openMVG_Samples/describe_and_match_GUI/CMakeLists.txt
|
||||
@@ -18,8 +18,7 @@ if (OpenMVG_BUILD_GUI_SOFTWARES)
|
||||
add_executable( openMVG_sample_describe_and_match_GUI WIN32 ${FEATURES_PAIR_DEMO_SRCS} ${FEATURES_PAIR_DEMO_HDRS} )
|
||||
endif( APPLE )
|
||||
|
||||
- target_link_libraries( openMVG_sample_describe_and_match_GUI Qt5::Widgets openMVG_features openMVG_image openMVG_matching vlsift )
|
||||
-
|
||||
+ target_link_libraries( openMVG_sample_describe_and_match_GUI Qt5::Widgets openMVG_features openMVG_image openMVG_matching unofficial::vlfeat::vl )
|
||||
set_target_properties( openMVG_sample_describe_and_match_GUI PROPERTIES CXX_STANDARD 11)
|
||||
|
||||
set_property(TARGET openMVG_sample_describe_and_match_GUI PROPERTY FOLDER OpenMVG/Samples)
|
||||
diff --git a/src/openMVG_Samples/features_image_matching/CMakeLists.txt b/src/openMVG_Samples/features_image_matching/CMakeLists.txt
|
||||
index 18fb385..d44ffce 100644
|
||||
--- a/src/openMVG_Samples/features_image_matching/CMakeLists.txt
|
||||
+++ b/src/openMVG_Samples/features_image_matching/CMakeLists.txt
|
||||
@@ -5,7 +5,7 @@ target_link_libraries(openMVG_sample_image_matching
|
||||
openMVG_features
|
||||
openMVG_matching
|
||||
${STLPLUS_LIBRARY}
|
||||
- vlsift)
|
||||
+ unofficial::vlfeat::vl)
|
||||
target_compile_definitions(openMVG_sample_image_matching
|
||||
PRIVATE -DTHIS_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
diff --git a/src/openMVG_Samples/features_repeatability/CMakeLists.txt b/src/openMVG_Samples/features_repeatability/CMakeLists.txt
|
||||
index fd2b7c6..91f2766 100644
|
||||
--- a/src/openMVG_Samples/features_repeatability/CMakeLists.txt
|
||||
+++ b/src/openMVG_Samples/features_repeatability/CMakeLists.txt
|
||||
@@ -6,7 +6,7 @@ target_link_libraries(openMVG_sample_main_features_repeatability_dataset
|
||||
openMVG_matching
|
||||
openMVG_system
|
||||
openMVG_multiview
|
||||
- vlsift
|
||||
+ unofficial::vlfeat::vl
|
||||
${STLPLUS_LIBRARY})
|
||||
|
||||
set_property(TARGET openMVG_sample_main_features_repeatability_dataset PROPERTY FOLDER OpenMVG/Samples)
|
||||
diff --git a/src/software/Localization/CMakeLists.txt b/src/software/Localization/CMakeLists.txt
|
||||
index 2f60393..0d57d0a 100644
|
||||
--- a/src/software/Localization/CMakeLists.txt
|
||||
+++ b/src/software/Localization/CMakeLists.txt
|
||||
@@ -11,7 +11,7 @@ target_link_libraries(openMVG_main_SfM_Localization
|
||||
openMVG_sfm
|
||||
openMVG_exif
|
||||
${STLPLUS_LIBRARY}
|
||||
- vlsift
|
||||
+ unofficial::vlfeat::vl
|
||||
)
|
||||
|
||||
# Installation rules
|
||||
diff --git a/src/software/SfM/CMakeLists.txt b/src/software/SfM/CMakeLists.txt
|
||||
index 6db7e83..51e06f5 100644
|
||||
--- a/src/software/SfM/CMakeLists.txt
|
||||
+++ b/src/software/SfM/CMakeLists.txt
|
||||
@@ -44,7 +44,7 @@ target_link_libraries(openMVG_main_ComputeFeatures
|
||||
openMVG_multiview
|
||||
openMVG_sfm
|
||||
${STLPLUS_LIBRARY}
|
||||
- vlsift
|
||||
+ unofficial::vlfeat::vl
|
||||
)
|
||||
if (MSVC)
|
||||
set_target_properties(openMVG_main_ComputeFeatures PROPERTIES COMPILE_FLAGS "/bigobj")
|
||||
@@ -275,7 +275,7 @@ if(OpenMVG_USE_OPENCV)
|
||||
openMVG_multiview
|
||||
openMVG_sfm
|
||||
${STLPLUS_LIBRARY}
|
||||
- vlsift
|
||||
+ unofficial::vlfeat::vl
|
||||
${OpenCV_LIBS})
|
||||
target_include_directories(openMVG_main_ComputeFeatures_OpenCV PRIVATE ${OpenCV_INCLUDE_DIRS})
|
||||
|
||||
diff --git a/src/software/VO/Tracker_opencv_klt.hpp b/src/software/VO/Tracker_opencv_klt.hpp
|
||||
index aa7dffe..2c4d237 100644
|
||||
--- a/src/software/VO/Tracker_opencv_klt.hpp
|
||||
+++ b/src/software/VO/Tracker_opencv_klt.hpp
|
||||
@@ -80,7 +80,7 @@ struct Tracker_opencv_KLT : public Abstract_Tracker
|
||||
std::vector<cv::KeyPoint> m_nextKeypoints;
|
||||
|
||||
cv::Ptr<cv::FeatureDetector> m_detector = cv::GFTTDetector::create(count);
|
||||
- if (m_detector == NULL)
|
||||
+ if (m_detector == nullptr)
|
||||
return false;
|
||||
|
||||
m_detector->detect(current_img, m_nextKeypoints);
|
||||
diff --git a/src/third_party/CMakeLists.txt b/src/third_party/CMakeLists.txt
|
||||
index 0d61c9f..05c8b29 100644
|
||||
--- a/src/third_party/CMakeLists.txt
|
||||
+++ b/src/third_party/CMakeLists.txt
|
||||
@@ -18,7 +18,7 @@ add_subdirectory(stlplus3)
|
||||
set(STLPLUS_LIBRARY openMVG_stlplus PARENT_SCOPE)
|
||||
|
||||
# Add graph library
|
||||
-if(DEFINED OpenMVG_USE_INTERNAL_LEMON)
|
||||
+if(OpenMVG_USE_INTERNAL_LEMON)
|
||||
add_subdirectory(lemon)
|
||||
set(LEMON_LIBRARY openMVG_lemon PARENT_SCOPE)
|
||||
endif()
|
||||
@@ -67,7 +67,7 @@ endif (NOT TIFF_FOUND)
|
||||
add_subdirectory(vectorGraphics)
|
||||
|
||||
# Add ceres-solver (A Nonlinear Least Squares Minimizer)
|
||||
-if (DEFINED OpenMVG_USE_INTERNAL_CERES)
|
||||
+if (OpenMVG_USE_INTERNAL_CERES)
|
||||
add_subdirectory(cxsparse)
|
||||
add_subdirectory(ceres-solver)
|
||||
set_property(TARGET openMVG_cxsparse PROPERTY FOLDER OpenMVG/3rdParty/ceres)
|
||||
@@ -75,7 +75,7 @@ if (DEFINED OpenMVG_USE_INTERNAL_CERES)
|
||||
endif()
|
||||
|
||||
# Add an Approximate Nearest Neighbor library
|
||||
-if (DEFINED OpenMVG_USE_INTERNAL_FLANN)
|
||||
+if (OpenMVG_USE_INTERNAL_FLANN)
|
||||
set(FLANN_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/openMVG/third_party/flann/src/cpp)
|
||||
add_subdirectory(flann)
|
||||
endif()
|
||||
@@ -89,7 +89,7 @@ add_subdirectory(fast)
|
||||
##
|
||||
# Install Header only libraries if necessary
|
||||
##
|
||||
-if (DEFINED OpenMVG_USE_INTERNAL_EIGEN)
|
||||
+if (OpenMVG_USE_INTERNAL_EIGEN)
|
||||
#Configure Eigen install
|
||||
set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/openMVG/third_party/eigen)
|
||||
add_subdirectory(eigen)
|
||||
diff --git a/src/openMVG/cameras/CMakeLists.txt b/src/openMVG/cameras/CMakeLists.txt
|
||||
index 333ab729..50c8f572 100644
|
||||
--- a/src/openMVG/cameras/CMakeLists.txt
|
||||
+++ b/src/openMVG/cameras/CMakeLists.txt
|
||||
@@ -4,7 +4,7 @@ set_property(TARGET openMVG_camera APPEND PROPERTY
|
||||
INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:include>")
|
||||
|
||||
target_compile_features(openMVG_camera INTERFACE ${CXX11_FEATURES})
|
||||
-target_link_libraries(openMVG_camera INTERFACE openMVG_numeric cereal ${OPENMVG_LIBRARY_DEPENDENCIES})
|
||||
+target_link_libraries(openMVG_camera INTERFACE openMVG_numeric cereal::cereal ${OPENMVG_LIBRARY_DEPENDENCIES})
|
||||
install(TARGETS openMVG_camera DESTINATION lib EXPORT openMVG-targets)
|
||||
|
||||
UNIT_TEST(openMVG Camera_Pinhole openMVG_camera)
|
||||
diff --git a/src/openMVG/features/CMakeLists.txt b/src/openMVG/features/CMakeLists.txt
|
||||
index 2e49701d..0b5e1c3d 100644
|
||||
--- a/src/openMVG/features/CMakeLists.txt
|
||||
+++ b/src/openMVG/features/CMakeLists.txt
|
||||
@@ -31,7 +31,7 @@ target_include_directories(openMVG_features
|
||||
)
|
||||
target_link_libraries(openMVG_features
|
||||
PRIVATE openMVG_fast ${STLPLUS_LIBRARY}
|
||||
- PUBLIC ${OPENMVG_LIBRARY_DEPENDENCIES} cereal)
|
||||
+ PUBLIC ${OPENMVG_LIBRARY_DEPENDENCIES} cereal::cereal)
|
||||
if (MSVC)
|
||||
set_target_properties(openMVG_features PROPERTIES COMPILE_FLAGS "/bigobj")
|
||||
target_compile_options(openMVG_features PUBLIC "-D_USE_MATH_DEFINES")
|
||||
diff --git a/src/openMVG/geometry/CMakeLists.txt b/src/openMVG/geometry/CMakeLists.txt
|
||||
index 0a6a016a..e509a4d5 100644
|
||||
--- a/src/openMVG/geometry/CMakeLists.txt
|
||||
+++ b/src/openMVG/geometry/CMakeLists.txt
|
||||
@@ -21,7 +21,7 @@ set_property(TARGET openMVG_geometry PROPERTY FOLDER OpenMVG/OpenMVG)
|
||||
target_link_libraries(openMVG_geometry
|
||||
PUBLIC
|
||||
openMVG_numeric
|
||||
- cereal
|
||||
+ cereal::cereal
|
||||
PRIVATE
|
||||
openMVG_linearProgramming
|
||||
)
|
||||
diff --git a/src/openMVG/sfm/CMakeLists.txt b/src/openMVG/sfm/CMakeLists.txt
|
||||
index b8928083..1d10f939 100644
|
||||
--- a/src/openMVG/sfm/CMakeLists.txt
|
||||
+++ b/src/openMVG/sfm/CMakeLists.txt
|
||||
@@ -25,7 +25,7 @@ target_link_libraries(openMVG_sfm
|
||||
openMVG_graph
|
||||
openMVG_matching
|
||||
openMVG_multiview
|
||||
- cereal
|
||||
+ cereal::cereal
|
||||
${OPENMVG_LIBRARY_DEPENDENCIES}
|
||||
)
|
||||
|
||||
diff --git a/src/cmakeFindModules/FindClp.cmake b/src/cmakeFindModules/FindClp.cmake
|
||||
index 8a69c2344..1ed9a21fe 100644
|
||||
index 8a69c234..1ed9a21f 100644
|
||||
--- a/src/cmakeFindModules/FindClp.cmake
|
||||
+++ b/src/cmakeFindModules/FindClp.cmake
|
||||
@@ -51,7 +51,7 @@ IF(EXISTS "${CLP_DIR}" AND NOT "${CLP_DIR}" STREQUAL "")
|
||||
@ -639,18 +276,130 @@ index 8a69c2344..1ed9a21fe 100644
|
||||
FIND_LIBRARY(OSICLP_LIBRARY NAMES OsiClp)
|
||||
|
||||
# locate Clp libraries
|
||||
|
||||
diff --git a/src/openMVG/matching/metric_simd.hpp b/src/openMVG/matching/metric_simd.hpp
|
||||
index 7e09f6ed..916c84e0 100644
|
||||
--- a/src/openMVG/matching/metric_simd.hpp
|
||||
+++ b/src/openMVG/matching/metric_simd.hpp
|
||||
@@ -17,7 +17,9 @@
|
||||
#include <numeric>
|
||||
|
||||
#include <cstdint>
|
||||
+#if defined(__amd64__) || defined(__i386__)
|
||||
#include <immintrin.h>
|
||||
+#endif
|
||||
|
||||
namespace openMVG {
|
||||
namespace matching {
|
||||
diff --git a/src/cmakeFindModules/FindCoinUtils.cmake b/src/cmakeFindModules/FindCoinUtils.cmake
|
||||
index 5b64ce14..595fb7dc 100644
|
||||
--- a/src/cmakeFindModules/FindCoinUtils.cmake
|
||||
+++ b/src/cmakeFindModules/FindCoinUtils.cmake
|
||||
@@ -57,6 +57,12 @@ IF(EXISTS "${COINUTILS_DIR}" AND NOT "${COINUTILS_DIR}" STREQUAL "")
|
||||
SET(COINUTILS_LIBRARIES ${COINUTILS_LIBRARY})
|
||||
ENDIF()
|
||||
|
||||
+ if(NOT WIN32)
|
||||
+ find_package(PkgConfig)
|
||||
+ pkg_check_modules(CoinUtils coinutils IMPORTED_TARGET)
|
||||
+ list(APPEND COINUTILS_LIBRARIES PkgConfig::CoinUtils)
|
||||
+ endif()
|
||||
+
|
||||
MESSAGE(STATUS "CoinUtils ${COINUTILS_VERSION} found (include: ${COINUTILS_INCLUDE_DIRS})")
|
||||
ELSE()
|
||||
MESSAGE(STATUS "You are attempting to build without CoinUtils. "
|
||||
diff --git a/src/cmakeFindModules/OpenMVGConfig.cmake.in b/src/cmakeFindModules/OpenMVGConfig.cmake.in
|
||||
index 5a788b56..ba3b4b3c 100644
|
||||
--- a/src/cmakeFindModules/OpenMVGConfig.cmake.in
|
||||
+++ b/src/cmakeFindModules/OpenMVGConfig.cmake.in
|
||||
@@ -51,6 +51,18 @@ set(OPENMVG_VERSION @OPENMVG_VERSION@)
|
||||
get_filename_component(CURRENT_CONFIG_INSTALL_DIR
|
||||
"${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
|
||||
+include(CMakeFindDependencyMacro)
|
||||
+
|
||||
+find_dependency(flann)
|
||||
+find_dependency(Threads)
|
||||
+find_dependency(cereal)
|
||||
+find_dependency(Ceres)
|
||||
+find_dependency(vlfeat)
|
||||
+if(NOT WIN32)
|
||||
+ find_dependency(PkgConfig)
|
||||
+ pkg_check_modules(CoinUtils coinutils IMPORTED_TARGET)
|
||||
+endif()
|
||||
+
|
||||
# Record the state of the CMake module path when this script was
|
||||
# called so that we can ensure that we leave it in the same state on
|
||||
# exit as it was on entry, but modify it locally.
|
||||
@@ -61,7 +73,7 @@ set(CMAKE_MODULE_PATH ${CURRENT_CONFIG_INSTALL_DIR})
|
||||
|
||||
# Build the absolute root install directory as a relative path
|
||||
get_filename_component(CURRENT_ROOT_INSTALL_DIR
|
||||
- ${CMAKE_MODULE_PATH}/../../../ ABSOLUTE)
|
||||
+ ${CMAKE_MODULE_PATH}/../../ ABSOLUTE)
|
||||
if (NOT EXISTS ${CURRENT_ROOT_INSTALL_DIR})
|
||||
OPENMVG_REPORT_NOT_FOUND(
|
||||
"OpenMVG install root: ${CURRENT_ROOT_INSTALL_DIR}, "
|
||||
diff --git a/src/openMVG/linearProgramming/CMakeLists.txt b/src/openMVG/linearProgramming/CMakeLists.txt
|
||||
index 4532161d..e3ddedc6 100644
|
||||
--- a/src/openMVG/linearProgramming/CMakeLists.txt
|
||||
+++ b/src/openMVG/linearProgramming/CMakeLists.txt
|
||||
@@ -16,8 +16,8 @@ target_link_libraries(openMVG_linearProgramming
|
||||
openMVG_numeric
|
||||
PRIVATE
|
||||
${CLP_LIBRARIES} # clp + solver wrapper
|
||||
- ${COINUTILS_LIBRARY} # container tools
|
||||
- ${OSI_LIBRARY} # generic LP
|
||||
+ ${COINUTILS_LIBRARIES} # container tools
|
||||
+ ${OSI_LIBRARIES} # generic LP
|
||||
)
|
||||
|
||||
target_include_directories(openMVG_linearProgramming
|
||||
diff --git a/src/openMVG/matching/CMakeLists.txt b/src/openMVG/matching/CMakeLists.txt
|
||||
index b92a49b7..6fa26493 100644
|
||||
--- a/src/openMVG/matching/CMakeLists.txt
|
||||
+++ b/src/openMVG/matching/CMakeLists.txt
|
||||
@@ -16,6 +16,7 @@ list(REMOVE_ITEM matching_files_cpp ${REMOVEFILESUNITTEST})
|
||||
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package(Threads REQUIRED)
|
||||
+find_package(flann CONFIG REQUIRED)
|
||||
|
||||
set_source_files_properties(${matching_files_cpp} PROPERTIES LANGUAGE CXX)
|
||||
add_library(openMVG_matching
|
||||
@@ -37,10 +38,10 @@ target_link_libraries(openMVG_matching
|
||||
Threads::Threads
|
||||
${cereal_TARGET}
|
||||
)
|
||||
-if (NOT DEFINED OpenMVG_USE_INTERNAL_FLANN)
|
||||
+if (NOT OpenMVG_USE_INTERNAL_FLANN)
|
||||
target_link_libraries(openMVG_matching
|
||||
PUBLIC
|
||||
- ${FLANN_LIBRARIES}
|
||||
+ $<IF:$<TARGET_EXISTS:flann::flann_s>,flann::flann_s,flann::flann>
|
||||
)
|
||||
endif()
|
||||
set_target_properties(openMVG_matching PROPERTIES SOVERSION ${OPENMVG_VERSION_MAJOR} VERSION "${OPENMVG_VERSION_MAJOR}.${OPENMVG_VERSION_MINOR}")
|
||||
diff --git a/src/third_party/CMakeLists.txt b/src/third_party/CMakeLists.txt
|
||||
index 1e025dc6..4a06dfcc 100644
|
||||
--- a/src/third_party/CMakeLists.txt
|
||||
+++ b/src/third_party/CMakeLists.txt
|
||||
@@ -18,7 +18,7 @@ add_subdirectory(stlplus3)
|
||||
set(STLPLUS_LIBRARY openMVG_stlplus PARENT_SCOPE)
|
||||
|
||||
# Add graph library
|
||||
-if(DEFINED OpenMVG_USE_INTERNAL_LEMON)
|
||||
+if(0)
|
||||
add_subdirectory(lemon)
|
||||
set(LEMON_LIBRARY openMVG_lemon PARENT_SCOPE)
|
||||
endif()
|
||||
@@ -64,13 +64,13 @@ endif (NOT TIFF_FOUND)
|
||||
##
|
||||
|
||||
# Add ceres-solver (A Nonlinear Least Squares Minimizer)
|
||||
-if (DEFINED OpenMVG_USE_INTERNAL_CERES)
|
||||
+if (0)
|
||||
add_subdirectory(ceres-solver)
|
||||
set_property(TARGET openMVG_ceres PROPERTY FOLDER OpenMVG/3rdParty/ceres)
|
||||
endif()
|
||||
|
||||
# Add an Approximate Nearest Neighbor library
|
||||
-if (DEFINED OpenMVG_USE_INTERNAL_FLANN)
|
||||
+if (0)
|
||||
set(FLANN_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/openMVG/third_party/flann/src/cpp)
|
||||
add_subdirectory(flann)
|
||||
endif()
|
||||
@@ -84,7 +84,7 @@ add_subdirectory(fast)
|
||||
##
|
||||
# Install Header only libraries if necessary
|
||||
##
|
||||
-if (DEFINED OpenMVG_USE_INTERNAL_EIGEN)
|
||||
+if (0)
|
||||
#Configure Eigen install
|
||||
set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/openMVG/third_party/eigen)
|
||||
add_subdirectory(eigen)
|
||||
|
@ -1,47 +0,0 @@
|
||||
diff --git a/src/openMVG/linearProgramming/CMakeLists.txt b/src/openMVG/linearProgramming/CMakeLists.txt
|
||||
index cc5212fda..0fb59c44c 100644
|
||||
--- a/src/openMVG/linearProgramming/CMakeLists.txt
|
||||
+++ b/src/openMVG/linearProgramming/CMakeLists.txt
|
||||
@@ -16,8 +16,8 @@ target_link_libraries(openMVG_linearProgramming
|
||||
openMVG_numeric
|
||||
PRIVATE
|
||||
${CLP_LIBRARIES} # clp + solver wrapper
|
||||
- ${COINUTILS_LIBRARY} # container tools
|
||||
- ${OSI_LIBRARY} # generic LP
|
||||
+ ${COINUTILS_LIBRARIES} # container tools
|
||||
+ ${OSI_LIBRARIES} # generic LP
|
||||
)
|
||||
|
||||
target_include_directories(openMVG_linearProgramming
|
||||
diff --git a/src/cmakeFindModules/FindCoinUtils.cmake b/src/cmakeFindModules/FindCoinUtils.cmake
|
||||
index 5b64ce14c..595fb7dc8 100644
|
||||
--- a/src/cmakeFindModules/FindCoinUtils.cmake
|
||||
+++ b/src/cmakeFindModules/FindCoinUtils.cmake
|
||||
@@ -57,6 +57,12 @@ IF(EXISTS "${COINUTILS_DIR}" AND NOT "${COINUTILS_DIR}" STREQUAL "")
|
||||
SET(COINUTILS_LIBRARIES ${COINUTILS_LIBRARY})
|
||||
ENDIF()
|
||||
|
||||
+ if(NOT WIN32)
|
||||
+ find_package(PkgConfig)
|
||||
+ pkg_check_modules(CoinUtils coinutils IMPORTED_TARGET)
|
||||
+ list(APPEND COINUTILS_LIBRARIES PkgConfig::CoinUtils)
|
||||
+ endif()
|
||||
+
|
||||
MESSAGE(STATUS "CoinUtils ${COINUTILS_VERSION} found (include: ${COINUTILS_INCLUDE_DIRS})")
|
||||
ELSE()
|
||||
MESSAGE(STATUS "You are attempting to build without CoinUtils. "
|
||||
diff --git a/src/cmakeFindModules/OpenMVGConfig.cmake.in b/src/cmakeFindModules/OpenMVGConfig.cmake.in
|
||||
index d4ae73d1a..87f71cd7d 100644
|
||||
--- a/src/cmakeFindModules/OpenMVGConfig.cmake.in
|
||||
+++ b/src/cmakeFindModules/OpenMVGConfig.cmake.in
|
||||
@@ -65,6 +65,10 @@ find_dependency(Threads)
|
||||
find_dependency(cereal)
|
||||
find_dependency(Ceres)
|
||||
find_dependency(vlfeat)
|
||||
+if(NOT WIN32)
|
||||
+ find_dependency(PkgConfig)
|
||||
+ pkg_check_modules(CoinUtils coinutils IMPORTED_TARGET)
|
||||
+endif()
|
||||
|
||||
# Build the absolute root install directory as a relative path
|
||||
get_filename_component(CURRENT_ROOT_INSTALL_DIR
|
@ -10,14 +10,12 @@ endif()
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO openMVG/openMVG
|
||||
REF d0fe73dd426ae4001631a51272cff71047522df9 # v2.0
|
||||
SHA512 1d5c68971ad63ced46d8b9070bdacc1065b4ba950fe919e11f952a004def87d4d83a474d48aee714c21b12106d7d81187d3670d8a2e6daf2d3c5fceb008a5de3
|
||||
REF 01193a245ee3c36458e650b1cf4402caad8983ef # v2.1
|
||||
SHA512 ee98ca26426e7129917c920cd59817cb5d4faf1f5aa12f4085f9ac431875e9ec23ffee7792d65286bad4b922c474c56d5c2f2008b38fddf1ede096644f13ad47
|
||||
PATCHES
|
||||
build_fixes.patch
|
||||
0001-eigen_3.4.0.patch
|
||||
0002-eigen-3.4.patch
|
||||
no-absolute-paths.patch
|
||||
fix-coinutils.patch
|
||||
)
|
||||
|
||||
set(OpenMVG_USE_OPENMP OFF)
|
||||
@ -77,17 +75,22 @@ vcpkg_cmake_configure(
|
||||
)
|
||||
|
||||
vcpkg_cmake_install()
|
||||
vcpkg_cmake_config_fixup(CONFIG_PATH share/openMVG/cmake)
|
||||
|
||||
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share")
|
||||
file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/openMVG-targets.cmake" "${CURRENT_PACKAGES_DIR}/debug/lib/openMVG-targets-debug.cmake")
|
||||
endif()
|
||||
file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/openMVG-targets.cmake" "${CURRENT_PACKAGES_DIR}/lib/openMVG-targets-release.cmake")
|
||||
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/openMVG/")
|
||||
file(RENAME "${CURRENT_PACKAGES_DIR}/lib/openMVG/cmake" "${CURRENT_PACKAGES_DIR}/share/openMVG/cmake")
|
||||
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/share/openMVG/")
|
||||
file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/openMVG/cmake" "${CURRENT_PACKAGES_DIR}/debug/share/openMVG/cmake")
|
||||
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/openMVG/image/image_test"
|
||||
"${CURRENT_PACKAGES_DIR}/include/openMVG/exif/image_data"
|
||||
"${CURRENT_PACKAGES_DIR}/include/openMVG_dependencies/nonFree/sift/vl")
|
||||
vcpkg_cmake_config_fixup()
|
||||
|
||||
file(REMOVE_RECURSE
|
||||
"${CURRENT_PACKAGES_DIR}/debug/include"
|
||||
"${CURRENT_PACKAGES_DIR}/include/openMVG_dependencies/cereal"
|
||||
"${CURRENT_PACKAGES_DIR}/include/openMVG_dependencies/glfw"
|
||||
"${CURRENT_PACKAGES_DIR}/include/openMVG_dependencies/osi_clp"
|
||||
"${CURRENT_PACKAGES_DIR}/include/openMVG/image/image_test"
|
||||
"${CURRENT_PACKAGES_DIR}/include/openMVG/exif/image_data"
|
||||
"${CURRENT_PACKAGES_DIR}/include/openMVG_dependencies/nonFree/sift/vl")
|
||||
|
||||
if(OpenMVG_BUILD_SHARED)
|
||||
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
|
||||
@ -129,6 +132,7 @@ if("software" IN_LIST FEATURES)
|
||||
openMVG_main_ComputeMatches
|
||||
openMVG_main_ComputeSfM_DataColor
|
||||
openMVG_main_ComputeStructureFromKnownPoses
|
||||
openMVG_main_ComputeVLAD
|
||||
openMVG_main_ConvertList
|
||||
openMVG_main_ConvertSfM_DataFormat
|
||||
openMVG_main_evalQuality
|
||||
|
@ -1,7 +1,6 @@
|
||||
{
|
||||
"name": "openmvg",
|
||||
"version": "2.0",
|
||||
"port-version": 11,
|
||||
"version": "2.1",
|
||||
"description": "open Multiple View Geometry library. Basis for 3D computer vision and Structure from Motion.",
|
||||
"license": "MPL-2.0-no-copyleft-exception",
|
||||
"supports": "(x86 | x64 | arm64) & !xbox",
|
||||
@ -10,7 +9,6 @@
|
||||
{
|
||||
"name": "ceres",
|
||||
"features": [
|
||||
"cxsparse",
|
||||
"suitesparse"
|
||||
]
|
||||
},
|
||||
|
@ -1,9 +1,9 @@
|
||||
diff --git a/lib/OpenTURNSConfig.cmake.in b/lib/OpenTURNSConfig.cmake.in
|
||||
index 1247591893..c12e423892 100644
|
||||
index 74f17eafd..e08d121dc 100644
|
||||
--- a/lib/OpenTURNSConfig.cmake.in
|
||||
+++ b/lib/OpenTURNSConfig.cmake.in
|
||||
@@ -74,6 +74,17 @@ if ("1" STREQUAL "@HMAT_FOUND@")
|
||||
find_package (HMAT REQUIRED NO_MODULE PATHS ${HMAT_DIR} NO_DEFAULT_PATH)
|
||||
@@ -107,6 +107,18 @@ if (NOT @BUILD_SHARED_LIBS@)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
+include(CMakeFindDependencyMacro)
|
||||
@ -16,8 +16,8 @@ index 1247591893..c12e423892 100644
|
||||
+find_dependency(Ceres CONFIG)
|
||||
+find_dependency(Pagmo CONFIG)
|
||||
+find_dependency(CMinpack CONFIG)
|
||||
+find_dependency(nanoflann CONFIG)
|
||||
+
|
||||
# Our library dependencies (contains definitions for IMPORTED targets)
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/OpenTURNS-Targets.cmake")
|
||||
|
||||
|
||||
|
@ -1,15 +1,42 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index e13414978..77ecf3e9e 100644
|
||||
index 81f0f30d1..db08c345c 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -303,6 +303,10 @@ if (USE_BOOST)
|
||||
list (APPEND OPENTURNS_PRIVATE_LIBRARIES ${MPC_LIBRARIES})
|
||||
@@ -272,15 +272,6 @@ if (USE_BOOST)
|
||||
set (Boost_VERSION "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
|
||||
endif ()
|
||||
set (OPENTURNS_HAVE_BOOST TRUE)
|
||||
- if (USE_MPFR)
|
||||
- find_package (MPFR)
|
||||
- if (MPFR_FOUND)
|
||||
- set (OPENTURNS_HAVE_MPFR TRUE)
|
||||
- list (APPEND OPENTURNS_PRIVATE_INCLUDE_DIRS ${MPFR_INCLUDE_DIRS})
|
||||
- list (APPEND OPENTURNS_PRIVATE_LIBRARIES ${MPFR_LIBRARIES})
|
||||
- list (APPEND OPENTURNS_ENABLED_FEATURES "mpfr")
|
||||
- endif ()
|
||||
- endif ()
|
||||
if (USE_MPC AND NOT Boost_VERSION VERSION_LESS 1.68)
|
||||
find_package (MPC)
|
||||
if (MPC_FOUND)
|
||||
@@ -290,8 +281,19 @@ if (USE_BOOST)
|
||||
list (APPEND OPENTURNS_ENABLED_FEATURES "mpc")
|
||||
endif ()
|
||||
endif ()
|
||||
- list (APPEND OPENTURNS_PRIVATE_LIBRARIES Boost::boost)
|
||||
- list (APPEND OPENTURNS_ENABLED_FEATURES "boost")
|
||||
+ if (USE_MPFR)
|
||||
+ find_package (MPFR)
|
||||
+ if (MPFR_FOUND)
|
||||
+ set (OPENTURNS_HAVE_MPFR TRUE)
|
||||
+ list (APPEND OPENTURNS_PRIVATE_INCLUDE_DIRS ${MPFR_INCLUDE_DIRS})
|
||||
+ list (APPEND OPENTURNS_PRIVATE_LIBRARIES ${MPFR_LIBRARIES})
|
||||
+ list (APPEND OPENTURNS_ENABLED_FEATURES "mpfr")
|
||||
+ endif ()
|
||||
+ endif ()
|
||||
+ if((USE_MPC OR USE_MPFR) AND NOT BUILD_SHARED_LIBS)
|
||||
+ find_library(GMP_LIBRARY NAMES gmp)
|
||||
+ list (APPEND OPENTURNS_PRIVATE_LIBRARIES ${GMP_LIBRARY})
|
||||
+ endif()
|
||||
list (APPEND OPENTURNS_PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS})
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
|
@ -1,12 +1,11 @@
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO openturns/openturns
|
||||
REF ad8482ece23d98802edc6258683e8353f9ff8b08
|
||||
SHA512 b0bc88bcf54945b5e786b480e640ee182926c75f1d871f70690d9609c98745b1907b3d9184c07586591fa45238c837da5a893a00d9c576a9e10232bcc9adc593
|
||||
REF b62fb487266949ffdad036712cec604cf70d6e34
|
||||
SHA512 de14a872bb2c3cd871d7f98e6a0d62f9f3c23386200f0c63d11fec0877d69639e45f004f3f18217bad68fc52d02d285ac3f5d70dcc89a8c23edaea9fe365b527
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
link-gmp.patch
|
||||
reorder-mpc.patch
|
||||
fix-dep.patch
|
||||
)
|
||||
|
||||
@ -25,6 +24,7 @@ vcpkg_cmake_configure(
|
||||
-DUSE_BOOST:BOOL=ON # Required to make the distributions cross platform
|
||||
-DUSE_DOXYGEN:BOOL=OFF
|
||||
-DUSE_OPENMP:BOOL=OFF
|
||||
-DUSE_CUBA:BOOL=OFF
|
||||
-DCMAKE_REQUIRE_FIND_PACKAGE_Spectra:BOOL=ON
|
||||
-DCMAKE_REQUIRE_FIND_PACKAGE_Eigen3:BOOL=ON
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_primesieve:BOOL=ON
|
||||
@ -32,7 +32,6 @@ vcpkg_cmake_configure(
|
||||
-DCMAKE_REQUIRE_FIND_PACKAGE_FLEX:BOOL=ON
|
||||
-DCMAKE_REQUIRE_FIND_PACKAGE_TBB:BOOL=ON
|
||||
-DCMAKE_REQUIRE_FIND_PACKAGE_muParser:BOOL=ON
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_HMAT:BOOL=ON
|
||||
-DCMAKE_REQUIRE_FIND_PACKAGE_LibXml2:BOOL=ON
|
||||
-DCMAKE_REQUIRE_FIND_PACKAGE_HDF5:BOOL=ON
|
||||
-DCMAKE_REQUIRE_FIND_PACKAGE_MPFR:BOOL=ON
|
||||
@ -49,8 +48,8 @@ vcpkg_cmake_configure(
|
||||
vcpkg_cmake_install()
|
||||
|
||||
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}")
|
||||
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/OpenTURNSConfig.cmake" "/lib/cmake/" "/share/")
|
||||
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/OpenTURNSConfig.cmake" "/lib" "$<$<CONFIG:DEBUG>:/debug>/lib")
|
||||
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/OpenTURNSConfig.cmake" "/lib/cmake/" "/share/" IGNORE_UNCHANGED)
|
||||
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/OpenTURNSConfig.cmake" "/lib" "$<$<CONFIG:DEBUG>:/debug>/lib" IGNORE_UNCHANGED)
|
||||
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
||||
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/openturns/OTdebug.h" "#ifndef OT_STATIC" "#if 0")
|
||||
|
@ -1,34 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 77ecf3e9e..b78ebcbec 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -287,14 +287,6 @@ if (USE_BOOST)
|
||||
set (Boost_VERSION "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
|
||||
endif ()
|
||||
set (OPENTURNS_HAVE_BOOST TRUE)
|
||||
- if (USE_MPFR)
|
||||
- find_package (MPFR)
|
||||
- if (MPFR_FOUND)
|
||||
- set (OPENTURNS_HAVE_MPFR TRUE)
|
||||
- list (APPEND OPENTURNS_PRIVATE_INCLUDE_DIRS ${MPFR_INCLUDE_DIRS})
|
||||
- list (APPEND OPENTURNS_PRIVATE_LIBRARIES ${MPFR_LIBRARIES})
|
||||
- endif ()
|
||||
- endif ()
|
||||
if (USE_MPC AND NOT Boost_VERSION VERSION_LESS 1.68)
|
||||
find_package (MPC)
|
||||
if (MPC_FOUND)
|
||||
@@ -303,6 +295,14 @@ if (USE_BOOST)
|
||||
list (APPEND OPENTURNS_PRIVATE_LIBRARIES ${MPC_LIBRARIES})
|
||||
endif ()
|
||||
endif ()
|
||||
+ if (USE_MPFR)
|
||||
+ find_package (MPFR)
|
||||
+ if (MPFR_FOUND)
|
||||
+ set (OPENTURNS_HAVE_MPFR TRUE)
|
||||
+ list (APPEND OPENTURNS_PRIVATE_INCLUDE_DIRS ${MPFR_INCLUDE_DIRS})
|
||||
+ list (APPEND OPENTURNS_PRIVATE_LIBRARIES ${MPFR_LIBRARIES})
|
||||
+ endif ()
|
||||
+ endif ()
|
||||
if((USE_MPC OR USE_MPFR) AND NOT BUILD_SHARED_LIBS)
|
||||
find_library(GMP_LIBRARY NAMES gmp)
|
||||
list (APPEND OPENTURNS_PRIVATE_LIBRARIES ${GMP_LIBRARY})
|
@ -1,12 +1,13 @@
|
||||
{
|
||||
"name": "openturns",
|
||||
"version": "1.20",
|
||||
"port-version": 2,
|
||||
"version": "1.24",
|
||||
"description": "OpenTURNS is a scientific C++ and Python library featuring an internal data model and algorithms dedicated to the treatment of uncertainties.",
|
||||
"homepage": "http://www.openturns.org",
|
||||
"license": null,
|
||||
"dependencies": [
|
||||
"blas",
|
||||
"boost-geometry",
|
||||
"boost-math",
|
||||
"boost-multiprecision",
|
||||
"boost-random",
|
||||
"ceres",
|
||||
@ -25,6 +26,7 @@
|
||||
"mpc",
|
||||
"mpfr",
|
||||
"muparser",
|
||||
"nanoflann",
|
||||
"nlopt",
|
||||
"pagmo2",
|
||||
"pthread",
|
||||
|
114
ports/rtabmap/ceres-manifold.patch
Normal file
114
ports/rtabmap/ceres-manifold.patch
Normal file
@ -0,0 +1,114 @@
|
||||
diff --git a/corelib/src/optimizer/OptimizerCeres.cpp b/corelib/src/optimizer/OptimizerCeres.cpp
|
||||
index 5a62283a..7d216b47 100644
|
||||
--- a/corelib/src/optimizer/OptimizerCeres.cpp
|
||||
+++ b/corelib/src/optimizer/OptimizerCeres.cpp
|
||||
@@ -37,7 +37,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
#ifdef RTABMAP_CERES
|
||||
#include <ceres/ceres.h>
|
||||
-#include <ceres/local_parameterization.h>
|
||||
+#include <ceres/manifold.h>
|
||||
#include "ceres/pose_graph_2d/types.h"
|
||||
#include "ceres/pose_graph_2d/pose_graph_2d_error_term.h"
|
||||
#include "ceres/pose_graph_2d/angle_local_parameterization.h"
|
||||
@@ -118,8 +118,8 @@ std::map<int, Transform> OptimizerCeres::optimize(
|
||||
}
|
||||
|
||||
ceres::LossFunction* loss_function = NULL;
|
||||
- ceres::LocalParameterization* angle_local_parameterization = NULL;
|
||||
- ceres::LocalParameterization* quaternion_local_parameterization = NULL;
|
||||
+ ceres::Manifold* angle_local_parameterization = NULL;
|
||||
+ ceres::Manifold* quaternion_local_parameterization = NULL;
|
||||
|
||||
for(std::multimap<int, Link>::const_iterator iter=edgeConstraints.begin(); iter!=edgeConstraints.end(); ++iter)
|
||||
{
|
||||
@@ -168,8 +168,8 @@ std::map<int, Transform> OptimizerCeres::optimize(
|
||||
{
|
||||
angle_local_parameterization = ceres::examples::AngleLocalParameterization::Create();
|
||||
}
|
||||
- problem.SetParameterization(&pose_begin_iter->second.yaw_radians, angle_local_parameterization);
|
||||
- problem.SetParameterization(&pose_end_iter->second.yaw_radians, angle_local_parameterization);
|
||||
+ problem.SetManifold(&pose_begin_iter->second.yaw_radians, angle_local_parameterization);
|
||||
+ problem.SetManifold(&pose_end_iter->second.yaw_radians, angle_local_parameterization);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -196,10 +196,10 @@ std::map<int, Transform> OptimizerCeres::optimize(
|
||||
pose_end_iter->second.p.data(), pose_end_iter->second.q.coeffs().data());
|
||||
if(quaternion_local_parameterization == NULL)
|
||||
{
|
||||
- quaternion_local_parameterization = new ceres::EigenQuaternionParameterization;
|
||||
+ quaternion_local_parameterization = new ceres::EigenQuaternionManifold;
|
||||
}
|
||||
- problem.SetParameterization(pose_begin_iter->second.q.coeffs().data(), quaternion_local_parameterization);
|
||||
- problem.SetParameterization(pose_end_iter->second.q.coeffs().data(), quaternion_local_parameterization);
|
||||
+ problem.SetManifold(pose_begin_iter->second.q.coeffs().data(), quaternion_local_parameterization);
|
||||
+ problem.SetManifold(pose_end_iter->second.q.coeffs().data(), quaternion_local_parameterization);
|
||||
}
|
||||
}
|
||||
//else // not supporting pose prior and landmarks
|
||||
diff --git a/corelib/src/optimizer/ceres/pose_graph_2d/angle_local_parameterization.h b/corelib/src/optimizer/ceres/pose_graph_2d/angle_local_parameterization.h
|
||||
index 428ccccd..d5bf1dcd 100644
|
||||
--- a/corelib/src/optimizer/ceres/pose_graph_2d/angle_local_parameterization.h
|
||||
+++ b/corelib/src/optimizer/ceres/pose_graph_2d/angle_local_parameterization.h
|
||||
@@ -31,7 +31,8 @@
|
||||
#ifndef CERES_EXAMPLES_POSE_GRAPH_2D_ANGLE_LOCAL_PARAMETERIZATION_H_
|
||||
#define CERES_EXAMPLES_POSE_GRAPH_2D_ANGLE_LOCAL_PARAMETERIZATION_H_
|
||||
|
||||
-#include "ceres/local_parameterization.h"
|
||||
+#include "ceres/autodiff_manifold.h"
|
||||
+#include "ceres/manifold.h"
|
||||
#include "normalize_angle.h"
|
||||
|
||||
namespace ceres {
|
||||
@@ -41,19 +42,20 @@ namespace examples {
|
||||
// [-pi to pi).
|
||||
class AngleLocalParameterization {
|
||||
public:
|
||||
-
|
||||
template <typename T>
|
||||
- bool operator()(const T* theta_radians, const T* delta_theta_radians,
|
||||
- T* theta_radians_plus_delta) const {
|
||||
- *theta_radians_plus_delta =
|
||||
- NormalizeAngle(*theta_radians + *delta_theta_radians);
|
||||
+ bool Plus(const T* x, const T* delta, T* x_plus_delta) const {
|
||||
+ *x_plus_delta = NormalizeAngle(*x + *delta);
|
||||
+ return true;
|
||||
+ }
|
||||
|
||||
+ template <typename T>
|
||||
+ bool Minus(const T* y, const T* x, T* y_minus_x) const {
|
||||
+ *y_minus_x = NormalizeAngle(*y - *x);
|
||||
return true;
|
||||
}
|
||||
|
||||
- static ceres::LocalParameterization* Create() {
|
||||
- return (new ceres::AutoDiffLocalParameterization<AngleLocalParameterization,
|
||||
- 1, 1>);
|
||||
+ static ceres::Manifold* Create() {
|
||||
+ return (new ceres::AutoDiffManifold<AngleLocalParameterization, 1, 1>);
|
||||
}
|
||||
};
|
||||
|
||||
diff --git a/corelib/src/optimizer/ceres/pose_graph_3d/eigen_quaternion_parameterization.h b/corelib/src/optimizer/ceres/pose_graph_3d/eigen_quaternion_parameterization.h
|
||||
index ae03ebda..ffab3042 100644
|
||||
--- a/corelib/src/optimizer/ceres/pose_graph_3d/eigen_quaternion_parameterization.h
|
||||
+++ b/corelib/src/optimizer/ceres/pose_graph_3d/eigen_quaternion_parameterization.h
|
||||
@@ -31,7 +31,7 @@
|
||||
#ifndef CERES_EXAMPLES_POSE_GRAPH_3D_EIGEN_QUATERNION_PARAMETERIZATION_H_
|
||||
#define CERES_EXAMPLES_POSE_GRAPH_3D_EIGEN_QUATERNION_PARAMETERIZATION_H_
|
||||
|
||||
-#include "ceres/local_parameterization.h"
|
||||
+#include "ceres/manifold.h"
|
||||
|
||||
namespace ceres {
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace ceres {
|
||||
//
|
||||
// Plus(x, delta) = [sin(|delta|) delta / |delta|, cos(|delta|)] * x
|
||||
// with * being the quaternion multiplication operator.
|
||||
-class EigenQuaternionParameterization : public ceres::LocalParameterization {
|
||||
+class EigenQuaternionParameterization : public ceres::Manifold {
|
||||
public:
|
||||
virtual ~EigenQuaternionParameterization() {}
|
||||
virtual bool Plus(const double* x_ptr,
|
@ -11,6 +11,7 @@ vcpkg_from_github(
|
||||
multi-definition.patch
|
||||
rtabmap-res-tool.patch
|
||||
gklib.patch
|
||||
ceres-manifold.patch
|
||||
fix-find-g2o.patch
|
||||
)
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "rtabmap",
|
||||
"version": "0.21.4.1",
|
||||
"port-version": 3,
|
||||
"port-version": 4,
|
||||
"description": "Real-Time Appearance-Based Mapping",
|
||||
"homepage": "https://introlab.github.io/rtabmap/",
|
||||
"license": null,
|
||||
|
@ -1,12 +0,0 @@
|
||||
diff --git a/libraries/vlfeat/CMakeLists.txt b/libraries/vlfeat/CMakeLists.txt
|
||||
index 7f4ffc796..9535d0c22 100644
|
||||
--- a/libraries/vlfeat/CMakeLists.txt
|
||||
+++ b/libraries/vlfeat/CMakeLists.txt
|
||||
@@ -1,6 +1,6 @@
|
||||
project(vlfeat)
|
||||
|
||||
-include("${CMAKE_MODULE_PATH}/OptimizeTheiaCompilerFlags.cmake")
|
||||
+include(OptimizeTheiaCompilerFlags)
|
||||
optimizetheiacompilerflags()
|
||||
|
||||
include_directories(./vl)
|
@ -1,24 +0,0 @@
|
||||
--- a/libraries/akaze/src/nldiffusion_functions.cpp
|
||||
+++ b/libraries/akaze/src/nldiffusion_functions.cpp
|
||||
@@ -222,8 +222,8 @@ void halfsample_image(const RowMatrixXf& src, RowMatrixXf& dst) {
|
||||
|
||||
// Do the whole resampling in one pass by using neighboring values. First, we
|
||||
// compute the borders.
|
||||
- const double x_kernel_size = static_cast<double>(src.cols()) / dst.cols();
|
||||
- const double y_kernel_size = static_cast<double>(src.rows()) / dst.rows();
|
||||
+ const int x_kernel_size = static_cast<double>(src.cols()) / dst.cols();
|
||||
+ const int y_kernel_size = static_cast<double>(src.rows()) / dst.rows();
|
||||
|
||||
// Do simple linear interpolation.
|
||||
if (x_kernel_size == 2 && y_kernel_size == 2) {
|
||||
@@ -237,8 +237,8 @@ void halfsample_image(const RowMatrixXf& src, RowMatrixXf& dst) {
|
||||
return;
|
||||
}
|
||||
|
||||
- const double x_kernel_clamped_size = static_cast<int>(ceil(x_kernel_size));
|
||||
- const double y_kernel_clamped_size = static_cast<int>(ceil(y_kernel_size));
|
||||
+ const int x_kernel_clamped_size = static_cast<int>(ceil(static_cast<double>(src.cols()) / dst.cols()));
|
||||
+ const int y_kernel_clamped_size = static_cast<int>(ceil(static_cast<double>(src.rows()) / dst.rows()));
|
||||
|
||||
// Set up precomputed factor matrices.
|
||||
Eigen::RowVectorXf x_kernel_mul(static_cast<int>(x_kernel_clamped_size)),
|
@ -1,457 +0,0 @@
|
||||
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,4 @@ 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"
|
||||
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
|
@ -1,76 +0,0 @@
|
||||
diff --git a/cmake/TheiaConfig.cmake.in b/cmake/TheiaConfig.cmake.in
|
||||
index 7e9d912..2a98124 100644
|
||||
--- a/cmake/TheiaConfig.cmake.in
|
||||
+++ b/cmake/TheiaConfig.cmake.in
|
||||
@@ -43,7 +43,7 @@ macro(THEIA_REPORT_NOT_FOUND REASON_MSG)
|
||||
# use the camelcase library name, not uppercase.
|
||||
if (Theia_FIND_QUIETLY)
|
||||
message(STATUS "Failed to find Theia - " ${REASON_MSG} ${ARGN})
|
||||
- else (Theia_FIND_REQUIRED)
|
||||
+ elseif (Theia_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "Failed to find Theia - " ${REASON_MSG} ${ARGN})
|
||||
else()
|
||||
# Neither QUIETLY nor REQUIRED, use SEND_ERROR which emits an error
|
||||
@@ -103,35 +103,35 @@ set(THEIA_INCLUDE_DIRS ${THEIA_INCLUDE_DIR})
|
||||
|
||||
# Eigen.
|
||||
# Flag set during configuration and build of Theia.
|
||||
-set(THEIA_EIGEN_VERSION @EIGEN_VERSION@)
|
||||
+set(THEIA_EIGEN_VERSION @EIGEN3_VERSION@)
|
||||
# Append the locations of Eigen when Theia was built to the search path hints.
|
||||
-list(APPEND EIGEN_INCLUDE_DIR_HINTS @EIGEN_INCLUDE_DIR@)
|
||||
+list(APPEND EIGEN_INCLUDE_DIR_HINTS @EIGEN3_INCLUDE_DIR@)
|
||||
# Search quietly s/t we control the timing of the error message if not found.
|
||||
-find_package(Eigen ${THEIA_EIGEN_VERSION} EXACT QUIET)
|
||||
-if (EIGEN_FOUND)
|
||||
+find_package(Eigen3 ${THEIA_EIGEN_VERSION} REQUIRED)
|
||||
+if (EIGEN3_FOUND)
|
||||
message(STATUS "Found required Theia dependency: "
|
||||
- "Eigen version ${THEIA_EIGEN_VERSION} in ${EIGEN_INCLUDE_DIRS}")
|
||||
-else (EIGEN_FOUND)
|
||||
+ "Eigen version ${THEIA_EIGEN_VERSION} in ${EIGEN3_INCLUDE_DIRS}")
|
||||
+else (EIGEN3_FOUND)
|
||||
theia_report_not_found("Missing required Theia "
|
||||
"dependency: Eigen version ${THEIA_EIGEN_VERSION}, please set "
|
||||
"EIGEN_INCLUDE_DIR.")
|
||||
-endif (EIGEN_FOUND)
|
||||
-list(APPEND THEIA_INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS})
|
||||
+endif (EIGEN3_FOUND)
|
||||
+list(APPEND THEIA_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIRS})
|
||||
|
||||
# Ceres.
|
||||
# Append the locations of ceres when Theia was built to the search path hints.
|
||||
-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})
|
||||
+#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 REQUIRED)
|
||||
list(APPEND THEIA_INCLUDE_DIRS ${CERES_INCLUDE_DIRS})
|
||||
|
||||
# Glog.
|
||||
# Append the locations of glog when Theia was built to the search path hints.
|
||||
-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})
|
||||
+#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 REQUIRED)
|
||||
list(APPEND THEIA_INCLUDE_DIRS ${GLOG_INCLUDE_DIRS})
|
||||
diff --git a/src/theia/CMakeLists.txt b/src/theia/CMakeLists.txt
|
||||
index 768586d..c1f6593 100644
|
||||
--- a/src/theia/CMakeLists.txt
|
||||
+++ b/src/theia/CMakeLists.txt
|
||||
@@ -207,7 +207,7 @@ set(THEIA_LIBRARY_DEPENDENCIES
|
||||
${GFLAGS_LIBRARIES}
|
||||
${GLOG_LIBRARIES}
|
||||
${SUITESPARSE_LIBRARIES}
|
||||
- ${OPENIMAGEIO_LIBRARIES}
|
||||
+ OpenImageIO::OpenImageIO
|
||||
akaze
|
||||
statx
|
||||
stlplus3
|
@ -1,44 +0,0 @@
|
||||
diff --git a/src/theia/image/image.cc b/src/theia/image/image.cc
|
||||
index 6175a1f..18cb59b 100644
|
||||
--- a/src/theia/image/image.cc
|
||||
+++ b/src/theia/image/image.cc
|
||||
@@ -296,7 +296,7 @@ FloatImage FloatImage::ComputeGradient() const {
|
||||
|
||||
void FloatImage::ApproximateGaussianBlur(const int kernel_size) {
|
||||
oiio::ImageBuf kernel;
|
||||
- oiio::ImageBufAlgo::make_kernel(kernel, "gaussian",
|
||||
+ oiio::ImageBufAlgo::make_kernel("gaussian",
|
||||
static_cast<float>(kernel_size),
|
||||
static_cast<float>(kernel_size));
|
||||
oiio::ImageBufAlgo::convolve(image_, image_, kernel);
|
||||
diff --git a/src/theia/sfm/exif_reader.cc b/src/theia/sfm/exif_reader.cc
|
||||
index c63465a..6b0e702 100644
|
||||
--- a/src/theia/sfm/exif_reader.cc
|
||||
+++ b/src/theia/sfm/exif_reader.cc
|
||||
@@ -150,7 +150,7 @@ bool ExifReader::ExtractEXIFMetadata(
|
||||
camera_intrinsics_prior->focal_length.is_set = true;
|
||||
|
||||
// Set GPS latitude.
|
||||
- const oiio::ImageIOParameter* latitude =
|
||||
+ const OIIO::ParamValue* latitude =
|
||||
image_spec.find_attribute("GPS:Latitude");
|
||||
if (latitude != nullptr) {
|
||||
camera_intrinsics_prior->latitude.is_set = true;
|
||||
@@ -169,7 +169,7 @@ bool ExifReader::ExtractEXIFMetadata(
|
||||
}
|
||||
|
||||
// Set GPS longitude.
|
||||
- const oiio::ImageIOParameter* longitude =
|
||||
+ const OIIO::ParamValue* longitude =
|
||||
image_spec.find_attribute("GPS:Longitude");
|
||||
if (longitude != nullptr) {
|
||||
camera_intrinsics_prior->longitude.is_set = true;
|
||||
@@ -189,7 +189,7 @@ bool ExifReader::ExtractEXIFMetadata(
|
||||
|
||||
|
||||
// Set GSP altitude.
|
||||
- const oiio::ImageIOParameter* altitude =
|
||||
+ const OIIO::ParamValue* altitude =
|
||||
image_spec.find_attribute("GPS:Altitude");
|
||||
if (altitude != nullptr) {
|
||||
camera_intrinsics_prior->altitude.is_set = true;
|
@ -1,56 +0,0 @@
|
||||
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO sweeneychris/TheiaSfM
|
||||
REF v0.8
|
||||
SHA512 2f620389c415badec36f4b44be0378fc62761dd6b2ee4cd7033b13573c372f098e248553575fb2cceb757b1ca00e86a11c67e03b6077e0a4b0f8797065746312
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
fix-external-dependencies.patch
|
||||
fix-external-dependencies2.patch
|
||||
eigen-3.4.patch
|
||||
266.diff
|
||||
fix-last-openimageio.patch
|
||||
)
|
||||
|
||||
file(REMOVE "${SOURCE_PATH}/cmake/FindSuiteSparse.cmake")
|
||||
file(REMOVE "${SOURCE_PATH}/cmake/FindOpenImageIO.cmake")
|
||||
file(REMOVE "${SOURCE_PATH}/cmake/FindGflags.cmake")
|
||||
file(REMOVE "${SOURCE_PATH}/cmake/FindGlog.cmake")
|
||||
file(REMOVE "${SOURCE_PATH}/cmake/FindEigen.cmake")
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
OPTIONS
|
||||
-DCMAKE_CXX_STANDARD=14
|
||||
-DCMAKE_CXX_EXTENSIONS=OFF
|
||||
-DCMAKE_CXX_STANDARD_REQUIRED=ON
|
||||
-DBUILD_TESTING=OFF
|
||||
-DTHEIA_USE_EXTERNAL_CEREAL=ON
|
||||
-DTHEIA_USE_EXTERNAL_FLANN=ON
|
||||
-DCMAKE_POLICY_DEFAULT_CMP0012=NEW
|
||||
-DCMAKE_POLICY_DEFAULT_CMP0057=NEW
|
||||
MAYBE_UNUSED_VARIABLES
|
||||
CMAKE_POLICY_DEFAULT_CMP0012
|
||||
THEIA_USE_EXTERNAL_CEREAL
|
||||
THEIA_USE_EXTERNAL_FLANN
|
||||
)
|
||||
|
||||
vcpkg_cmake_install()
|
||||
vcpkg_cmake_config_fixup()
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
# Clean
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/optimo")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/optimo")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/theia/libraries/akaze/cimg/cmake-modules")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/theia/libraries/akaze/cmake")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/theia/libraries/akaze/datasets")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/theia/libraries/spectra/doxygen")
|
||||
|
||||
# Handle copyright
|
||||
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license.txt")
|
||||
file(COPY "${SOURCE_PATH}/data/camera_sensor_database_license.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
|
@ -1,38 +0,0 @@
|
||||
{
|
||||
"name": "theia",
|
||||
"version": "0.8",
|
||||
"port-version": 12,
|
||||
"description": "An open source library for multiview geometry and structure from motion",
|
||||
"homepage": "https://github.com/sweeneychris/TheiaSfM",
|
||||
"license": "BSD-3-Clause",
|
||||
"supports": "!uwp & !arm & !(windows & x86)",
|
||||
"dependencies": [
|
||||
"cereal",
|
||||
{
|
||||
"name": "ceres",
|
||||
"features": [
|
||||
"suitesparse"
|
||||
]
|
||||
},
|
||||
"flann",
|
||||
{
|
||||
"name": "freeglut",
|
||||
"platform": "!osx"
|
||||
},
|
||||
"glew",
|
||||
{
|
||||
"name": "openimageio",
|
||||
"features": [
|
||||
"viewer"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-cmake",
|
||||
"host": true
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-cmake-config",
|
||||
"host": true
|
||||
}
|
||||
]
|
||||
}
|
@ -1516,10 +1516,6 @@
|
||||
"baseline": "1.2.0",
|
||||
"port-version": 0
|
||||
},
|
||||
"cartographer": {
|
||||
"baseline": "1.0.0",
|
||||
"port-version": 6
|
||||
},
|
||||
"casadi": {
|
||||
"baseline": "3.6.7",
|
||||
"port-version": 0
|
||||
@ -1585,8 +1581,8 @@
|
||||
"port-version": 1
|
||||
},
|
||||
"ceres": {
|
||||
"baseline": "2.1.0",
|
||||
"port-version": 5
|
||||
"baseline": "2.2.0",
|
||||
"port-version": 0
|
||||
},
|
||||
"cfitsio": {
|
||||
"baseline": "3.49",
|
||||
@ -6733,8 +6729,8 @@
|
||||
"port-version": 1
|
||||
},
|
||||
"openmvg": {
|
||||
"baseline": "2.0",
|
||||
"port-version": 11
|
||||
"baseline": "2.1",
|
||||
"port-version": 0
|
||||
},
|
||||
"openmvs": {
|
||||
"baseline": "2.1.0",
|
||||
@ -6773,8 +6769,8 @@
|
||||
"port-version": 4
|
||||
},
|
||||
"openturns": {
|
||||
"baseline": "1.20",
|
||||
"port-version": 2
|
||||
"baseline": "1.24",
|
||||
"port-version": 0
|
||||
},
|
||||
"openvdb": {
|
||||
"baseline": "12.0.0",
|
||||
@ -8050,7 +8046,7 @@
|
||||
},
|
||||
"rtabmap": {
|
||||
"baseline": "0.21.4.1",
|
||||
"port-version": 3
|
||||
"port-version": 4
|
||||
},
|
||||
"rtabmap-res-tool": {
|
||||
"baseline": "0.21.4.1",
|
||||
@ -8912,10 +8908,6 @@
|
||||
"baseline": "1.6.1",
|
||||
"port-version": 0
|
||||
},
|
||||
"theia": {
|
||||
"baseline": "0.8",
|
||||
"port-version": 12
|
||||
},
|
||||
"think-cell-range": {
|
||||
"baseline": "2023.1",
|
||||
"port-version": 1
|
||||
|
@ -1,5 +1,10 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "ae2ddb638679c4955ec12f60c33eb43493786535",
|
||||
"version": "2.2.0",
|
||||
"port-version": 0
|
||||
},
|
||||
{
|
||||
"git-tree": "213619bf4451443bd69f784f9a7fa32fc2436e07",
|
||||
"version": "2.1.0",
|
||||
|
@ -1,5 +1,10 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "897ab1ecaccba02608f2a36ebc8072548aa6c395",
|
||||
"version": "2.1",
|
||||
"port-version": 0
|
||||
},
|
||||
{
|
||||
"git-tree": "e08aec4337f9a281817b2c84d04fee5a079551d8",
|
||||
"version": "2.0",
|
||||
|
@ -1,5 +1,10 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "a7fd1d7b26b1383de54594cbf65327ec8db97ea9",
|
||||
"version": "1.24",
|
||||
"port-version": 0
|
||||
},
|
||||
{
|
||||
"git-tree": "55e0a233063acabd3fe365687fda3f99d6e79f4c",
|
||||
"version": "1.20",
|
||||
|
@ -1,5 +1,10 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "8095952b0fbd2d24600e3314c345184503634e8f",
|
||||
"version": "0.21.4.1",
|
||||
"port-version": 4
|
||||
},
|
||||
{
|
||||
"git-tree": "9bab9b050ad5e8db991955d2905f95cc5ce4a1ff",
|
||||
"version": "0.21.4.1",
|
||||
|
Loading…
x
Reference in New Issue
Block a user