diff options
Diffstat (limited to 'ports/openmvs/fix-build.patch')
| -rw-r--r-- | ports/openmvs/fix-build.patch | 408 |
1 files changed, 408 insertions, 0 deletions
diff --git a/ports/openmvs/fix-build.patch b/ports/openmvs/fix-build.patch new file mode 100644 index 000000000..0cd759503 --- /dev/null +++ b/ports/openmvs/fix-build.patch @@ -0,0 +1,408 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7966ed5..4e0f673 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -63,7 +63,7 @@ INCLUDE_DIRECTORIES("${OpenMVS_SOURCE_DIR}") + SET(OpenMVS_EXTRA_LIBS "") + if(OpenMVS_USE_OPENMP) + SET(OpenMP_LIBS "") +- FIND_PACKAGE(OpenMP) ++ FIND_PACKAGE(OpenMP REQUIRED) + if(OPENMP_FOUND) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + ADD_DEFINITIONS(-D_USE_OPENMP) +@@ -83,7 +83,7 @@ if(OpenMVS_USE_OPENGL) + if(POLICY CMP0072) + cmake_policy(SET CMP0072 NEW) + endif() +- FIND_PACKAGE(OpenGL) ++ FIND_PACKAGE(OpenGL REQUIRED) + if(OPENGL_FOUND) + INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) + ADD_DEFINITIONS(${OpenGL_DEFINITIONS} -D_USE_OPENGL) +@@ -94,7 +94,7 @@ if(OpenMVS_USE_OPENGL) + endif() + + if(OpenMVS_USE_CUDA) +- FIND_PACKAGE(CUDA) ++ FIND_PACKAGE(CUDA REQUIRED) + if(CUDA_FOUND) + INCLUDE_DIRECTORIES(${CUDA_INCLUDE_DIRS}) + ADD_DEFINITIONS(-D_USE_CUDA) +@@ -108,7 +108,7 @@ else() + endif() + + if(OpenMVS_USE_BREAKPAD) +- FIND_PACKAGE(BREAKPAD) ++ FIND_PACKAGE(BREAKPAD REQUIRED) + if(BREAKPAD_FOUND) + INCLUDE_DIRECTORIES(${BREAKPAD_INCLUDE_DIRS}) + ADD_DEFINITIONS(${BREAKPAD_DEFINITIONS} -D_USE_BREAKPAD) +@@ -119,7 +119,7 @@ if(OpenMVS_USE_BREAKPAD) + endif() + endif() + +-FIND_PACKAGE(Boost ${SYSTEM_PACKAGE_REQUIRED} COMPONENTS iostreams program_options system serialization) ++FIND_PACKAGE(Boost COMPONENTS iostreams program_options system serialization REQUIRED) + if(Boost_FOUND) + INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) + ADD_DEFINITIONS(${Boost_DEFINITIONS} -D_USE_BOOST) +@@ -127,14 +127,14 @@ if(Boost_FOUND) + SET(_USE_BOOST TRUE) + endif() + +-FIND_PACKAGE(Eigen ${SYSTEM_PACKAGE_REQUIRED}) +-if(EIGEN_FOUND) +- INCLUDE_DIRECTORIES(${EIGEN_INCLUDE_DIRS}) +- ADD_DEFINITIONS(${EIGEN_DEFINITIONS} -D_USE_EIGEN) ++FIND_PACKAGE(Eigen3 REQUIRED) ++if(EIGEN3_FOUND) ++ INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIRS}) ++ ADD_DEFINITIONS(${EIGEN3_DEFINITIONS} -D_USE_EIGEN) + SET(_USE_EIGEN TRUE) + endif() + +-FIND_PACKAGE(OpenCV ${SYSTEM_PACKAGE_REQUIRED}) ++FIND_PACKAGE(OpenCV REQUIRED) + if(OpenCV_FOUND) + INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS}) + ADD_DEFINITIONS(${OpenCV_DEFINITIONS}) +@@ -170,7 +170,9 @@ ADD_DEFINITIONS(${OpenMVS_DEFINITIONS}) + + # Add modules + ADD_SUBDIRECTORY(libs) ++if(OpenMVS_BUILD_TOOLS) + ADD_SUBDIRECTORY(apps) ++endif() + ADD_SUBDIRECTORY(docs) + + if(OpenMVS_USE_CERES) +@@ -188,7 +190,7 @@ export(TARGETS Common IO Math MVS FILE "${PROJECT_BINARY_DIR}/OpenMVSTargets.cma + # Export the package for use from the build-tree + # (this registers the build-tree with a global CMake-registry) + export(PACKAGE OpenMVS) +- ++ + # Create the OpenMVSConfig.cmake and OpenMVSConfigVersion files + file(RELATIVE_PATH REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" "${INSTALL_INCLUDE_DIR}") + # ... for the build tree +@@ -199,7 +201,7 @@ set(CONF_INCLUDE_DIRS "${INSTALL_CMAKE_DIR}/${REL_INCLUDE_DIR}") + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/build/OpenMVSConfig.cmake.in" "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/OpenMVSConfig.cmake" @ONLY) + # ... for both + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/build/OpenMVSConfigVersion.cmake.in" "${PROJECT_BINARY_DIR}/OpenMVSConfigVersion.cmake" @ONLY) +- ++ + # Install the OpenMVSConfig.cmake and OpenMVSConfigVersion.cmake + install(FILES + "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/OpenMVSConfig.cmake" +diff --git a/MvgMvsPipeline.py b/MvgMvsPipeline.py.in +similarity index 97% +rename from MvgMvsPipeline.py +rename to MvgMvsPipeline.py.in +index f4914bf..23d03e6 100644 +--- a/MvgMvsPipeline.py ++++ b/MvgMvsPipeline.py.in +@@ -91,12 +91,12 @@ def find(afile): + return None + + # Try to find openMVG and openMVS binaries in PATH +-OPENMVG_BIN = whereis("openMVG_main_SfMInit_ImageListing") +-OPENMVS_BIN = whereis("ReconstructMesh") ++OPENMVG_BIN = "@OPENMVG_TOOLS_PATH@" ++OPENMVS_BIN = "@OPENMVS_TOOLS_PATH@" + + # Try to find openMVG camera sensor database +-CAMERA_SENSOR_DB_FILE = "sensor_width_camera_database.txt" +-CAMERA_SENSOR_DB_DIRECTORY = find(CAMERA_SENSOR_DB_FILE) ++CAMERA_SENSOR_DB_FILE = "@SENSOR_WIDTH_CAMERA_DATABASE_TXT_PATH@" ++CAMERA_SENSOR_DB_DIRECTORY = "@OPENMVG_TOOLS_PATH@" + + # Ask user for openMVG and openMVS directories if not found + if not OPENMVG_BIN: +@@ -175,10 +175,10 @@ class StepsStore: + ["-i", "%input_dir%", "-o", "%matches_dir%", "-d", "%camera_file_params%"]], + ["Compute features", # 1 + os.path.join(OPENMVG_BIN, "openMVG_main_ComputeFeatures"), +- ["-i", "%matches_dir%/sfm_data.json", "-o", "%matches_dir%", "-m", "SIFT", "-n", "4"]], ++ ["-i", "%matches_dir%/sfm_data.json", "-o", "%matches_dir%", "-m", "SIFT"]], + ["Compute matches", # 2 + os.path.join(OPENMVG_BIN, "openMVG_main_ComputeMatches"), +- ["-i", "%matches_dir%/sfm_data.json", "-o", "%matches_dir%", "-n", "HNSWL2", "-r", ".8"]], ++ ["-i", "%matches_dir%/sfm_data.json", "-o", "%matches_dir%", "-n", "AUTO", "-r", ".8"]], + ["Incremental reconstruction", # 3 + os.path.join(OPENMVG_BIN, "openMVG_main_IncrementalSfM"), + ["-i", "%matches_dir%/sfm_data.json", "-m", "%matches_dir%", "-o", "%reconstruction_dir%"]], +diff --git a/apps/Viewer/CMakeLists.txt b/apps/Viewer/CMakeLists.txt +index c519040..934cd50 100644 +--- a/apps/Viewer/CMakeLists.txt ++++ b/apps/Viewer/CMakeLists.txt +@@ -16,18 +16,6 @@ else() + MESSAGE("-- Can't find GLEW. Continuing without it.") + RETURN() + endif() +-if(CMAKE_COMPILER_IS_GNUCXX) +- FIND_PACKAGE(PkgConfig QUIET) +- pkg_search_module(GLFW QUIET glfw3) +- if(GLFW_FOUND) +- INCLUDE_DIRECTORIES(${GLFW_INCLUDE_DIRS}) +- ADD_DEFINITIONS(${GLFW_DEFINITIONS}) +- MESSAGE(STATUS "GLFW3 ${GLFW_VERSION} found (include: ${GLFW_INCLUDE_DIRS})") +- else() +- MESSAGE("-- Can't find GLFW3. Continuing without it.") +- RETURN() +- endif() +-else() + FIND_PACKAGE(glfw3 QUIET) + if(glfw3_FOUND) + INCLUDE_DIRECTORIES(${glfw3_INCLUDE_DIRS}) +@@ -37,7 +25,6 @@ else() + MESSAGE("-- Can't find GLFW3. Continuing without it.") + RETURN() + endif() +-endif() + + # List sources files + FILE(GLOB PCH_C "Common.cpp") +diff --git a/build/OpenMVSConfig.cmake.in b/build/OpenMVSConfig.cmake.in +index 96b8fe2..454e846 100644 +--- a/build/OpenMVSConfig.cmake.in ++++ b/build/OpenMVSConfig.cmake.in +@@ -3,16 +3,70 @@ + # OpenMVS_INCLUDE_DIRS - include directories for OpenMVS + # OpenMVS_LIBRARIES - libraries to link against + # OpenMVS_BINARIES - the binaries +- ++ + # Compute paths + get_filename_component(OpenMVS_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) + set(OpenMVS_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@") +- ++list(APPEND CMAKE_MODULE_PATH "${OpenMVS_CMAKE_DIR}") ++ ++if (MSVC) ++ set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /GL") ++ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL") ++ set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG") ++ set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /LTCG") ++endif() ++ ++set(CMAKE_CXX_STANDARD 14) ++set(CMAKE_CXX_STANDARD_REQUIRED ON) ++ ++include(CMakeFindDependencyMacro) ++ ++if(@OpenMVS_USE_OPENMP@) ++ find_dependency(OpenMP) ++ add_definitions(-D_USE_OPENMP) ++endif() ++ ++if(@OpenMVS_USE_OPENGL@) ++ find_dependency(OpenGL) ++ add_definitions(${OpenGL_DEFINITIONS} -D_USE_OPENGL) ++endif() ++ ++if(@OpenMVS_USE_CUDA@) ++ find_dependency(CUDA) ++ add_definitions(-D_USE_CUDA) ++ include_directories(${CUDA_INCLUDE_DIRS}) ++endif() ++ ++if(@OpenMVS_USE_BREAKPAD@) ++ find_dependency(BREAKPAD) ++ add_definitions(${BREAKPAD_DEFINITIONS} -D_USE_BREAKPAD) ++endif() ++ ++find_dependency(Boost) ++add_definitions(${Boost_DEFINITIONS} -D_USE_BOOST) ++include_directories(${Boost_INCLUDE_DIRS}) ++find_dependency(Eigen3) ++add_definitions(${EIGEN3_DEFINITIONS} -D_USE_EIGEN) ++find_dependency(OpenCV) ++add_definitions(${OpenCV_DEFINITIONS}) ++find_dependency(CGAL) ++add_definitions(${CGAL_DEFINITIONS}) ++ ++find_dependency(VCG REQUIRED) ++add_definitions(${VCG_DEFINITIONS}) ++ ++if(@OpenMVS_USE_CERES@) ++ find_dependency(Ceres) ++ add_definitions(${CERES_DEFINITIONS}) ++endif() ++ ++add_definitions(@OpenMVS_DEFINITIONS@) ++ + # Our library dependencies (contains definitions for IMPORTED targets) + if(NOT TARGET MVS AND NOT OpenMVS_BINARY_DIR) + include("${OpenMVS_CMAKE_DIR}/OpenMVSTargets.cmake") + endif() +- ++ + # These are IMPORTED targets created by OpenMVSTargets.cmake + set(OpenMVS_LIBRARIES MVS) + set(OpenMVS_BINARIES InterfaceVisualSFM DensifyPointCloud ReconstructMesh RefineMesh TextureMesh) +diff --git a/build/Utils.cmake b/build/Utils.cmake +index f41c9d8..31cd292 100644 +--- a/build/Utils.cmake ++++ b/build/Utils.cmake +@@ -160,7 +160,7 @@ macro(GetOperatingSystemArchitectureBitness) + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES i686.*|i386.*|x86.*) + set(X86 1) + endif() +- ++ + if(NOT ${MY_VAR_PREFIX}_PACKAGE_REQUIRED) + set(${MY_VAR_PREFIX}_PACKAGE_REQUIRED "REQUIRED") + endif() +@@ -173,30 +173,6 @@ macro(ComposePackageLibSuffix) + set(PACKAGE_LIB_SUFFIX "") + set(PACKAGE_LIB_SUFFIX_DBG "") + set(PACKAGE_LIB_SUFFIX_REL "") +- if(MSVC) +- if("${MSVC_VERSION}" STREQUAL "1921") +- set(PACKAGE_LIB_SUFFIX "/vc16") +- elseif("${MSVC_VERSION}" STREQUAL "1916") +- set(PACKAGE_LIB_SUFFIX "/vc15") +- elseif("${MSVC_VERSION}" STREQUAL "1900") +- set(PACKAGE_LIB_SUFFIX "/vc14") +- elseif("${MSVC_VERSION}" STREQUAL "1800") +- set(PACKAGE_LIB_SUFFIX "/vc12") +- elseif("${MSVC_VERSION}" STREQUAL "1700") +- set(PACKAGE_LIB_SUFFIX "/vc11") +- elseif("${MSVC_VERSION}" STREQUAL "1600") +- set(PACKAGE_LIB_SUFFIX "/vc10") +- elseif("${MSVC_VERSION}" STREQUAL "1500") +- set(PACKAGE_LIB_SUFFIX "/vc9") +- endif() +- if("${SYSTEM_BITNESS}" STREQUAL "64") +- set(PACKAGE_LIB_SUFFIX "${PACKAGE_LIB_SUFFIX}/x64") +- else() +- set(PACKAGE_LIB_SUFFIX "${PACKAGE_LIB_SUFFIX}/x86") +- endif() +- set(PACKAGE_LIB_SUFFIX_DBG "${PACKAGE_LIB_SUFFIX}/Debug") +- set(PACKAGE_LIB_SUFFIX_REL "${PACKAGE_LIB_SUFFIX}/Release") +- endif() + endmacro() + + +@@ -511,7 +487,7 @@ macro(optimize_default_compiler_settings) + endif() + add_extra_compiler_option(-fdiagnostics-show-option) + add_extra_compiler_option(-ftemplate-backtrace-limit=0) +- ++ + # The -Wno-long-long is required in 64bit systems when including sytem headers. + if(X86_64) + add_extra_compiler_option(-Wno-long-long) +@@ -817,7 +793,7 @@ macro(ConfigCompilerAndLinker) + else() + set(cxx_rtti_support "${cxx_no_rtti_flags}") + endif() +- ++ + SET(cxx_default "${cxx_exception_support} ${cxx_rtti_support}" CACHE PATH "Common compile CXX flags") + SET(c_default "${CMAKE_C_FLAGS} ${cxx_base_flags}" CACHE PATH "Common compile C flags") + endmacro() +@@ -825,16 +801,12 @@ endmacro() + # Initialize variables needed for a library type project. + macro(ConfigLibrary) + # Offer the user the choice of overriding the installation directories +- set(INSTALL_LIB_DIR "lib/${PROJECT_NAME}" CACHE PATH "Installation directory for libraries") +- set(INSTALL_BIN_DIR "bin/${PROJECT_NAME}" CACHE PATH "Installation directory for executables") +- set(INSTALL_INCLUDE_DIR "include/${PROJECT_NAME}" CACHE PATH "Installation directory for header files") +- if(WIN32 AND NOT CYGWIN) +- set(DEF_INSTALL_CMAKE_DIR "CMake") +- else() +- set(DEF_INSTALL_CMAKE_DIR "lib/CMake/${PROJECT_NAME}") +- endif() ++ set(INSTALL_LIB_DIR "lib" CACHE PATH "Installation directory for libraries") ++ set(INSTALL_BIN_DIR "bin" CACHE PATH "Installation directory for executables") ++ set(INSTALL_INCLUDE_DIR "include/openmvs" CACHE PATH "Installation directory for header files") ++ set(DEF_INSTALL_CMAKE_DIR "share/openmvs") + set(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files") +- ++ + # Make relative paths absolute (needed later on) + foreach(p LIB BIN INCLUDE CMAKE) + set(var INSTALL_${p}_DIR) +diff --git a/libs/Common/CMakeLists.txt b/libs/Common/CMakeLists.txt +index 2e6c1a4..6e1fa95 100644 +--- a/libs/Common/CMakeLists.txt ++++ b/libs/Common/CMakeLists.txt +@@ -18,6 +18,7 @@ set_target_pch(Common Common.h) + + # Link its dependencies + TARGET_LINK_LIBRARIES(Common ${Boost_LIBRARIES} ${OpenCV_LIBS}) ++TARGET_INCLUDE_DIRECTORIES(Common PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>) + + # Install + SET_TARGET_PROPERTIES(Common PROPERTIES +diff --git a/libs/IO/CMakeLists.txt b/libs/IO/CMakeLists.txt +index a354376..4fd478c 100644 +--- a/libs/IO/CMakeLists.txt ++++ b/libs/IO/CMakeLists.txt +@@ -43,7 +43,8 @@ cxx_library_with_type_no_pch(IO "Libs" "STATIC" "${cxx_default}" + set_target_pch(IO Common.h) + + # Link its dependencies +-TARGET_LINK_LIBRARIES(IO Common ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARIES} ${EXIV2_LIBS}) ++TARGET_LINK_LIBRARIES(IO Common ${TIFF_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${EXIV2_LIBS}) ++TARGET_INCLUDE_DIRECTORIES(IO PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>) + + # Install + SET_TARGET_PROPERTIES(IO PROPERTIES +diff --git a/libs/MVS/CMakeLists.txt b/libs/MVS/CMakeLists.txt +index 14be620..867cfd5 100644 +--- a/libs/MVS/CMakeLists.txt ++++ b/libs/MVS/CMakeLists.txt +@@ -1,12 +1,12 @@ + # Find required packages +-FIND_PACKAGE(CGAL ${SYSTEM_PACKAGE_REQUIRED}) ++FIND_PACKAGE(CGAL REQUIRED) + if(CGAL_FOUND) + include_directories(${CGAL_INCLUDE_DIRS}) + add_definitions(${CGAL_DEFINITIONS}) + link_directories(${CGAL_LIBRARY_DIRS}) + endif() + +-FIND_PACKAGE(VCG ${SYSTEM_PACKAGE_REQUIRED}) ++FIND_PACKAGE(VCG REQUIRED) + if(VCG_FOUND) + include_directories(${VCG_INCLUDE_DIRS}) + add_definitions(${VCG_DEFINITIONS}) +@@ -14,12 +14,10 @@ endif() + + set(CERES_LIBS "") + if(OpenMVS_USE_CERES) +- FIND_PACKAGE(CERES) ++ FIND_PACKAGE(Ceres REQUIRED) + if(CERES_FOUND) + include_directories(${CERES_INCLUDE_DIRS}) + add_definitions(${CERES_DEFINITIONS}) +- else() +- set(OpenMVS_USE_CERES OFF) + endif() + endif() + +@@ -42,7 +40,8 @@ cxx_library_with_type_no_pch(MVS "Libs" "" "${cxx_default}" + set_target_pch(MVS Common.h) + + # Link its dependencies +-TARGET_LINK_LIBRARIES(MVS PRIVATE Common Math IO ${CERES_LIBS} ${CGAL_LIBS} ${CUDA_CUDA_LIBRARY}) ++TARGET_LINK_LIBRARIES(MVS PRIVATE Common Math IO ${CERES_LIBS} CGAL::CGAL ${CUDA_CUDA_LIBRARY}) ++TARGET_INCLUDE_DIRECTORIES(MVS PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>) + + # Install + SET_TARGET_PROPERTIES(MVS PROPERTIES +diff --git a/libs/Math/CMakeLists.txt b/libs/Math/CMakeLists.txt +index d592bd0..f1fe4c6 100644 +--- a/libs/Math/CMakeLists.txt ++++ b/libs/Math/CMakeLists.txt +@@ -35,6 +35,7 @@ set_target_pch(Math Common.h) + + # Link its dependencies + TARGET_LINK_LIBRARIES(Math Common) ++TARGET_INCLUDE_DIRECTORIES(Math PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>) + + # Install + INSTALL(FILES ${LIBRARY_FILES_H} DESTINATION "${INSTALL_INCLUDE_DIR}/Math" COMPONENT dev) |
