mirror of
https://github.com/cemu-project/vcpkg.git
synced 2025-02-24 03:27:12 +01:00
commit
1d53b00cea
4
ports/theia/CONTROL
Normal file
4
ports/theia/CONTROL
Normal file
@ -0,0 +1,4 @@
|
||||
Source: theia
|
||||
Version: 0.7-d15154a
|
||||
Build-Depends: flann, cereal, ceres, openimageio, glew, freeglut
|
||||
Description: An open source library for multiview geometry and structure from motion
|
310
ports/theia/fix-cmakelists.patch
Normal file
310
ports/theia/fix-cmakelists.patch
Normal file
@ -0,0 +1,310 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 9c1b150..367fbbc 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -218,24 +218,71 @@ include_directories(
|
||||
# as system headers.
|
||||
include_directories(SYSTEM ${EIGEN_INCLUDE_DIRS})
|
||||
|
||||
+
|
||||
+set(THEIA_USE_EXTERNAL_CEREAL OFF CACHE BOOL "Use a system Cereal library")
|
||||
+set(THEIA_USE_EXTERNAL_FLANN OFF CACHE BOOL "Use a system Flann library")
|
||||
+
|
||||
# build Third party libraries included in distro.
|
||||
-add_subdirectory(libraries)
|
||||
-include_directories(
|
||||
- libraries
|
||||
- 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})
|
||||
+if (BUILD_TESTING)
|
||||
+ add_subdirectory(libraries/gtest)
|
||||
+endif (BUILD_TESTING)
|
||||
+
|
||||
+# AKAZE feature extractor.
|
||||
+add_subdirectory(libraries/akaze)
|
||||
+
|
||||
+include_directories(${akaze_SOURCE_DIR} ${akaze_INCLUDE_DIR})
|
||||
+
|
||||
+# Cereal for portable IO.
|
||||
+if(NOT THEIA_USE_EXTERNAL_CEREAL)
|
||||
+ add_subdirectory(libraries/cereal)
|
||||
+
|
||||
+ include_directories(${cereal_SOURCE_DIR} ${cereal_SOURCE_DIR}/include)
|
||||
+ set(THEIA_INTERNAL_CEREAL_LIB ${THEIA_INTERNAL_LIB_PREFIX}/cereal ${THEIA_INTERNAL_LIB_PREFIX}/cereal/include)
|
||||
+else()
|
||||
+ find_package(cereal REQUIRED)
|
||||
+
|
||||
+ set(_THEIA_CEREAL_LIBRARIES cereal)
|
||||
+endif()
|
||||
+
|
||||
+# Flann for fast approximate nearest neighbor searches.
|
||||
+if(NOT THEIA_USE_EXTERNAL_FLANN)
|
||||
+ add_subdirectory(libraries/flann)
|
||||
+
|
||||
+ include_directories(${flann_SOURCE_DIR} ${flann_SOURCE_DIR}/src/cpp)
|
||||
+ set(_THEIA_FLANN_LIBRARIES flann_cpp)
|
||||
+ set(THEIA_INTERNAL_FLANN_LIB ${THEIA_INTERNAL_LIB_PREFIX}/flann)
|
||||
+else()
|
||||
+ find_package(Flann REQUIRED)
|
||||
+
|
||||
+ include_directories(${FLANN_INCLUDE_DIR})
|
||||
+ set(_THEIA_FLANN_LIBRARIES ${FLANN_LIBRARY})
|
||||
+endif()
|
||||
+
|
||||
+# Add Optimo.
|
||||
+add_subdirectory(libraries/optimo)
|
||||
+include_directories(${optimo_SOURCE_DIR})
|
||||
+
|
||||
+# Add Spectra.
|
||||
+include_directories(libraries/spectra)
|
||||
+
|
||||
+# Add Statx.
|
||||
+add_subdirectory(libraries/statx)
|
||||
+include_directories(${statx_SOURCE_DIR})
|
||||
+
|
||||
+# STLPlus for filepath tools.
|
||||
+add_subdirectory(libraries/stlplus3)
|
||||
+include_directories(${stlplus3_SOURCE_DIR})
|
||||
+
|
||||
+# Add VLFeat.
|
||||
+add_subdirectory(libraries/vlfeat)
|
||||
+include_directories(${vlfeat_SOURCE_DIR})
|
||||
+
|
||||
+# Add VisualSfM files.
|
||||
+add_subdirectory(libraries/visual_sfm)
|
||||
+include_directories(${visual_sfm_SOURCE_DIR})
|
||||
+
|
||||
+include_directories(libraries)
|
||||
+
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
||||
include(OptimizeTheiaCompilerFlags)
|
||||
@@ -260,7 +307,19 @@ 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*")
|
||||
+if(NOT THEIA_USE_EXTERNAL_CEREAL)
|
||||
+ install(DIRECTORY libraries/cereal/ DESTINATION include/theia/libraries/cereal FILES_MATCHING PATTERN "*.h*")
|
||||
+endif()
|
||||
+if(NOT THEIA_USE_EXTERNAL_FLANN)
|
||||
+ install(DIRECTORY libraries/flann/ DESTINATION include/theia/libraries/flann FILES_MATCHING PATTERN "*.h*")
|
||||
+endif()
|
||||
+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"
|
||||
@@ -320,8 +379,9 @@ configure_file("${CMAKE_SOURCE_DIR}/cmake/TheiaConfigVersion.cmake.in"
|
||||
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/FindFlann.cmake"
|
||||
"${CMAKE_SOURCE_DIR}/cmake/FindGflags.cmake"
|
||||
- "${CMAKE_SOURCE_DIR}/cmake/FindOpenImageIO.cmake"
|
||||
+ "${CMAKE_SOURCE_DIR}/cmake/FindGlog.cmake"
|
||||
+ "${CMAKE_SOURCE_DIR}/cmake/FindOpenImageIO.cmake"
|
||||
"${CMAKE_SOURCE_DIR}/cmake/FindSuiteSparse.cmake"
|
||||
DESTINATION ${CMAKECONFIG_INSTALL_DIR})
|
||||
diff --git a/cmake/FindFlann.cmake b/cmake/FindFlann.cmake
|
||||
new file mode 100644
|
||||
index 0000000..5d19ef7
|
||||
--- /dev/null
|
||||
+++ b/cmake/FindFlann.cmake
|
||||
@@ -0,0 +1,63 @@
|
||||
+###############################################################################
|
||||
+# Find FLANN
|
||||
+#
|
||||
+# This sets the following variables:
|
||||
+# FLANN_FOUND - True if FLANN was found.
|
||||
+# FLANN_INCLUDE_DIRS - Directories containing the FLANN include files.
|
||||
+# FLANN_LIBRARIES - Libraries needed to use FLANN.
|
||||
+# FLANN_DEFINITIONS - Compiler flags for FLANN.
|
||||
+# If FLANN_USE_STATIC is specified and then look for static libraries ONLY else
|
||||
+# look for shared ones
|
||||
+
|
||||
+if(FLANN_USE_STATIC)
|
||||
+ set(FLANN_RELEASE_NAME flann_cpp_s flann_cpp)
|
||||
+ set(FLANN_DEBUG_NAME flann_cpp_s-gd flann_cpp-gd)
|
||||
+else(FLANN_USE_STATIC)
|
||||
+ set(FLANN_RELEASE_NAME flann_cpp)
|
||||
+ set(FLANN_DEBUG_NAME flann_cpp-gd)
|
||||
+endif(FLANN_USE_STATIC)
|
||||
+
|
||||
+find_package(PkgConfig QUIET)
|
||||
+if (FLANN_FIND_VERSION)
|
||||
+ pkg_check_modules(PC_FLANN flann>=${FLANN_FIND_VERSION})
|
||||
+else(FLANN_FIND_VERSION)
|
||||
+ pkg_check_modules(PC_FLANN flann)
|
||||
+endif(FLANN_FIND_VERSION)
|
||||
+
|
||||
+set(FLANN_DEFINITIONS ${PC_FLANN_CFLAGS_OTHER})
|
||||
+
|
||||
+find_path(FLANN_INCLUDE_DIR flann/flann.hpp
|
||||
+ HINTS ${PC_FLANN_INCLUDEDIR} ${PC_FLANN_INCLUDE_DIRS} "${FLANN_ROOT}" "$ENV{FLANN_ROOT}"
|
||||
+ PATHS "$ENV{PROGRAMFILES}/Flann" "$ENV{PROGRAMW6432}/Flann"
|
||||
+ PATH_SUFFIXES include)
|
||||
+
|
||||
+find_library(FLANN_LIBRARY
|
||||
+ NAMES ${FLANN_RELEASE_NAME}
|
||||
+ HINTS ${PC_FLANN_LIBDIR} ${PC_FLANN_LIBRARY_DIRS} "${FLANN_ROOT}" "$ENV{FLANN_ROOT}"
|
||||
+ PATHS "$ENV{PROGRAMFILES}/Flann" "$ENV{PROGRAMW6432}/Flann"
|
||||
+ PATH_SUFFIXES lib)
|
||||
+
|
||||
+find_library(FLANN_LIBRARY_DEBUG
|
||||
+ NAMES ${FLANN_DEBUG_NAME} ${FLANN_RELEASE_NAME}
|
||||
+ HINTS ${PC_FLANN_LIBDIR} ${PC_FLANN_LIBRARY_DIRS} "${FLANN_ROOT}" "$ENV{FLANN_ROOT}"
|
||||
+ PATHS "$ENV{PROGRAMFILES}/Flann" "$ENV{PROGRAMW6432}/Flann"
|
||||
+ PATH_SUFFIXES lib)
|
||||
+
|
||||
+if(NOT FLANN_LIBRARY_DEBUG)
|
||||
+ set(FLANN_LIBRARY_DEBUG ${FLANN_LIBRARY})
|
||||
+endif(NOT FLANN_LIBRARY_DEBUG)
|
||||
+
|
||||
+set(FLANN_INCLUDE_DIRS ${FLANN_INCLUDE_DIR})
|
||||
+set(FLANN_LIBRARIES optimized ${FLANN_LIBRARY} debug ${FLANN_LIBRARY_DEBUG})
|
||||
+
|
||||
+include(FindPackageHandleStandardArgs)
|
||||
+find_package_handle_standard_args(FLANN DEFAULT_MSG FLANN_LIBRARY FLANN_INCLUDE_DIR)
|
||||
+
|
||||
+mark_as_advanced(FLANN_LIBRARY FLANN_LIBRARY_DEBUG FLANN_INCLUDE_DIR)
|
||||
+
|
||||
+if(FLANN_FOUND)
|
||||
+ message(STATUS "Flann found (include: ${FLANN_INCLUDE_DIRS}, lib: ${FLANN_LIBRARIES})")
|
||||
+ if(FLANN_USE_STATIC)
|
||||
+ add_definitions(-DFLANN_STATIC)
|
||||
+ endif(FLANN_USE_STATIC)
|
||||
+endif(FLANN_FOUND)
|
||||
diff --git a/cmake/TheiaConfig.cmake.in b/cmake/TheiaConfig.cmake.in
|
||||
index a3ea187..9195da1 100644
|
||||
--- a/cmake/TheiaConfig.cmake.in
|
||||
+++ b/cmake/TheiaConfig.cmake.in
|
||||
@@ -207,22 +207,47 @@ endif (NOT TARGET theia AND NOT Theia_BINARY_DIR)
|
||||
# Set the expected XX_LIBRARIES variable for FindPackage().
|
||||
set(THEIA_LIBRARIES theia)
|
||||
|
||||
+set(THEIA_USE_EXTERNAL_CEREAL @THEIA_USE_EXTERNAL_CEREAL@)
|
||||
+set(THEIA_USE_EXTERNAL_FLANN @THEIA_USE_EXTERNAL_FLANN@)
|
||||
+
|
||||
+# Cereal.
|
||||
+if (THEIA_USE_EXTERNAL_CEREAL)
|
||||
+ find_package(cereal QUIET)
|
||||
+ if (TARGET cereal)
|
||||
+ message(STATUS "Found required Theia dependency: Cereal")
|
||||
+ else (TARGET cereal)
|
||||
+ theia_report_not_found("Missing required Theia dependency: Cereal.")
|
||||
+ endif (TARGET cereal)
|
||||
+ list(APPEND THEIA_LIBRARIES cereal)
|
||||
+endif (THEIA_USE_EXTERNAL_CEREAL)
|
||||
+
|
||||
+# Flann.
|
||||
+if (THEIA_USE_EXTERNAL_FLANN)
|
||||
+ find_package(Flann QUIET)
|
||||
+ if (FLANN_FOUND)
|
||||
+ message(STATUS "Found required Theia dependency: Flann")
|
||||
+ else (FLANN_FOUND)
|
||||
+ theia_report_not_found("Missing required Theia dependency: Flann.")
|
||||
+ endif (FLANN_FOUND)
|
||||
+ list(APPEND THEIA_INCLUDE_DIRS ${FLANN_INCLUDE_DIR})
|
||||
+ list(APPEND THEIA_LIBRARIES ${FLANN_LIBRARY})
|
||||
+endif (THEIA_USE_EXTERNAL_FLANN)
|
||||
+
|
||||
# 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_CEREAL_LIB@
|
||||
+ @THEIA_INTERNAL_FLANN_LIB@
|
||||
${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
|
||||
deleted file mode 100644
|
||||
index 84f3829..0000000
|
||||
--- a/libraries/CMakeLists.txt
|
||||
+++ /dev/null
|
||||
@@ -1,27 +0,0 @@
|
||||
-if (${BUILD_TESTING})
|
||||
- add_subdirectory(gtest)
|
||||
-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)
|
||||
-
|
||||
-# Add Statx.
|
||||
-add_subdirectory(statx)
|
||||
-
|
||||
-# STLPlus for filepath tools.
|
||||
-add_subdirectory(stlplus3)
|
||||
-
|
||||
-# Add VLFeat.
|
||||
-add_subdirectory(vlfeat)
|
||||
-
|
||||
-# Add VisualSfM files.
|
||||
-add_subdirectory(visual_sfm)
|
||||
\ No newline at end of file
|
||||
diff --git a/src/theia/CMakeLists.txt b/src/theia/CMakeLists.txt
|
||||
index 65787eb..07c54a4 100644
|
||||
--- a/src/theia/CMakeLists.txt
|
||||
+++ b/src/theia/CMakeLists.txt
|
||||
@@ -174,14 +174,15 @@ set(THEIA_LIBRARY_DEPENDENCIES
|
||||
${CERES_LIBRARIES}
|
||||
${GFLAGS_LIBRARIES}
|
||||
${GLOG_LIBRARIES}
|
||||
- ${SUITESPARSE_LIBRARIES}
|
||||
${OPENIMAGEIO_LIBRARIES}
|
||||
+ ${SUITESPARSE_LIBRARIES}
|
||||
+ ${_THEIA_CEREAL_LIBRARIES}
|
||||
+ ${_THEIA_FLANN_LIBRARIES}
|
||||
akaze
|
||||
- flann_cpp
|
||||
statx
|
||||
stlplus3
|
||||
- vlfeat
|
||||
- visual_sfm)
|
||||
+ visual_sfm
|
||||
+ vlfeat)
|
||||
|
||||
set(THEIA_LIBRARY_SOURCE
|
||||
${THEIA_SRC}
|
227
ports/theia/fix-find-suitesparse.patch
Normal file
227
ports/theia/fix-find-suitesparse.patch
Normal file
@ -0,0 +1,227 @@
|
||||
--- a/cmake/FindSuiteSparse.cmake Mon Feb 06 18:05:05 2017
|
||||
+++ b/cmake/FindSuiteSparse.cmake Fri Jul 07 02:13:31 2017
|
||||
@@ -152,6 +152,12 @@
|
||||
# the first.
|
||||
endmacro(SUITESPARSE_REPORT_NOT_FOUND)
|
||||
|
||||
+# Protect against any alternative find_package scripts for this library having
|
||||
+# been called previously (in a client project) which set SUITESPARSE_FOUND, but
|
||||
+# not the other variables we require / set here which could cause the search
|
||||
+# logic here to fail.
|
||||
+unset(SUITESPARSE_FOUND)
|
||||
+
|
||||
# Handle possible presence of lib prefix for libraries on MSVC, see
|
||||
# also SUITESPARSE_RESET_FIND_LIBRARY_PREFIX().
|
||||
if (MSVC)
|
||||
@@ -173,8 +179,6 @@
|
||||
/opt/local/include/ufsparse # Mac OS X
|
||||
/usr/local/homebrew/include # Mac OS X
|
||||
/usr/local/include
|
||||
- /usr/local/include/suitesparse
|
||||
- /usr/include/suitesparse # Ubuntu
|
||||
/usr/include)
|
||||
list(APPEND SUITESPARSE_CHECK_LIBRARY_DIRS
|
||||
${SUITESPARSE_LIBRARY_DIR_HINTS}
|
||||
@@ -182,9 +186,10 @@
|
||||
/opt/local/lib/ufsparse # Mac OS X
|
||||
/usr/local/homebrew/lib # Mac OS X
|
||||
/usr/local/lib
|
||||
- /usr/local/lib/suitesparse
|
||||
- /usr/lib/suitesparse # Ubuntu
|
||||
/usr/lib)
|
||||
+# Additional suffixes to try appending to each search path.
|
||||
+list(APPEND SUITESPARSE_CHECK_PATH_SUFFIXES
|
||||
+ suitesparse) # Windows/Ubuntu
|
||||
|
||||
# Given the number of components of SuiteSparse, and to ensure that the
|
||||
# automatic failure message generated by FindPackageHandleStandardArgs()
|
||||
@@ -212,7 +217,8 @@
|
||||
set(AMD_FOUND TRUE)
|
||||
list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS AMD_FOUND)
|
||||
find_library(AMD_LIBRARY NAMES amd
|
||||
- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${AMD_LIBRARY})
|
||||
message(STATUS "Found AMD library: ${AMD_LIBRARY}")
|
||||
else (EXISTS ${AMD_LIBRARY})
|
||||
@@ -223,7 +229,8 @@
|
||||
mark_as_advanced(AMD_LIBRARY)
|
||||
|
||||
find_path(AMD_INCLUDE_DIR NAMES amd.h
|
||||
- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${AMD_INCLUDE_DIR})
|
||||
message(STATUS "Found AMD header in: ${AMD_INCLUDE_DIR}")
|
||||
else (EXISTS ${AMD_INCLUDE_DIR})
|
||||
@@ -237,7 +244,8 @@
|
||||
set(CAMD_FOUND TRUE)
|
||||
list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS CAMD_FOUND)
|
||||
find_library(CAMD_LIBRARY NAMES camd
|
||||
- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${CAMD_LIBRARY})
|
||||
message(STATUS "Found CAMD library: ${CAMD_LIBRARY}")
|
||||
else (EXISTS ${CAMD_LIBRARY})
|
||||
@@ -248,7 +256,8 @@
|
||||
mark_as_advanced(CAMD_LIBRARY)
|
||||
|
||||
find_path(CAMD_INCLUDE_DIR NAMES camd.h
|
||||
- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${CAMD_INCLUDE_DIR})
|
||||
message(STATUS "Found CAMD header in: ${CAMD_INCLUDE_DIR}")
|
||||
else (EXISTS ${CAMD_INCLUDE_DIR})
|
||||
@@ -262,7 +271,8 @@
|
||||
set(COLAMD_FOUND TRUE)
|
||||
list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS COLAMD_FOUND)
|
||||
find_library(COLAMD_LIBRARY NAMES colamd
|
||||
- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${COLAMD_LIBRARY})
|
||||
message(STATUS "Found COLAMD library: ${COLAMD_LIBRARY}")
|
||||
else (EXISTS ${COLAMD_LIBRARY})
|
||||
@@ -273,7 +283,8 @@
|
||||
mark_as_advanced(COLAMD_LIBRARY)
|
||||
|
||||
find_path(COLAMD_INCLUDE_DIR NAMES colamd.h
|
||||
- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${COLAMD_INCLUDE_DIR})
|
||||
message(STATUS "Found COLAMD header in: ${COLAMD_INCLUDE_DIR}")
|
||||
else (EXISTS ${COLAMD_INCLUDE_DIR})
|
||||
@@ -287,7 +298,8 @@
|
||||
set(CCOLAMD_FOUND TRUE)
|
||||
list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS CCOLAMD_FOUND)
|
||||
find_library(CCOLAMD_LIBRARY NAMES ccolamd
|
||||
- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${CCOLAMD_LIBRARY})
|
||||
message(STATUS "Found CCOLAMD library: ${CCOLAMD_LIBRARY}")
|
||||
else (EXISTS ${CCOLAMD_LIBRARY})
|
||||
@@ -298,7 +310,8 @@
|
||||
mark_as_advanced(CCOLAMD_LIBRARY)
|
||||
|
||||
find_path(CCOLAMD_INCLUDE_DIR NAMES ccolamd.h
|
||||
- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${CCOLAMD_INCLUDE_DIR})
|
||||
message(STATUS "Found CCOLAMD header in: ${CCOLAMD_INCLUDE_DIR}")
|
||||
else (EXISTS ${CCOLAMD_INCLUDE_DIR})
|
||||
@@ -312,7 +325,8 @@
|
||||
set(CHOLMOD_FOUND TRUE)
|
||||
list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS CHOLMOD_FOUND)
|
||||
find_library(CHOLMOD_LIBRARY NAMES cholmod
|
||||
- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${CHOLMOD_LIBRARY})
|
||||
message(STATUS "Found CHOLMOD library: ${CHOLMOD_LIBRARY}")
|
||||
else (EXISTS ${CHOLMOD_LIBRARY})
|
||||
@@ -323,7 +337,8 @@
|
||||
mark_as_advanced(CHOLMOD_LIBRARY)
|
||||
|
||||
find_path(CHOLMOD_INCLUDE_DIR NAMES cholmod.h
|
||||
- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${CHOLMOD_INCLUDE_DIR})
|
||||
message(STATUS "Found CHOLMOD header in: ${CHOLMOD_INCLUDE_DIR}")
|
||||
else (EXISTS ${CHOLMOD_INCLUDE_DIR})
|
||||
@@ -337,7 +352,8 @@
|
||||
set(SUITESPARSEQR_FOUND TRUE)
|
||||
list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS SUITESPARSEQR_FOUND)
|
||||
find_library(SUITESPARSEQR_LIBRARY NAMES spqr
|
||||
- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${SUITESPARSEQR_LIBRARY})
|
||||
message(STATUS "Found SuiteSparseQR library: ${SUITESPARSEQR_LIBRARY}")
|
||||
else (EXISTS ${SUITESPARSEQR_LIBRARY})
|
||||
@@ -348,7 +364,8 @@
|
||||
mark_as_advanced(SUITESPARSEQR_LIBRARY)
|
||||
|
||||
find_path(SUITESPARSEQR_INCLUDE_DIR NAMES SuiteSparseQR.hpp
|
||||
- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${SUITESPARSEQR_INCLUDE_DIR})
|
||||
message(STATUS "Found SuiteSparseQR header in: ${SUITESPARSEQR_INCLUDE_DIR}")
|
||||
else (EXISTS ${SUITESPARSEQR_INCLUDE_DIR})
|
||||
@@ -364,7 +381,8 @@
|
||||
# support for it, this will do no harm if it wasn't.
|
||||
set(TBB_FOUND TRUE)
|
||||
find_library(TBB_LIBRARIES NAMES tbb
|
||||
- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${TBB_LIBRARIES})
|
||||
message(STATUS "Found Intel Thread Building Blocks (TBB) library: "
|
||||
"${TBB_LIBRARIES}, assuming SuiteSparseQR was compiled with TBB.")
|
||||
@@ -377,7 +395,8 @@
|
||||
|
||||
if (TBB_FOUND)
|
||||
find_library(TBB_MALLOC_LIB NAMES tbbmalloc
|
||||
- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${TBB_MALLOC_LIB})
|
||||
message(STATUS "Found Intel Thread Building Blocks (TBB) Malloc library: "
|
||||
"${TBB_MALLOC_LIB}")
|
||||
@@ -407,7 +426,8 @@
|
||||
# If SuiteSparse version is >= 4 then SuiteSparse_config is required.
|
||||
# For SuiteSparse 3, UFconfig.h is required.
|
||||
find_library(SUITESPARSE_CONFIG_LIBRARY NAMES suitesparseconfig
|
||||
- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${SUITESPARSE_CONFIG_LIBRARY})
|
||||
message(STATUS "Found SuiteSparse_config library: "
|
||||
"${SUITESPARSE_CONFIG_LIBRARY}")
|
||||
@@ -415,7 +435,8 @@
|
||||
mark_as_advanced(SUITESPARSE_CONFIG_LIBRARY)
|
||||
|
||||
find_path(SUITESPARSE_CONFIG_INCLUDE_DIR NAMES SuiteSparse_config.h
|
||||
- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${SUITESPARSE_CONFIG_INCLUDE_DIR})
|
||||
message(STATUS "Found SuiteSparse_config header in: "
|
||||
"${SUITESPARSE_CONFIG_INCLUDE_DIR}")
|
||||
@@ -433,7 +454,8 @@
|
||||
# does not have librt).
|
||||
if (CMAKE_SYSTEM_NAME MATCHES "Linux" OR UNIX AND NOT APPLE)
|
||||
find_library(LIBRT_LIBRARY NAMES rt
|
||||
- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (LIBRT_LIBRARY)
|
||||
message(STATUS "Adding librt: ${LIBRT_LIBRARY} to "
|
||||
"SuiteSparse_config libraries (required on Linux & Unix [not OSX] if "
|
||||
@@ -452,7 +474,8 @@
|
||||
# UFconfig header which should be present in < v4 installs.
|
||||
set(SUITESPARSE_CONFIG_FOUND FALSE)
|
||||
find_path(UFCONFIG_INCLUDE_DIR NAMES UFconfig.h
|
||||
- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${UFCONFIG_INCLUDE_DIR})
|
||||
message(STATUS "Found UFconfig header in: ${UFCONFIG_INCLUDE_DIR}")
|
||||
set(UFCONFIG_FOUND TRUE)
|
||||
@@ -543,7 +566,8 @@
|
||||
|
||||
# METIS (Optional dependency).
|
||||
find_library(METIS_LIBRARY NAMES metis
|
||||
- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
+ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
|
||||
+ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
|
||||
if (EXISTS ${METIS_LIBRARY})
|
||||
message(STATUS "Found METIS library: ${METIS_LIBRARY}.")
|
||||
set(METIS_FOUND TRUE)
|
12
ports/theia/fix-glog-error.patch
Normal file
12
ports/theia/fix-glog-error.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 9c1b150..6518e6a 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -146,6 +146,7 @@ else (GLOG_FOUND)
|
||||
message(FATAL_ERROR "Can't find Google Logging. Please set GLOG_INCLUDE_DIR & "
|
||||
"GLOG_LIBRARY")
|
||||
endif (GLOG_FOUND)
|
||||
+add_definitions(-DGLOG_NO_ABBREVIATED_SEVERITIES)
|
||||
|
||||
# Ceres
|
||||
message("-- Check for Ceres")
|
49
ports/theia/fix-vlfeat-static.patch
Normal file
49
ports/theia/fix-vlfeat-static.patch
Normal file
@ -0,0 +1,49 @@
|
||||
diff --git a/libraries/vlfeat/CMakeLists.txt b/libraries/vlfeat/CMakeLists.txt
|
||||
index d248bcf..24469c9 100644
|
||||
--- a/libraries/vlfeat/CMakeLists.txt
|
||||
+++ b/libraries/vlfeat/CMakeLists.txt
|
||||
@@ -16,11 +16,11 @@ set(vl_sources
|
||||
set_source_files_properties(${vl_sources} PROPERTIES LANGUAGE C)
|
||||
|
||||
if (MSVC)
|
||||
- add_definitions(-DVL_BUILD_DLL)
|
||||
+ #add_definitions(-DVL_BUILD_DLL)
|
||||
add_definitions(-DVL_DISABLE_SSE2)
|
||||
endif (MSVC)
|
||||
|
||||
-add_library(vlfeat SHARED ${vl_sources})
|
||||
+add_library(vlfeat ${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 4fdb86c..01c1134 100644
|
||||
--- a/libraries/vlfeat/vl/host.h
|
||||
+++ b/libraries/vlfeat/vl/host.h
|
||||
@@ -316,18 +316,24 @@ defined(__DOXYGEN__)
|
||||
# define snprintf _snprintf
|
||||
# define isnan _isnan
|
||||
#endif
|
||||
-# 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
|
||||
|
58
ports/theia/portfile.cmake
Normal file
58
ports/theia/portfile.cmake
Normal file
@ -0,0 +1,58 @@
|
||||
if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
|
||||
message(STATUS "Warning: Dynamic building not supported yet. Building static.")
|
||||
set(VCPKG_LIBRARY_LINKAGE static)
|
||||
endif()
|
||||
|
||||
include(vcpkg_common_functions)
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO sweeneychris/TheiaSfM
|
||||
REF d15154a6c30ea48e7d135be126e2936802e476ad
|
||||
SHA512 e3cb29b1806b6d2ed161c28432ad8788f756e03db55f883bfa2c4b389b506aa46909f0de57460e93e38926d8103382c54f51685bb9035688e4c7378f913c2de0
|
||||
HEAD_REF master
|
||||
)
|
||||
|
||||
vcpkg_apply_patches(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PATCHES
|
||||
${CMAKE_CURRENT_LIST_DIR}/fix-cmakelists.patch
|
||||
${CMAKE_CURRENT_LIST_DIR}/fix-vlfeat-static.patch
|
||||
${CMAKE_CURRENT_LIST_DIR}/fix-glog-error.patch
|
||||
${CMAKE_CURRENT_LIST_DIR}/fix-find-suitesparse.patch
|
||||
)
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
OPTIONS
|
||||
-DBUILD_TESTING=OFF
|
||||
-DTHEIA_USE_EXTERNAL_CEREAL=ON
|
||||
-DTHEIA_USE_EXTERNAL_FLANN=ON
|
||||
)
|
||||
|
||||
vcpkg_install_cmake()
|
||||
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH "CMake")
|
||||
|
||||
# Changes target search path
|
||||
file(READ ${CURRENT_PACKAGES_DIR}/share/theia/TheiaConfig.cmake THEIA_TARGETS)
|
||||
string(REPLACE "get_filename_component(CURRENT_ROOT_INSTALL_DIR\n \${THEIA_CURRENT_CONFIG_INSTALL_DIR}/../ ABSOLUTE)"
|
||||
"get_filename_component(CURRENT_ROOT_INSTALL_DIR\n \${THEIA_CURRENT_CONFIG_INSTALL_DIR}/../../ ABSOLUTE)" THEIA_TARGETS "${THEIA_TARGETS}")
|
||||
file(WRITE ${CURRENT_PACKAGES_DIR}/share/theia/TheiaConfig.cmake "${THEIA_TARGETS}")
|
||||
|
||||
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}/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)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/optimo)
|
||||
|
||||
# Handle copyright
|
||||
file(COPY ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/theia)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/share/theia/license.txt ${CURRENT_PACKAGES_DIR}/share/theia/copyright)
|
||||
file(COPY ${SOURCE_PATH}/data/camera_sensor_database_license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/theia)
|
Loading…
x
Reference in New Issue
Block a user