diff options
| author | Han Hu <huhan@whu.edu.cn> | 2019-01-16 14:05:40 +0800 |
|---|---|---|
| committer | Han Hu <huhan@whu.edu.cn> | 2019-01-16 14:05:40 +0800 |
| commit | fca5cab9f094604b71c23ffd13fa7108c142d03b (patch) | |
| tree | 0355377bf28663bf9fb0ce62aa480e99249432a1 /ports/openmvg | |
| parent | 269450283bbc246fa0b9fb52de3406caf36833b0 (diff) | |
| download | vcpkg-fca5cab9f094604b71c23ffd13fa7108c142d03b.tar.gz vcpkg-fca5cab9f094604b71c23ffd13fa7108c142d03b.zip | |
Port openmvg, included new ports of coin-or projects, lemon
Diffstat (limited to 'ports/openmvg')
| -rw-r--r-- | ports/openmvg/CONTROL | 4 | ||||
| -rw-r--r-- | ports/openmvg/fixcmake.patch | 119 | ||||
| -rw-r--r-- | ports/openmvg/portfile.cmake | 101 |
3 files changed, 224 insertions, 0 deletions
diff --git a/ports/openmvg/CONTROL b/ports/openmvg/CONTROL new file mode 100644 index 000000000..261fd901f --- /dev/null +++ b/ports/openmvg/CONTROL @@ -0,0 +1,4 @@ +Source: openmvg
+Version: 1.4-0
+Description: open Multiple View Geometry library. Basis for 3D computer vision and Structure from Motion.
+Build-Depends: coinutils, clp, osi, lemon, flann, eigen3, ceres, cereal, libjpeg-turbo, tiff, libpng, zlib
diff --git a/ports/openmvg/fixcmake.patch b/ports/openmvg/fixcmake.patch new file mode 100644 index 000000000..2ee976dd5 --- /dev/null +++ b/ports/openmvg/fixcmake.patch @@ -0,0 +1,119 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 654bebd..6d1c671 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -39,6 +39,10 @@ option(OpenMVG_USE_OPENCV "Build or not opencv+openMVG samples programs" OFF)
+ # ==============================================================================
+ option(OpenMVG_USE_OCVSIFT "Add or not OpenCV SIFT in available features" OFF)
+
++if(OpenMVG_BUILD_SHARED AND MSVC)
++ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
++endif(OpenMVG_BUILD_SHARED AND MSVC)
++
+ # ==============================================================================
+ # OpenMVG version
+ # ==============================================================================
+@@ -88,11 +92,11 @@ endif()
+ # ==============================================================================
+ # Check that submodule have been initialized and updated
+ # ==============================================================================
+-if (NOT EXISTS ${PROJECT_SOURCE_DIR}/dependencies/cereal/include)
+- message(FATAL_ERROR
+- "\n submodule(s) are missing, please update your repository:\n"
+- " > git submodule update -i\n")
+-endif()
++# if (NOT EXISTS ${PROJECT_SOURCE_DIR}/dependencies/cereal/include)
++# message(FATAL_ERROR
++# "\n submodule(s) are missing, please update your repository:\n"
++# " > git submodule update -i\n")
++# endif()
+
+ # ==============================================================================
+ # Additional cmake find modules
+@@ -184,12 +188,12 @@ if (OpenMVG_BUILD_OPENGL_EXAMPLES)
+ endif (OpenMVG_BUILD_OPENGL_EXAMPLES)
+
+ # Dependencies install rules
+-install(
+- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/
+- DESTINATION include/openMVG_dependencies
+- COMPONENT headers
+- FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h"
+-)
++# install(
++# DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/
++# DESTINATION include/openMVG_dependencies
++# COMPONENT headers
++# FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h"
++# )
+
+ # ==============================================================================
+ # --END-- SUBMODULE CONFIGURATION
+diff --git a/src/cmakeFindModules/FindClp.cmake b/src/cmakeFindModules/FindClp.cmake
+index c997b87..74c3aae 100644
+--- a/src/cmakeFindModules/FindClp.cmake
++++ b/src/cmakeFindModules/FindClp.cmake
+@@ -51,8 +51,8 @@ IF(EXISTS "${CLP_DIR}" AND NOT "${CLP_DIR}" STREQUAL "")
+ SET(CLP_INCLUDE_DIR ${CLP_DIR})
+
+ FIND_LIBRARY(CLP_LIBRARY NAMES Clp)
+- FIND_LIBRARY(CLPSOLVER_LIBRARY NAMES ClpSolver)
+- FIND_LIBRARY(OSICLP_LIBRARY NAMES OsiClp)
++ FIND_LIBRARY(CLPSOLVER_LIBRARY NAMES ClpSolver Clp)
++ FIND_LIBRARY(OSICLP_LIBRARY NAMES OsiClp Clp)
+
+ # locate Clp libraries
+ IF(DEFINED CLP_LIBRARY AND DEFINED CLPSOLVER_LIBRARY AND DEFINED OSICLP_LIBRARY)
+diff --git a/src/openMVG/matching/CMakeLists.txt b/src/openMVG/matching/CMakeLists.txt
+index 80b1fe6..cb396c7 100644
+--- a/src/openMVG/matching/CMakeLists.txt
++++ b/src/openMVG/matching/CMakeLists.txt
+@@ -38,7 +38,7 @@ target_link_libraries(openMVG_matching
+ openMVG_features
+ Threads::Threads
+ )
+-if (NOT DEFINED OpenMVG_USE_INTERNAL_FLANN)
++if (NOT OpenMVG_USE_INTERNAL_FLANN)
+ target_link_libraries(openMVG_matching
+ PUBLIC
+ ${FLANN_LIBRARIES}
+diff --git a/src/third_party/CMakeLists.txt b/src/third_party/CMakeLists.txt
+index 816a941..f0b7145 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_property(TARGET openMVG_lemon PROPERTY FOLDER OpenMVG/3rdParty/lemon)
+ set_property(TARGET check PROPERTY FOLDER OpenMVG/3rdParty/lemon)
+@@ -68,7 +68,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)
+@@ -76,7 +76,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()
+@@ -90,7 +90,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(EIGEN_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/openMVG/third_party/eigen)
+ add_subdirectory(eigen)
diff --git a/ports/openmvg/portfile.cmake b/ports/openmvg/portfile.cmake new file mode 100644 index 000000000..fd91a237d --- /dev/null +++ b/ports/openmvg/portfile.cmake @@ -0,0 +1,101 @@ +# Common Ambient Variables:
+# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT}
+# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
+# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT}
+# PORT = current port name (zlib, etc)
+# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc)
+# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic)
+# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic)
+# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg>
+# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm)
+#
+
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO openMVG/openMVG
+ REF v1.4
+ SHA512 949cf3680375c87b06db0f4713c846422c98d1979d49e9db65761f63f6f3212f0fcd8425f23c6112f04fbbb90b241638c2fd9329bb6b8b612c1d073aac55759a
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR} fixcmake.patch)
+
+
+# remove some deps to prevent conflict
+file(REMOVE_RECURSE ${SOURCE_PATH}/src/third_party/ceres-solver)
+file(REMOVE_RECURSE ${SOURCE_PATH}/src/third_party/cxsparse)
+file(REMOVE_RECURSE ${SOURCE_PATH}/src/third_party/eigen)
+file(REMOVE_RECURSE ${SOURCE_PATH}/src/third_party/flann)
+file(REMOVE_RECURSE ${SOURCE_PATH}/src/third_party/jpeg)
+file(REMOVE_RECURSE ${SOURCE_PATH}/src/third_party/lemon)
+file(REMOVE_RECURSE ${SOURCE_PATH}/src/third_party/png)
+file(REMOVE_RECURSE ${SOURCE_PATH}/src/third_party/tiff)
+file(REMOVE_RECURSE ${SOURCE_PATH}/src/third_party/zlib)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(OpenMVG_BUILD_SHARED ON)
+else()
+ set(OpenMVG_BUILD_SHARED OFF)
+endif()
+
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/src
+ # PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2
+ OPTIONS
+ -DOpenMVG_BUILD_SHARED=${OpenMVG_BUILD_SHARED}
+ -DOpenMVG_BUILD_DOC=OFF
+ -DOpenMVG_BUILD_EXAMPLES=OFF
+ -DOpenMVG_BUILD_SOFTWARES=OFF
+ -DOpenMVG_BUILD_GUI_SOFTWARES=OFF
+ # TODO, use packgeconfig.cmake file instead
+ -DEIGEN_INCLUDE_DIR_HINTS=${CURRENT_INSTALLED_DIR}/include/
+ -DCERES_DIR_HINTS=${CURRENT_INSTALLED_DIR}/ceres
+ -DFLANN_INCLUDE_DIR_HINTS=${CURRENT_INSTALLED_DIR}/flann
+ -DLEMON_INCLUDE_DIR_HINTS=${CURRENT_INSTALLED_DIR}/include/lemon
+ -DCOINUTILS_INCLUDE_DIR_HINTS=${CURRENT_INSTALLED_DIR}/include/coin
+ -DCLP_INCLUDE_DIR_HINTS=${CURRENT_INSTALLED_DIR}/include/coin
+ -DOSI_INCLUDE_DIR_HINTS=${CURRENT_INSTALLED_DIR}/include/coin
+ -DOpenMVG_USE_INTERNAL_CLP=OFF
+ -DOpenMVG_USE_INTERNAL_COINUTILS=OFF
+ -DOpenMVG_USE_INTERNAL_OSI=OFF
+ -DOpenMVG_USE_INTERNAL_EIGEN=OFF
+ -DOpenMVG_USE_INTERNAL_CEREAL=OFF
+ -DOpenMVG_USE_INTERNAL_CERES=OFF
+ -DOpenMVG_USE_INTERNAL_FLANN=OFF
+ -DTARGET_ARCHITECTURE=core # disable instruction like avx
+ # OPTIONS_RELEASE -DOPTIMIZE=1
+ OPTIONS_RELEASE
+ -DFLANN_LIBRARY=${CURRENT_INSTALLED_DIR}/lib/flann_cpp.lib
+ OPTIONS_DEBUG
+ -DFLANN_LIBRARY=${CURRENT_INSTALLED_DIR}/debug/lib/flann_cpp-gd.lib
+)
+
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH "share/openMVG/cmake")
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/openMVG/image/image_test)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/openMVG/exif/image_data)
+file(GLOB REMOVE_CMAKE ${CURRENT_PACKAGES_DIR}/lib/*.cmake)
+file(REMOVE_RECURSE ${REMOVE_CMAKE})
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+if(OpenMVG_BUILD_SHARED)
+ # release
+ file(GLOB DLL_FILES ${CURRENT_PACKAGES_DIR}/lib/*.dll)
+ file(COPY ${DLL_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE_RECURSE ${DLL_FILES})
+ # debug
+ file(GLOB DLL_FILES ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll)
+ file(COPY ${DLL_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE_RECURSE ${DLL_FILES})
+endif()
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openmvg RENAME copyright)
+
+# Post-build test for cmake libraries
+# vcpkg_test_cmake(PACKAGE_NAME openmvg)
|
