From cbf6fe29bd66f7e9c4474d7086b39c3012cce225 Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Tue, 4 Feb 2025 06:31:21 +0100 Subject: [PATCH] [opencv] add missing features to defaults and improve test matrix (#42371) --- ports/dv-processing/vcpkg.json | 9 +- ports/libcaer/vcpkg.json | 9 +- ports/libtorch/vcpkg.json | 4 +- ports/opencv/vcpkg.json | 26 +- ports/opencv2/0004-enable-pkgconf.patch | 13 + ...fix-config.patch => 0005-fix-config.patch} | 0 ...x-openexr.patch => 0007-fix-openexr.patch} | 0 ...clude.patch => 0008-missing-include.patch} | 0 ...ffix.patch => 0009-pkgconfig-suffix.patch} | 0 ports/opencv2/portfile.cmake | 17 +- ports/opencv2/vcpkg.json | 9 +- .../0003-force-package-requirements.patch | 12 +- ports/opencv3/0008-devendor-quirc.patch | 2 +- ports/opencv3/0009-fix-protobuf.patch | 2 +- .../opencv3/0010-fix-uwp-tiff-imgcodecs.patch | 2 +- ports/opencv3/0011-remove-python2.patch | 2 +- ports/opencv3/0013-contrib-fix-ceres.patch | 11 - ...patch => 0013-contrib-fix-tesseract.patch} | 0 ports/opencv3/0016-contrib-fix-freetype.patch | 4 +- ports/opencv3/0017-enable-gtk.patch | 11 + ports/opencv3/0017-missing-include.patch | 10 - ports/opencv3/0019-enable-pkgconf.patch | 10 + ports/opencv3/0019-fix-tbb.patch | 10 - ports/opencv3/portfile.cmake | 63 +- ports/opencv3/vcpkg.json | 26 +- ports/opencv4/0002-install-options.patch | 8 + ports/opencv4/portfile.cmake | 58 +- ports/opencv4/vcpkg.json | 21 +- ports/openimageio/vcpkg.json | 8 +- ports/rtabmap/0001-cmakelists-fixes.patch | 640 ++++++++++++++++++ .../{fix_link.patch => 0002-fix-link.patch} | 2 - ...tion.patch => 0003-multi-definition.patch} | 4 - ports/rtabmap/0004-fix-manfold-typo.patch | 11 + ports/rtabmap/0005-fix-opencv3-aruco.patch | 14 + ...patch => 0006-remove-apple-sys-path.patch} | 2 - ...{fix-find-g2o.patch => 0007-fix-g2o.patch} | 10 +- ports/rtabmap/ceres-manifold.patch | 114 ---- ports/rtabmap/gklib.patch | 13 - ports/rtabmap/link-keywords.patch | 12 - ports/rtabmap/portfile.cmake | 52 +- ports/rtabmap/rtabmap-res-tool.patch | 11 - ports/rtabmap/sqlite3.patch | 48 -- ports/rtabmap/vcpkg.json | 32 +- ports/selene/vcpkg.json | 9 +- scripts/test_ports/vcpkg-ci-opencv/vcpkg.json | 207 +++--- versions/baseline.json | 22 +- versions/d-/dv-processing.json | 5 + versions/l-/libcaer.json | 5 + versions/l-/libtorch.json | 5 + versions/o-/opencv.json | 5 + versions/o-/opencv2.json | 5 + versions/o-/opencv3.json | 5 + versions/o-/opencv4.json | 5 + versions/o-/openimageio.json | 5 + versions/r-/rtabmap.json | 5 + versions/s-/selene.json | 5 + 56 files changed, 1111 insertions(+), 489 deletions(-) create mode 100644 ports/opencv2/0004-enable-pkgconf.patch rename ports/opencv2/{0007-fix-config.patch => 0005-fix-config.patch} (100%) rename ports/opencv2/{0019-fix-openexr.patch => 0007-fix-openexr.patch} (100%) rename ports/opencv2/{0020-missing-include.patch => 0008-missing-include.patch} (100%) rename ports/opencv2/{0021-pkgconfig-suffix.patch => 0009-pkgconfig-suffix.patch} (100%) delete mode 100644 ports/opencv3/0013-contrib-fix-ceres.patch rename ports/opencv3/{0018-contrib-fix-tesseract.patch => 0013-contrib-fix-tesseract.patch} (100%) create mode 100644 ports/opencv3/0017-enable-gtk.patch delete mode 100644 ports/opencv3/0017-missing-include.patch create mode 100644 ports/opencv3/0019-enable-pkgconf.patch delete mode 100644 ports/opencv3/0019-fix-tbb.patch create mode 100644 ports/rtabmap/0001-cmakelists-fixes.patch rename ports/rtabmap/{fix_link.patch => 0002-fix-link.patch} (79%) rename ports/rtabmap/{multi-definition.patch => 0003-multi-definition.patch} (93%) create mode 100644 ports/rtabmap/0004-fix-manfold-typo.patch create mode 100644 ports/rtabmap/0005-fix-opencv3-aruco.patch rename ports/rtabmap/{apple.patch => 0006-remove-apple-sys-path.patch} (81%) rename ports/rtabmap/{fix-find-g2o.patch => 0007-fix-g2o.patch} (84%) delete mode 100644 ports/rtabmap/ceres-manifold.patch delete mode 100644 ports/rtabmap/gklib.patch delete mode 100644 ports/rtabmap/link-keywords.patch delete mode 100644 ports/rtabmap/rtabmap-res-tool.patch delete mode 100644 ports/rtabmap/sqlite3.patch diff --git a/ports/dv-processing/vcpkg.json b/ports/dv-processing/vcpkg.json index b1adc2af0a..7e09e8f058 100644 --- a/ports/dv-processing/vcpkg.json +++ b/ports/dv-processing/vcpkg.json @@ -1,7 +1,7 @@ { "name": "dv-processing", "version": "1.7.9", - "port-version": 2, + "port-version": 3, "description": "Generic algorithms for event cameras. (C++20 required.)", "homepage": "https://gitlab.com/inivation/dv/dv-processing", "license": "Apache-2.0", @@ -29,7 +29,12 @@ "lz4", { "name": "opencv4", - "default-features": false + "default-features": false, + "features": [ + "fs", + "intrinsics", + "thread" + ] }, "openssl", { diff --git a/ports/libcaer/vcpkg.json b/ports/libcaer/vcpkg.json index 58d88c9c3b..7c615df65e 100644 --- a/ports/libcaer/vcpkg.json +++ b/ports/libcaer/vcpkg.json @@ -1,7 +1,7 @@ { "name": "libcaer", "version": "3.3.15", - "port-version": 1, + "port-version": 2, "description": "Minimal C library to access, configure and get data from neuromorphic sensors and processors.", "homepage": "https://gitlab.com/inivation/dv/libcaer", "license": "BSD-2-Clause AND Apache-2.0", @@ -27,7 +27,12 @@ "dependencies": [ { "name": "opencv4", - "default-features": false + "default-features": false, + "features": [ + "fs", + "intrinsics", + "thread" + ] } ] } diff --git a/ports/libtorch/vcpkg.json b/ports/libtorch/vcpkg.json index eda740b804..1c24a23e5e 100644 --- a/ports/libtorch/vcpkg.json +++ b/ports/libtorch/vcpkg.json @@ -1,7 +1,7 @@ { "name": "libtorch", "version": "2.1.2", - "port-version": 10, + "port-version": 11, "description": "Tensors and Dynamic neural networks in Python with strong GPU acceleration", "homepage": "https://pytorch.org/", "license": null, @@ -121,7 +121,7 @@ ] }, "opencv": { - "description": "Build with OpenCV 3.x", + "description": "Build with OpenCV", "dependencies": [ "opencv" ] diff --git a/ports/opencv/vcpkg.json b/ports/opencv/vcpkg.json index a46d3042be..40493ffc0d 100644 --- a/ports/opencv/vcpkg.json +++ b/ports/opencv/vcpkg.json @@ -1,7 +1,7 @@ { "name": "opencv", "version": "4.10.0", - "port-version": 1, + "port-version": 2, "description": "computer vision library", "homepage": "https://github.com/opencv/opencv", "license": "Apache-2.0", @@ -84,6 +84,18 @@ } ] }, + "directml": { + "description": "Build with DirectML support", + "dependencies": [ + { + "name": "opencv4", + "default-features": false, + "features": [ + "directml" + ] + } + ] + }, "dnn": { "description": "Enable dnn module", "dependencies": [ @@ -288,18 +300,6 @@ } ] }, - "lapack": { - "description": "LAPACK support for opencv", - "dependencies": [ - { - "name": "opencv4", - "default-features": false, - "features": [ - "lapack" - ] - } - ] - }, "msmf": { "description": "Microsoft Media Foundation support for opencv", "dependencies": [ diff --git a/ports/opencv2/0004-enable-pkgconf.patch b/ports/opencv2/0004-enable-pkgconf.patch new file mode 100644 index 0000000000..bc3d9fe7f6 --- /dev/null +++ b/ports/opencv2/0004-enable-pkgconf.patch @@ -0,0 +1,13 @@ +--- a/cmake/OpenCVUtils.cmake ++++ b/cmake/OpenCVUtils.cmake +@@ -1,9 +1,7 @@ + include(CheckFunctionExists) + include(CheckIncludeFile) + +-if(UNIX) +- find_package(PkgConfig) ++ find_package(PkgConfig REQUIRED) +-endif() + + # Search packages for the host system instead of packages for target system + # in case of cross compilation these macros should be defined by the toolchain file diff --git a/ports/opencv2/0007-fix-config.patch b/ports/opencv2/0005-fix-config.patch similarity index 100% rename from ports/opencv2/0007-fix-config.patch rename to ports/opencv2/0005-fix-config.patch diff --git a/ports/opencv2/0019-fix-openexr.patch b/ports/opencv2/0007-fix-openexr.patch similarity index 100% rename from ports/opencv2/0019-fix-openexr.patch rename to ports/opencv2/0007-fix-openexr.patch diff --git a/ports/opencv2/0020-missing-include.patch b/ports/opencv2/0008-missing-include.patch similarity index 100% rename from ports/opencv2/0020-missing-include.patch rename to ports/opencv2/0008-missing-include.patch diff --git a/ports/opencv2/0021-pkgconfig-suffix.patch b/ports/opencv2/0009-pkgconfig-suffix.patch similarity index 100% rename from ports/opencv2/0021-pkgconfig-suffix.patch rename to ports/opencv2/0009-pkgconfig-suffix.patch diff --git a/ports/opencv2/portfile.cmake b/ports/opencv2/portfile.cmake index 39335520c5..4f614d8ecf 100644 --- a/ports/opencv2/portfile.cmake +++ b/ports/opencv2/portfile.cmake @@ -8,12 +8,18 @@ vcpkg_from_github( 0001-install-options.patch 0002-fix-paths-containing-symbols.patch 0003-force-package-requirements.patch + 0004-enable-pkgconf.patch + 0005-fix-config.patch 0006-fix-jasper.patch - 0007-fix-config.patch - 0019-fix-openexr.patch - 0020-missing-include.patch - 0021-pkgconfig-suffix.patch + 0007-fix-openexr.patch + 0008-missing-include.patch + 0009-pkgconfig-suffix.patch ) + +vcpkg_find_acquire_program(PKGCONFIG) +set(ENV{PKG_CONFIG} "${PKGCONFIG}") +vcpkg_host_path_list(APPEND ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}/lib/pkgconfig") + # Disallow accidental build of vendored copies file(REMOVE_RECURSE "${SOURCE_PATH}/3rdparty/openexr") file(REMOVE "${SOURCE_PATH}/cmake/FindCUDA.cmake") @@ -22,7 +28,6 @@ file(REMOVE_RECURSE "${SOURCE_PATH}/cmake/FindCUDA") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "eigen" WITH_EIGEN - "gtk" WITH_GTK "jasper" WITH_JASPER "jpeg" WITH_JPEG "msmf" WITH_MSMF @@ -76,7 +81,7 @@ vcpkg_cmake_configure( -DWITH_ZLIB=ON -DWITH_CUBLAS=OFF -DWITH_CUDA=OFF - -DOPENCV_LAPACK_FIND_PACKAGE_ONLY=ON + -DWITH_GTK=OFF ) vcpkg_cmake_install() diff --git a/ports/opencv2/vcpkg.json b/ports/opencv2/vcpkg.json index 5250c95ee4..9d0ec13556 100644 --- a/ports/opencv2/vcpkg.json +++ b/ports/opencv2/vcpkg.json @@ -1,7 +1,7 @@ { "name": "opencv2", "version": "2.4.13.7", - "port-version": 23, + "port-version": 24, "description": "Open Source Computer Vision Library", "homepage": "https://github.com/opencv/opencv", "license": "BSD-3-Clause", @@ -40,13 +40,6 @@ "eigen3" ] }, - "gtk": { - "description": "GTK support for opencv", - "supports": "linux", - "dependencies": [ - "gtk3" - ] - }, "jasper": { "description": "JPEG 2000 support for opencv", "dependencies": [ diff --git a/ports/opencv3/0003-force-package-requirements.patch b/ports/opencv3/0003-force-package-requirements.patch index 5f7e360c99..c29ac06f76 100644 --- a/ports/opencv3/0003-force-package-requirements.patch +++ b/ports/opencv3/0003-force-package-requirements.patch @@ -54,7 +54,7 @@ if(PNG_FOUND) include(CheckIncludeFile) check_include_file("${PNG_PNG_INCLUDE_DIR}/libpng/png.h" HAVE_LIBPNG_PNG_H) -@@ -247,7 +247,7 @@ endif() +@@ -249,7 +249,7 @@ endif() # --- GDAL (optional) --- if(WITH_GDAL) @@ -63,7 +63,7 @@ if(NOT GDAL_FOUND) set(HAVE_GDAL NO) -@@ -259,7 +259,7 @@ if(WITH_GDAL) +@@ -261,7 +261,7 @@ if(WITH_GDAL) endif() if(WITH_GDCM) @@ -72,16 +72,14 @@ if(NOT GDCM_FOUND) set(HAVE_GDCM NO) ocv_clear_vars(GDCM_VERSION GDCM_LIBRARIES) -diff --git a/modules/imgcodecs/CMakeLists.txt b/modules/imgcodecs/CMakeLists.txt -index 213667a..4052387 100644 --- a/modules/imgcodecs/CMakeLists.txt +++ b/modules/imgcodecs/CMakeLists.txt -@@ -24,7 +24,7 @@ endif() - +@@ -20,7 +20,7 @@ endif() + if(HAVE_WEBP) add_definitions(-DHAVE_WEBP) - ocv_include_directories(${WEBP_INCLUDE_DIR}) + ocv_include_directories(${WEBP_INCLUDE_DIRS}) list(APPEND GRFMT_LIBS ${WEBP_LIBRARIES}) endif() - + diff --git a/ports/opencv3/0008-devendor-quirc.patch b/ports/opencv3/0008-devendor-quirc.patch index 76803851bf..3f5413df9f 100644 --- a/ports/opencv3/0008-devendor-quirc.patch +++ b/ports/opencv3/0008-devendor-quirc.patch @@ -1,6 +1,6 @@ --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -778,7 +778,7 @@ if(WITH_OPENVX) +@@ -780,7 +780,7 @@ if(WITH_OPENVX) endif() if(WITH_QUIRC) diff --git a/ports/opencv3/0009-fix-protobuf.patch b/ports/opencv3/0009-fix-protobuf.patch index 38572e309f..c3b5842e6b 100644 --- a/ports/opencv3/0009-fix-protobuf.patch +++ b/ports/opencv3/0009-fix-protobuf.patch @@ -6,7 +6,7 @@ unset(Protobuf_VERSION CACHE) - find_package(Protobuf QUIET) + find_package(Protobuf CONFIG REQUIRED) - + # Backwards compatibility # Define camel case versions of input variables @@ -76,6 +76,7 @@ if(HAVE_PROTOBUF) diff --git a/ports/opencv3/0010-fix-uwp-tiff-imgcodecs.patch b/ports/opencv3/0010-fix-uwp-tiff-imgcodecs.patch index 0bd3d701b9..e149e3bdf6 100644 --- a/ports/opencv3/0010-fix-uwp-tiff-imgcodecs.patch +++ b/ports/opencv3/0010-fix-uwp-tiff-imgcodecs.patch @@ -1,6 +1,6 @@ --- a/modules/imgcodecs/CMakeLists.txt +++ b/modules/imgcodecs/CMakeLists.txt -@@ -9,6 +9,10 @@ ocv_add_module(imgcodecs opencv_imgproc WRAP java objc python) +@@ -9,6 +9,10 @@ ocv_add_module(imgcodecs opencv_imgproc WRAP java python) ocv_clear_vars(GRFMT_LIBS) diff --git a/ports/opencv3/0011-remove-python2.patch b/ports/opencv3/0011-remove-python2.patch index bee0faa87c..1d55c84208 100644 --- a/ports/opencv3/0011-remove-python2.patch +++ b/ports/opencv3/0011-remove-python2.patch @@ -3,7 +3,7 @@ @@ -268,15 +268,6 @@ if(OPENCV_PYTHON_SKIP_DETECTION) return() endif() - + -find_python("" "${MIN_VER_PYTHON2}" PYTHON2_LIBRARY PYTHON2_INCLUDE_DIR - PYTHON2INTERP_FOUND PYTHON2_EXECUTABLE PYTHON2_VERSION_STRING - PYTHON2_VERSION_MAJOR PYTHON2_VERSION_MINOR PYTHON2LIBS_FOUND diff --git a/ports/opencv3/0013-contrib-fix-ceres.patch b/ports/opencv3/0013-contrib-fix-ceres.patch deleted file mode 100644 index c8acb16101..0000000000 --- a/ports/opencv3/0013-contrib-fix-ceres.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/modules/sfm/src/libmv_light/libmv/simple_pipeline/bundle.cc -+++ b/modules/sfm/src/libmv_light/libmv/simple_pipeline/bundle.cc -@@ -549,7 +549,7 @@ void EuclideanBundleCommonIntrinsics( - - if (bundle_constraints & BUNDLE_NO_TRANSLATION) { - #if CERES_VERSION_MAJOR >= 3 || (CERES_VERSION_MAJOR >= 2 && CERES_VERSION_MINOR >= 1) -- problem.SetParameterization(current_camera_R_t, -+ problem.SetManifold(current_camera_R_t, - constant_translation_manifold); - #else - problem.SetParameterization(current_camera_R_t, diff --git a/ports/opencv3/0018-contrib-fix-tesseract.patch b/ports/opencv3/0013-contrib-fix-tesseract.patch similarity index 100% rename from ports/opencv3/0018-contrib-fix-tesseract.patch rename to ports/opencv3/0013-contrib-fix-tesseract.patch diff --git a/ports/opencv3/0016-contrib-fix-freetype.patch b/ports/opencv3/0016-contrib-fix-freetype.patch index 930a1d65a3..aa770823e1 100644 --- a/ports/opencv3/0016-contrib-fix-freetype.patch +++ b/ports/opencv3/0016-contrib-fix-freetype.patch @@ -1,6 +1,6 @@ --- a/modules/freetype/CMakeLists.txt +++ b/modules/freetype/CMakeLists.txt -@@ -3,8 +5,10 @@ if(APPLE_FRAMEWORK) +@@ -3,8 +3,10 @@ if(APPLE_FRAMEWORK) ocv_module_disable(freetype) endif() @@ -10,6 +10,6 @@ +find_package(freetype CONFIG REQUIRED) +find_package(harfbuzz CONFIG REQUIRED) +endif() - + if(OPENCV_INITIAL_PASS) if(NOT FREETYPE_FOUND) diff --git a/ports/opencv3/0017-enable-gtk.patch b/ports/opencv3/0017-enable-gtk.patch new file mode 100644 index 0000000000..1a70098539 --- /dev/null +++ b/ports/opencv3/0017-enable-gtk.patch @@ -0,0 +1,11 @@ +--- a/cmake/OpenCVFindLibsGUI.cmake ++++ b/cmake/OpenCVFindLibsGUI.cmake +@@ -61,7 +61,7 @@ endif() + + # --- GTK --- + ocv_clear_vars(HAVE_GTK HAVE_GTK3 HAVE_GTHREAD HAVE_GTKGLEXT) +-if(WITH_GTK AND NOT HAVE_QT) ++if(WITH_GTK) + if(NOT WITH_GTK_2_X) + ocv_check_modules(GTK3 gtk+-3.0) + if(HAVE_GTK3) diff --git a/ports/opencv3/0017-missing-include.patch b/ports/opencv3/0017-missing-include.patch deleted file mode 100644 index 52cdea0309..0000000000 --- a/ports/opencv3/0017-missing-include.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/modules/dnn/src/op_halide.cpp -+++ b/modules/dnn/src/op_halide.cpp -@@ -11,6 +11,7 @@ - - #ifdef HAVE_HALIDE - #include -+#include - #endif // HAVE_HALIDE - - namespace cv diff --git a/ports/opencv3/0019-enable-pkgconf.patch b/ports/opencv3/0019-enable-pkgconf.patch new file mode 100644 index 0000000000..c9e142ffcf --- /dev/null +++ b/ports/opencv3/0019-enable-pkgconf.patch @@ -0,0 +1,10 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -618,6 +618,7 @@ ocv_cmake_hook(POST_COMPILER_OPTIONS) + # ---------------------------------------------------------------------------- + # CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC.. + # ---------------------------------------------------------------------------- ++find_package(PkgConfig REQUIRED) + if(UNIX) + if(NOT APPLE_FRAMEWORK OR OPENCV_ENABLE_PKG_CONFIG) + if(CMAKE_CROSSCOMPILING AND NOT DEFINED ENV{PKG_CONFIG_LIBDIR} AND NOT DEFINED ENV{PKG_CONFIG_SYSROOT_DIR} diff --git a/ports/opencv3/0019-fix-tbb.patch b/ports/opencv3/0019-fix-tbb.patch deleted file mode 100644 index 60956dcc2a..0000000000 --- a/ports/opencv3/0019-fix-tbb.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/modules/core/src/parallel.cpp -+++ b/modules/core/src/parallel.cpp -@@ -101,7 +101,6 @@ - #endif - #include "tbb/tbb.h" - #include "tbb/task.h" -- #include "tbb/tbb_stddef.h" - #if TBB_INTERFACE_VERSION >= 8000 - #include "tbb/task_arena.h" - #endif diff --git a/ports/opencv3/portfile.cmake b/ports/opencv3/portfile.cmake index b86f7ced44..e575f3a318 100644 --- a/ports/opencv3/portfile.cmake +++ b/ports/opencv3/portfile.cmake @@ -3,8 +3,8 @@ set(USE_QT_VERSION "5") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO opencv/opencv - REF "${VERSION}" - SHA512 96bbeb9525325f17ba635a0b75126aae0a7b0daef211af45057a97abd5d31a57fc50f0e889a6dab614df9b7621a145e06c0d240f0a218f33df1217d9a19c510d + REF af32659937b6a23af04954a23a4a31ea520ceabc #3.4.20 + SHA512 e7efc912113f27428fb85f033e8b18146c9a5899bf10e687f8c279ed736ee3006ac330e843979df7572f046f41cb8820e291b4303dcfdc4f12deb6df0e0be27b HEAD_REF master PATCHES 0001-disable-downloading.patch @@ -20,9 +20,14 @@ vcpkg_from_github( 0012-fix-zlib.patch 0014-fix-pkgconf-name.patch 0015-fix-supportqnx.patch - 0017-missing-include.patch - 0019-fix-tbb.patch + 0017-enable-gtk.patch + 0019-enable-pkgconf.patch ) + +vcpkg_find_acquire_program(PKGCONFIG) +set(ENV{PKG_CONFIG} "${PKGCONFIG}") +vcpkg_host_path_list(APPEND ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}/lib/pkgconfig") + # Disallow accidental build of vendored copies file(REMOVE_RECURSE "${SOURCE_PATH}/3rdparty/openexr") file(REMOVE "${SOURCE_PATH}/cmake/FindCUDNN.cmake") @@ -65,7 +70,6 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS "ipp" BUILD_IPP_IW "jasper" WITH_JASPER "jpeg" WITH_JPEG - "lapack" WITH_LAPACK "line-descriptor" BUILD_opencv_line_descriptor "msmf" WITH_MSMF "nonfree" OPENCV_ENABLE_NONFREE @@ -125,14 +129,13 @@ if("contrib" IN_LIST FEATURES) vcpkg_from_github( OUT_SOURCE_PATH CONTRIB_SOURCE_PATH REPO opencv/opencv_contrib - REF "${VERSION}" - SHA512 a051497e61ae55f86c224044487fc2247a3bba1aa27031c4997c981ddf8402edf82f1dd0d307f562c638bc021cfd8bd42a723973f00ab25131495f84d33c5383 + REF ae9a95ecdd8b4014a45b38c5576adf73c5d96f35 + SHA512 98f4e3113fb65b6d52d39388ae616d3107969040dc70248be194566904cf8a4f165a61fd5e88b1d799d7bc8107f1a3c3951365de45f3b19cb8b888a63c6d8f2d HEAD_REF master PATCHES 0007-contrib-fix-hdf5.patch - 0013-contrib-fix-ceres.patch + 0013-contrib-fix-tesseract.patch 0016-contrib-fix-freetype.patch - 0018-contrib-fix-tesseract.patch ) set(BUILD_WITH_CONTRIB_FLAG "-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules") @@ -180,36 +183,36 @@ endif() if("ipp" IN_LIST FEATURES) if(VCPKG_TARGET_IS_OSX) vcpkg_download_distfile(OCV_DOWNLOAD - URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_mac_intel64_20191018_general.tgz" - FILENAME "opencv-cache/ippicv/1c3d675c2a2395d094d523024896e01b-ippicv_2020_mac_intel64_20191018_general.tgz" - SHA512 454dfaaa245e3a3b2f1ffb1aa8e27e280b03685009d66e147482b14e5796fdf2d332cac0f9b0822caedd5760fda4ee0ce2961889597456bbc18202f10bf727cd + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/0cc4aa06bf2bef4b05d237c69a5a96b9cd0cb85a/ippicv/ippicv_2021.9.1_mac_intel64_20230919_general.tgz" + FILENAME "opencv-cache/ippicv/14f01c5a4780bfae9dde9b0aaf5e56fc-ippicv_2021.9.1_mac_intel64_20230919_general.tgz" + SHA512 e53aa1bf4336a94554bf40c29a74c85f595c0aec8d9102a158db7ae075db048c1ff7f50ed81eda3ac8e07b1460862970abc820073a53c0f237e584708c5295da ) elseif(VCPKG_TARGET_IS_LINUX) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_download_distfile(OCV_DOWNLOAD - URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_lnx_intel64_20191018_general.tgz" - FILENAME "opencv-cache/ippicv/7421de0095c7a39162ae13a6098782f9-ippicv_2020_lnx_intel64_20191018_general.tgz" - SHA512 de6d80695cd6deef359376476edc4ff85fdddcf94972b936e0017f8a48aaa5d18f55c4253ae37deb83bff2f71410f68408063c88b5f3bf4df3c416aa93ceca87 - ) + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fd27188235d85e552de31425e7ea0f53ba73ba53/ippicv/ippicv_2021.11.0_lnx_intel64_20240201_general.tgz" + FILENAME "opencv-cache/ippicv/0f2745ff705ecae31176dad437608f6f-ippicv_2021.11.0_lnx_intel64_20240201_general.tgz" + SHA512 74cba99a1d2c40a125b23d42de555548fecd22c8fea5ed68ab7f887b1f208bd7f2906a64d40bac71ea82190e5389fb92d3c72b6d47c8c05a2e9b9b909a82ce47 + ) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") vcpkg_download_distfile(OCV_DOWNLOAD - URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_lnx_ia32_20191018_general.tgz" - FILENAME "opencv-cache/ippicv/ad189a940fb60eb71f291321322fe3e8-ippicv_2020_lnx_ia32_20191018_general.tgz" - SHA512 5ca9dafc3a634e2a5f83f6a498611c990ef16d54358e9b44574b01694e9d64b118d46d6e2011506e40d37e5a9865f576f790e37ff96b7c8b503507633631a296 - ) + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fd27188235d85e552de31425e7ea0f53ba73ba53/ippicv/ippicv_2021.11.0_lnx_ia32_20240201_general.tgz" + FILENAME "opencv-cache/ippicv/63e381bf08076ca34fd5264203043a45-ippicv_2021.11.0_lnx_ia32_20240201_general.tgz" + SHA512 37484704754f9553b04c8da23864af3217919a11a9dbc92427e6326d6104bab7f1983c98c78ec52cda2d3eb93dc1fd98d0b780e3b7a98e703010c5ee1b421426 + ) endif() elseif(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_download_distfile(OCV_DOWNLOAD - URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_win_intel64_20191018_general.zip" - FILENAME "opencv-cache/ippicv/879741a7946b814455eee6c6ffde2984-ippicv_2020_win_intel64_20191018_general.zip" - SHA512 50c4af4b7fe2161d652264230389dad2330e8c95b734d04fb7565bffdab855c06d43085e480da554c56b04f8538087d49503538d5943221ee2a772ee7be4c93c + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fd27188235d85e552de31425e7ea0f53ba73ba53/ippicv/ippicv_2021.11.0_win_intel64_20240201_general.zip" + FILENAME "opencv-cache/ippicv/59d154bf54a1e3eea20d7248f81a2a8e-ippicv_2021.11.0_win_intel64_20240201_general.zip" + SHA512 686ddbafa3f24c598d94589fca6937f90a4fb25e3dabea3b276709e55cbc2636aba8d73fadd336775f8514ff8e2e1b20e749264a7f11243190d54467f9a3f895 ) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") vcpkg_download_distfile(OCV_DOWNLOAD - URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_win_ia32_20191018_general.zip" - FILENAME "opencv-cache/ippicv/cd39bdf0c2e1cac9a61101dad7a2413e-ippicv_2020_win_ia32_20191018_general.zip" - SHA512 058d00775d9f16955c7a557d554b8c2976ab9dbad4ba3fdb9823c0f768809edbd835e4397f01dc090a9bc80d81de834375e7006614d2a898f42e8004de0e04bf + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fd27188235d85e552de31425e7ea0f53ba73ba53/ippicv/ippicv_2021.11.0_win_ia32_20240201_general.zip" + FILENAME "opencv-cache/ippicv/7a6d8ac5825c02fea6cbfc1201b521b5-ippicv_2021.11.0_win_ia32_20240201_general.zip" + SHA512 0e151e34cee01a3684d3be3c2c75b0fac5f303bfd8c08685981a3d4a25a19a9bb454da26d2965aab915adc209accca17b6a4b6d7726c004cd7841daf180bbd3a ) endif() endif() @@ -274,7 +277,6 @@ vcpkg_cmake_configure( -DBUILD_TIFF=OFF -DBUILD_WEBP=OFF -DBUILD_ZLIB=OFF - -DOPENCV_LAPACK_FIND_PACKAGE_ONLY=ON ###### OpenCV Build components -DBUILD_opencv_apps=OFF -DBUILD_opencv_java=OFF @@ -319,6 +321,7 @@ vcpkg_cmake_configure( -DWITH_FFMPEG=OFF -DWITH_CUDA=OFF -DWITH_CUBLAS=OFF + -DWITH_LAPACK=OFF ###### Additional build flags ${ADDITIONAL_BUILD_FLAGS} OPTIONS_RELEASE @@ -392,18 +395,12 @@ endif() if("eigen" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(Eigen3 CONFIG)") endif() -if("lapack" IN_LIST FEATURES) - string(APPEND DEPS_STRING "\nfind_dependency(LAPACK)") -endif() if("openvino" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(OpenVINO CONFIG)") endif() if("openexr" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(OpenEXR CONFIG)") endif() -if("openjpeg" IN_LIST FEATURES) - string(APPEND DEPS_STRING "\nfind_dependency(OpenJPEG)") -endif() if("omp" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(OpenMP)") endif() diff --git a/ports/opencv3/vcpkg.json b/ports/opencv3/vcpkg.json index 851f5113a6..bed28555e0 100644 --- a/ports/opencv3/vcpkg.json +++ b/ports/opencv3/vcpkg.json @@ -1,7 +1,6 @@ { "name": "opencv3", - "version": "3.4.18", - "port-version": 18, + "version": "3.4.20", "description": "Open Source Computer Vision Library", "homepage": "https://github.com/opencv/opencv", "license": "BSD-3-Clause", @@ -21,7 +20,23 @@ "zlib" ], "default-features": [ + { + "name": "dnn", + "platform": "!android" + }, + { + "name": "gapi", + "platform": "!uwp" + }, + { + "name": "gtk", + "platform": "linux" + }, "jpeg", + { + "name": "msmf", + "platform": "windows & !uwp & !mingw" + }, "png", "quirc", "tiff", @@ -144,13 +159,6 @@ "libjpeg-turbo" ] }, - "lapack": { - "description": "LAPACK support for opencv", - "dependencies": [ - "blas", - "lapack" - ] - }, "line-descriptor": { "description": "opencv_line_descriptor module", "supports": "!arm" diff --git a/ports/opencv4/0002-install-options.patch b/ports/opencv4/0002-install-options.patch index d9514e0b44..ac0e944955 100644 --- a/ports/opencv4/0002-install-options.patch +++ b/ports/opencv4/0002-install-options.patch @@ -9,6 +9,14 @@ include(cmake/OpenCVDetectPython.cmake) endif() +@@ -730,6 +730,7 @@ endif() + # ---------------------------------------------------------------------------- + # CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC.. + # ---------------------------------------------------------------------------- ++find_package(PkgConfig REQUIRED) + if(UNIX OR MINGW) + if(NOT APPLE_FRAMEWORK OR OPENCV_ENABLE_PKG_CONFIG) + if(CMAKE_CROSSCOMPILING AND NOT DEFINED ENV{PKG_CONFIG_LIBDIR} AND NOT DEFINED ENV{PKG_CONFIG_SYSROOT_DIR} --- a/cmake/OpenCVCompilerOptions.cmake +++ b/cmake/OpenCVCompilerOptions.cmake @@ -300,7 +300,6 @@ if(MSVC) diff --git a/ports/opencv4/portfile.cmake b/ports/opencv4/portfile.cmake index ea5e57e173..432d987d21 100644 --- a/ports/opencv4/portfile.cmake +++ b/ports/opencv4/portfile.cmake @@ -1,9 +1,15 @@ set(USE_QT_VERSION "6") -vcpkg_download_distfile(PATCH_ADD_INCLUDE_CHRONO - URLS https://github.com/opencv/opencv/commit/96d6395a6dccb9554bc2f83105f87ebd071d37fa.patch?full_index=1 - SHA512 d385b5386a19e4a0b3e78d5423baac4d132d25581d9336f084db819b9f68a6bc1ac23968a901891ac5023ab2fe4fa4513d7c70e5170e72cb57710d51b50e67a1 - FILENAME opencv4-4.11.0-include-chrono.patch +vcpkg_download_distfile(ADD_INCLUDE_CHRONO + URLS https://github.com/opencv/opencv/commit/96d6395a6dccb9554bc2f83105f87ebd071d37fa.patch + SHA512 d333ef445bf7ef5da76d101ba2400a3eb3bc7bd0aaf4594c92696001d254415b0f0cc31d8420e3f1afb867ccc5a5c53d8276e89e4ec5c216aa7cfc5e6ada974e + FILENAME 96d6395a6dccb9554bc2f83105f87ebd071d37fa.patch +) + +vcpkg_download_distfile(CONTRIB_FIX_COMPATIBILITY_OLDER_CUDA_VERSIONS + URLS https://github.com/opencv/opencv_contrib/commit/b236c71c2f8d983403c35a0cea8bec0432a4b0fe.patch + SHA512 170a06d903d50fdcb2082b13015f6efb2bd2d8bbcc203e9c254f26575113a773304e9777b5d72a7b39c52f93fcbb5158fb8579d8da3337e1774079b345d0ea93 + FILENAME b236c71c2f8d983403c35a0cea8bec0432a4b0fe.patch ) vcpkg_from_github( @@ -29,8 +35,13 @@ vcpkg_from_github( 0017-fix-flatbuffers.patch 0019-opencl-kernel.patch 0020-miss-openexr.patch - "${PATCH_ADD_INCLUDE_CHRONO}" + "${ADD_INCLUDE_CHRONO}" ) + +vcpkg_find_acquire_program(PKGCONFIG) +set(ENV{PKG_CONFIG} "${PKGCONFIG}") +vcpkg_host_path_list(APPEND ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}/lib/pkgconfig") + # Disallow accidental build of vendored copies file(REMOVE_RECURSE "${SOURCE_PATH}/3rdparty/openexr") file(REMOVE_RECURSE "${SOURCE_PATH}/3rdparty/flatbuffers") @@ -67,6 +78,7 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS "cuda" ENABLE_CUDA_FIRST_CLASS_LANGUAGE "cudnn" WITH_CUDNN "dc1394" WITH_1394 + "directml" WITH_DIRECTML "dnn" BUILD_opencv_dnn "dnn" PROTOBUF_UPDATE_FILES "dnn" UPDATE_PROTO_FILES @@ -85,15 +97,11 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS "ipp" BUILD_IPP_IW "highgui" BUILD_opencv_highgui "intrinsics" CV_ENABLE_INTRINSICS - "jasper" WITH_JASPER "openjpeg" WITH_OPENJPEG "openmp" WITH_OPENMP "jpeg" WITH_JPEG - "lapack" WITH_LAPACK - "lapack" DOPENCV_LAPACK_FIND_PACKAGE_ONLY "msmf" WITH_MSMF "nonfree" OPENCV_ENABLE_NONFREE - "fs" OPENCV_ENABLE_FILESYSTEM_SUPPORT "thread" OPENCV_ENABLE_THREAD_SUPPORT "opencl" WITH_OPENCL "openvino" WITH_OPENVINO @@ -115,6 +123,8 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS "webp" WITH_WEBP "win32ui" WITH_WIN32UI "world" BUILD_opencv_world + INVERTED_FEATURES + "fs" OPENCV_DISABLE_FILESYSTEM_SUPPORT ) if("dnn" IN_LIST FEATURES) @@ -126,17 +136,19 @@ if("dnn" IN_LIST FEATURES) ) endif() -if (VCPKG_LIBRARY_LINKAGE STREQUAL static) - set(OPENCV_LAPACK_SHARED_LIBS OFF) -else() - set(OPENCV_LAPACK_SHARED_LIBS ON) -endif() - set(WITH_QT OFF) if("qt" IN_LIST FEATURES) set(WITH_QT ${USE_QT_VERSION}) endif() +set(WITH_JASPER OFF) +if(("jasper" IN_LIST FEATURES) AND NOT ("openjpeg" IN_LIST FEATURES)) # jasper is mutually exclusive with openjpeg + set(WITH_JASPER ON) + message(STATUS "Jasper is enabled, but is deprecated and will be removed in a future release.") +elseif("jasper" IN_LIST FEATURES AND ("openjpeg" IN_LIST FEATURES)) + message(WARNING "Both Jasper and OpenJPEG are enabled. OpenJPEG will be used and Jasper will be ignored.") +endif() + if("python" IN_LIST FEATURES) x_vcpkg_get_python_packages(PYTHON_VERSION "3" PACKAGES numpy OUT_PYTHON_VAR "PYTHON3") set(ENV{PYTHON} "${PYTHON3}") @@ -185,6 +197,7 @@ if("contrib" IN_LIST FEATURES) 0013-contrib-fix-ogre.patch 0016-contrib-fix-freetype.patch 0018-contrib-fix-tesseract.patch + ${CONTRIB_FIX_COMPATIBILITY_OLDER_CUDA_VERSIONS} ) set(BUILD_WITH_CONTRIB_FLAG "-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules") @@ -395,15 +408,12 @@ vcpkg_cmake_configure( -DBUILD_WITH_DEBUG_INFO=ON -DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT} -DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR} - ###### PROTOBUF ###### PYLINT/FLAKE8 -DENABLE_PYLINT=OFF -DENABLE_FLAKE8=OFF # CMAKE -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON - # ENABLE - -DENABLE_CXX11=ON ###### OPENCV vars "-DOPENCV_DOWNLOAD_PATH=${DOWNLOADS}/opencv-cache" ${BUILD_WITH_CONTRIB_FLAG} @@ -412,8 +422,8 @@ vcpkg_cmake_configure( ## Options from vcpkg_check_features() ${FEATURE_OPTIONS} -DWITH_QT=${WITH_QT} + -DWITH_JASPER=${WITH_JASPER} -DWITH_MATLAB=OFF - -DWITH_OPENJPEG=OFF -DWITH_CPUFEATURES=OFF -DWITH_SPNG=OFF -DWITH_OPENCLAMDFFT=OFF @@ -426,20 +436,15 @@ vcpkg_cmake_configure( -DWITH_VA=OFF -DWITH_VA_INTEL=OFF -DWITH_OBSENSOR=OFF + -DWITH_LAPACK=OFF ###### modules which require special treatment -DBUILD_opencv_quality=${BUILD_opencv_quality} -DBUILD_opencv_rgbd=${BUILD_opencv_rgbd} ###### Additional build flags - -DOPENCV_LAPACK_SHARED_LIBS=${OPENCV_LAPACK_SHARED_LIBS} - -DOPENCV_DISABLE_FILESYSTEM_SUPPORT=${OPENCV_DISABLE_FILESYSTEM_SUPPORT} - -DCV_ENABLE_INTRINSICS=${CV_ENABLE_INTRINSICS} - ###### Additional build flags ${ADDITIONAL_BUILD_FLAGS} OPTIONS_RELEASE - ###### Python install path ${PYTHON_EXTRA_DEFINES_RELEASE} OPTIONS_DEBUG - ###### Python install path ${PYTHON_EXTRA_DEFINES_DEBUG} ) @@ -503,9 +508,6 @@ endif() if("eigen" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(Eigen3 CONFIG)") endif() -if("lapack" IN_LIST FEATURES) - string(APPEND DEPS_STRING "\nfind_dependency(LAPACK)") -endif() if("openvino" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(OpenVINO CONFIG)") endif() diff --git a/ports/opencv4/vcpkg.json b/ports/opencv4/vcpkg.json index 533f72309c..bf35ffb9f1 100644 --- a/ports/opencv4/vcpkg.json +++ b/ports/opencv4/vcpkg.json @@ -1,7 +1,7 @@ { "name": "opencv4", "version": "4.10.0", - "port-version": 4, + "port-version": 5, "description": "computer vision library", "homepage": "https://github.com/opencv/opencv", "license": "Apache-2.0", @@ -22,6 +22,10 @@ ], "default-features": [ "calib3d", + { + "name": "directml", + "platform": "windows & !uwp & !mingw" + }, { "name": "dnn", "platform": "!android" @@ -42,6 +46,10 @@ "highgui", "intrinsics", "jpeg", + { + "name": "msmf", + "platform": "windows & !uwp & !mingw" + }, "png", "quirc", "thread", @@ -117,6 +125,10 @@ "libdc1394" ] }, + "directml": { + "description": "Build with DirectML support", + "supports": "windows & !uwp & !mingw" + }, "dnn": { "description": "Enable dnn module", "supports": "!android", @@ -253,13 +265,6 @@ "libjpeg-turbo" ] }, - "lapack": { - "description": "LAPACK support for opencv", - "dependencies": [ - "blas", - "lapack" - ] - }, "msmf": { "description": "Microsoft Media Foundation support for opencv", "supports": "windows & !uwp & !mingw" diff --git a/ports/openimageio/vcpkg.json b/ports/openimageio/vcpkg.json index b08a9ca248..dcc5bf04d4 100644 --- a/ports/openimageio/vcpkg.json +++ b/ports/openimageio/vcpkg.json @@ -1,6 +1,7 @@ { "name": "openimageio", "version": "3.0.1.0", + "port-version": 1, "description": "A library for reading and writing images, and a bunch of related classes, utilities, and application.", "homepage": "https://github.com/OpenImageIO/oiio", "license": "BSD-3-Clause", @@ -82,7 +83,12 @@ "dependencies": [ { "name": "opencv", - "default-features": false + "default-features": false, + "features": [ + "fs", + "intrinsics", + "thread" + ] } ] }, diff --git a/ports/rtabmap/0001-cmakelists-fixes.patch b/ports/rtabmap/0001-cmakelists-fixes.patch new file mode 100644 index 0000000000..95f5fca4da --- /dev/null +++ b/ports/rtabmap/0001-cmakelists-fixes.patch @@ -0,0 +1,640 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -229,12 +229,12 @@ ENDIF() + set(RTABMAP_QT_VERSION AUTO CACHE STRING "Force a specific Qt version.") + set_property(CACHE RTABMAP_QT_VERSION PROPERTY STRINGS AUTO 4 5 6) + +-FIND_PACKAGE(OpenCV REQUIRED QUIET COMPONENTS core calib3d imgproc highgui stitching photo video videoio OPTIONAL_COMPONENTS aruco xfeatures2d nonfree gpu cudafeatures2d) ++FIND_PACKAGE(OpenCV REQUIRED COMPONENTS core calib3d imgproc highgui stitching photo video videoio OPTIONAL_COMPONENTS aruco xfeatures2d nonfree gpu cudafeatures2d) + + IF(WITH_QT) +-FIND_PACKAGE(PCL 1.7 REQUIRED QUIET COMPONENTS common io kdtree search surface filters registration sample_consensus segmentation visualization) ++FIND_PACKAGE(PCL 1.7 REQUIRED COMPONENTS common io kdtree search surface filters registration sample_consensus segmentation visualization) + ELSE() +-FIND_PACKAGE(PCL 1.7 REQUIRED QUIET COMPONENTS common io kdtree search surface filters registration sample_consensus segmentation ) ++FIND_PACKAGE(PCL 1.7 REQUIRED COMPONENTS common io kdtree search surface filters registration sample_consensus segmentation ) + ENDIF() + if(PCL_COMPILE_OPTIONS) + if("${PCL_COMPILE_OPTIONS}" MATCHES "-march=native") +@@ -250,9 +250,9 @@ else() + endif() + endif() + +-FIND_PACKAGE(ZLIB REQUIRED QUIET) ++FIND_PACKAGE(ZLIB REQUIRED ) + +-FIND_PACKAGE(SQLite3 QUIET) ++FIND_PACKAGE(SQLite3 REQUIRED) + IF(SQLite3_FOUND) + MESSAGE(STATUS "Found SQLite3: ${SQLite3_INCLUDE_DIRS} ${SQLite3_LIBRARIES}") + ENDIF(SQLite3_FOUND) +@@ -264,8 +264,8 @@ endif() + + # OpenMP ("-fopenmp" should be added for flann included in PCL) + # the gcc-4.2.1 coming with MacOS X is not compatible with the OpenMP pragmas we use, so disabling OpenMP for it +-if(((NOT APPLE) OR (NOT CMAKE_COMPILER_IS_GNUCXX) OR (GCC_VERSION VERSION_GREATER 4.2.1) OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")) AND WITH_OPENMP) +- find_package(OpenMP COMPONENTS C CXX) ++if(WITH_OPENMP) ++ find_package(OpenMP REQUIRED COMPONENTS C CXX) + endif() + if(OPENMP_FOUND) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") +@@ -292,7 +292,7 @@ ENDIF(ZLIB_FOUND) + + SET(ADD_VTK_GUI_SUPPORT_QT_TO_CONF FALSE) + IF(WITH_QT) +- FIND_PACKAGE(VTK) ++ FIND_PACKAGE(VTK REQUIRED) + IF(NOT VTK_FOUND) + MESSAGE(FATAL_ERROR "VTK is required when using Qt. Set -DWITH_QT=OFF if you don't want gui tools.") + ENDIF(NOT VTK_FOUND) +@@ -310,29 +310,29 @@ IF(WITH_QT) + + MESSAGE(STATUS "VTK>=9 detected, will use VTK_QT_VERSION=${VTK_QT_VERSION} for Qt version.") + IF(${VTK_QT_VERSION} EQUAL 6) +- FIND_PACKAGE(Qt6 COMPONENTS Widgets Core Gui OpenGL PrintSupport QUIET OPTIONAL_COMPONENTS Svg) ++ FIND_PACKAGE(Qt6 REQUIRED COMPONENTS Widgets Core Gui OpenGL PrintSupport Svg) + ELSEIF(${VTK_QT_VERSION} EQUAL 5) +- FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui OpenGL PrintSupport QUIET OPTIONAL_COMPONENTS Svg) ++ FIND_PACKAGE(Qt5 REQUIRED COMPONENTS Widgets Core Gui OpenGL PrintSupport Svg) + ELSE() +- FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui OPTIONAL_COMPONENTS QtSvg) ++ FIND_PACKAGE(Qt4 REQUIRED COMPONENTS QtCore QtGui QtSvg) + ENDIF() + ELSE() + # look for Qt5 (if vtk>5 is installed) before Qt4 + IF("${VTK_MAJOR_VERSION}" GREATER 5) + IF(RTABMAP_QT_VERSION STREQUAL "AUTO" OR RTABMAP_QT_VERSION STREQUAL "5") +- FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui OpenGL PrintSupport QUIET OPTIONAL_COMPONENTS Svg) ++ FIND_PACKAGE(Qt5 REQUIRED COMPONENTS Widgets Core Gui OpenGL PrintSupport Svg) + ENDIF(RTABMAP_QT_VERSION STREQUAL "AUTO" OR RTABMAP_QT_VERSION STREQUAL "5") + ENDIF("${VTK_MAJOR_VERSION}" GREATER 5) + + IF(NOT Qt5_FOUND) + IF(RTABMAP_QT_VERSION STREQUAL "AUTO" OR RTABMAP_QT_VERSION STREQUAL "4") +- FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui OPTIONAL_COMPONENTS QtSvg) ++ FIND_PACKAGE(Qt4 REQUIRED COMPONENTS QtCore QtGui QtSvg) + ENDIF(RTABMAP_QT_VERSION STREQUAL "AUTO" OR RTABMAP_QT_VERSION STREQUAL "4") + ENDIF(NOT Qt5_FOUND) + ENDIF() +- ++ + IF(QT4_FOUND OR Qt5_FOUND OR Qt6_FOUND) +- # For VCPKG build, set those global variables to off, ++ # For VCPKG build, set those global variables to off, + # we will enable them for jsut specific targets + set(CMAKE_AUTOMOC OFF) + set(CMAKE_AUTORCC OFF) +@@ -391,14 +391,14 @@ IF(NOT VTK_FOUND) + ENDIF(NOT VTK_FOUND) + + IF(WITH_TORCH) +- FIND_PACKAGE(Torch QUIET) ++ FIND_PACKAGE(Torch REQUIRED) + IF(TORCH_FOUND) + MESSAGE(STATUS "Found Torch: ${TORCH_INCLUDE_DIRS}") + ENDIF(TORCH_FOUND) + ENDIF(WITH_TORCH) + + IF(WITH_PYTHON) +- FIND_PACKAGE(Python3 COMPONENTS Interpreter Development NumPy) ++ FIND_PACKAGE(Python3 REQUIRED COMPONENTS Interpreter Development NumPy) + IF(Python3_FOUND) + MESSAGE(STATUS "Found Python3") + FIND_PACKAGE(pybind11 REQUIRED) +@@ -406,28 +406,28 @@ IF(WITH_PYTHON) + ENDIF(WITH_PYTHON) + + IF(WITH_PDAL) +- FIND_PACKAGE(PDAL QUIET) ++ FIND_PACKAGE(PDAL REQUIRED) + IF(PDAL_FOUND) + MESSAGE(STATUS "Found PDAL ${PDAL_VERSION}: ${PDAL_INCLUDE_DIRS}") + ENDIF(PDAL_FOUND) + ENDIF(WITH_PDAL) + + IF(WITH_FREENECT) +- FIND_PACKAGE(Freenect QUIET) ++ FIND_PACKAGE(Freenect REQUIRED) + IF(Freenect_FOUND) + MESSAGE(STATUS "Found Freenect: ${Freenect_INCLUDE_DIRS}") + ENDIF(Freenect_FOUND) + ENDIF(WITH_FREENECT) + + IF(WITH_FREENECT2) +- FIND_PACKAGE(freenect2 QUIET) ++ FIND_PACKAGE(freenect2 REQUIRED) + IF(freenect2_FOUND) + IF(NOT freenect2_INCLUDE_DIRS) + SET(freenect2_INCLUDE_DIRS ${freenect2_INCLUDE_DIR}) + ENDIF(NOT freenect2_INCLUDE_DIRS) + MESSAGE(STATUS "Found freenect2: ${freenect2_INCLUDE_DIRS}") + # Explicitly link to OpenCL (in case of CUDA installed) +- FIND_PACKAGE(OpenCL QUIET) ++ FIND_PACKAGE(OpenCL REQUIRED) + IF(OpenCL_FOUND) + SET(freenect2_LIBRARIES + ${OpenCL_LIBRARIES} +@@ -438,7 +438,7 @@ IF(WITH_FREENECT2) + ENDIF(WITH_FREENECT2) + + IF(WITH_K4W2 AND WIN32) +- FIND_PACKAGE(KinectSDK2 QUIET) ++ FIND_PACKAGE(KinectSDK2 REQUIRED) + IF(KinectSDK2_FOUND) + MESSAGE(STATUS "Found Kinect for Windows 2: ${KinectSDK2_INCLUDE_DIRS}") + ENDIF(KinectSDK2_FOUND) +@@ -446,10 +446,10 @@ ENDIF(WITH_K4W2 AND WIN32) + + IF(WITH_K4A) + IF(WIN32) +- FIND_PACKAGE(K4A QUIET) ++ FIND_PACKAGE(K4A REQUIRED) + ELSE() +- FIND_PACKAGE(k4a QUIET) +- FIND_PACKAGE(k4arecord QUIET) ++ FIND_PACKAGE(k4a REQUIRED) ++ FIND_PACKAGE(k4arecord REQUIRED) + IF(NOT (k4a_FOUND AND k4arecord_FOUND)) + SET(k4a_FOUND FALSE) + ENDIF(NOT (k4a_FOUND AND k4arecord_FOUND)) +@@ -461,27 +461,27 @@ ENDIF(WITH_K4A) + + # IF PCL depends on OpenNI2 (already found), ignore WITH_OPENNI2 + IF(WITH_OPENNI2 OR OpenNI2_FOUND) +- FIND_PACKAGE(OpenNI2 QUIET) ++ FIND_PACKAGE(OpenNI2 REQUIRED) + IF(OpenNI2_FOUND) + MESSAGE(STATUS "Found OpenNI2: ${OpenNI2_INCLUDE_DIRS}") + ENDIF(OpenNI2_FOUND) + ENDIF(WITH_OPENNI2 OR OpenNI2_FOUND) + + IF(WITH_DC1394) +- FIND_PACKAGE(DC1394 QUIET) ++ FIND_PACKAGE(DC1394 REQUIRED) + IF(DC1394_FOUND) + MESSAGE(STATUS "Found DC1394: ${DC1394_INCLUDE_DIRS}") + ENDIF(DC1394_FOUND) + ENDIF(WITH_DC1394) + + IF(WITH_G2O) +- FIND_PACKAGE(g2o NO_MODULE) ++ FIND_PACKAGE(g2o REQUIRED NO_MODULE) + IF(g2o_FOUND) + MESSAGE(STATUS "Found g2o (targets)") + SET(G2O_FOUND ${g2o_FOUND}) + get_target_property(G2O_INCLUDES g2o::core INTERFACE_INCLUDE_DIRECTORIES) + MESSAGE(STATUS "g2o include dir: ${G2O_INCLUDES}") +- FIND_FILE(G2O_FACTORY_FILE g2o/core/factory.h ++ FIND_FILE(G2O_FACTORY_FILE g2o/core/factory.h + PATHS ${G2O_INCLUDES} + NO_DEFAULT_PATH) + FILE(READ ${G2O_FACTORY_FILE} TMPTXT) +@@ -494,7 +494,7 @@ IF(WITH_G2O) + SET(G2O_CPP11 1) + ENDIF() + ELSE() +- FIND_PACKAGE(G2O QUIET) ++ FIND_PACKAGE(G2O REQUIRED) + IF(G2O_FOUND) + MESSAGE(STATUS "Found g2o: ${G2O_INCLUDE_DIRS}") + ENDIF(G2O_FOUND) +@@ -503,11 +503,11 @@ ENDIF(WITH_G2O) + + IF(WITH_GTSAM) + # Force config mode to ignore PCL's findGTSAM.cmake file +- FIND_PACKAGE(GTSAM CONFIG QUIET) ++ FIND_PACKAGE(GTSAM CONFIG REQUIRED) + ENDIF(WITH_GTSAM) + + IF(WITH_MRPT) +- FIND_PACKAGE(MRPT COMPONENTS poses QUIET) ++ FIND_PACKAGE(MRPT COMPONENTS poses REQUIRED) + IF(MRPT_FOUND) + message(STATUS "MRPT_VERSION: ${MRPT_VERSION}") + message(STATUS "MRPT_LIBRARIES: ${MRPT_LIBRARIES}") +@@ -515,21 +515,21 @@ IF(WITH_MRPT) + ENDIF(WITH_MRPT) + + IF(WITH_FLYCAPTURE2) +- FIND_PACKAGE(FlyCapture2 QUIET) ++ FIND_PACKAGE(FlyCapture2 REQUIRED) + IF(FlyCapture2_FOUND) + MESSAGE(STATUS "Found FlyCapture2: ${FlyCapture2_INCLUDE_DIRS}") + ENDIF(FlyCapture2_FOUND) + ENDIF(WITH_FLYCAPTURE2) + + IF(WITH_CVSBA) +- FIND_PACKAGE(cvsba QUIET) ++ FIND_PACKAGE(cvsba REQUIRED) + IF(cvsba_FOUND) + MESSAGE(STATUS "Found cvsba: ${cvsba_INCLUDE_DIRS}") + ENDIF(cvsba_FOUND) + ENDIF(WITH_CVSBA) + + IF(WITH_POINTMATCHER) +- find_package(libpointmatcher QUIET) ++ find_package(libpointmatcher REQUIRED) + IF(libpointmatcher_FOUND) + MESSAGE(STATUS "Found libpointmatcher: ${libpointmatcher_INCLUDE_DIRS}") + string(FIND "${libpointmatcher_LIBRARIES}" "libnabo" value) +@@ -554,19 +554,19 @@ IF(libpointmatcher_FOUND OR GTSAM_FOUND) + ENDIF(libpointmatcher_FOUND OR GTSAM_FOUND) + + IF(WITH_CCCORELIB) +- find_package(CCCoreLib QUIET) ++ find_package(CCCoreLib REQUIRED) + IF(CCCoreLib_FOUND) + MESSAGE(STATUS "Found CCCoreLib: ${CCCoreLib_INCLUDE_DIRS}") + ENDIF(CCCoreLib_FOUND) + ENDIF(WITH_CCCORELIB) + + IF(WITH_OPEN3D) +- IF(${CMAKE_VERSION} VERSION_LESS "3.19.0") ++ IF(${CMAKE_VERSION} VERSION_LESS "3.19.0") + MESSAGE(WARNING "Open3D requires CMake version >=3.19 (current is ${CMAKE_VERSION})") + ELSE() + # Build Open3D like this to avoid linker errors in rtabmap: + # cmake -DBUILD_SHARED_LIBS=ON -DGLIBCXX_USE_CXX11_ABI=ON -DCMAKE_BUILD_TYPE=Release .. +- find_package(Open3D QUIET) ++ find_package(Open3D REQUIRED) + IF(Open3D_FOUND) + MESSAGE(STATUS "Found Open3D: ${Open3DINCLUDE_DIRS}") + ENDIF(Open3D_FOUND) +@@ -574,28 +574,28 @@ IF(WITH_OPEN3D) + ENDIF(WITH_OPEN3D) + + IF(WITH_LOAM) +- find_package(loam_velodyne QUIET) ++ find_package(loam_velodyne REQUIRED) + IF(loam_velodyne_FOUND) + MESSAGE(STATUS "Found loam_velodyne: ${loam_velodyne_INCLUDE_DIRS}") + ENDIF(loam_velodyne_FOUND) + ENDIF(WITH_LOAM) + + IF(WITH_FLOAM) +- find_package(floam QUIET) ++ find_package(floam REQUIRED) + IF(floam_FOUND) + MESSAGE(STATUS "Found floam: ${floam_INCLUDE_DIRS}") +- FIND_PACKAGE(Ceres QUIET REQUIRED) ++ FIND_PACKAGE(Ceres REQUIRED) + ENDIF(floam_FOUND) + ENDIF(WITH_FLOAM) + + SET(ZED_FOUND FALSE) + IF(WITH_ZED) +- find_package(ZED 2 QUIET) +- ++ find_package(ZED 2 REQUIRED) ++ + IF(ZED_FOUND) + MESSAGE(STATUS "Found ZED sdk: ${ZED_INCLUDE_DIRS}") + ## look for CUDA +- find_package(CUDA) ++ find_package(CUDA REQUIRED) + IF(CUDA_FOUND) + MESSAGE(STATUS "Found CUDA: ${CUDA_INCLUDE_DIRS}") + ELSE() +@@ -605,11 +605,11 @@ IF(WITH_ZED) + ENDIF(WITH_ZED) + + IF(WITH_ZEDOC) +- find_package(ZEDOC QUIET) ++ find_package(ZEDOC REQUIRED) + IF(ZEDOC_FOUND) + MESSAGE(STATUS "Found ZED Open Capture: ${ZEDOC_INCLUDE_DIRS}") + ## look for HIDAPI +- find_package(HIDAPI) ++ find_package(HIDAPI REQUIRED) + IF(HIDAPI_FOUND) + MESSAGE(STATUS "Found HIDAPI: ${HIDAPI_INCLUDE_DIRS}") + ELSE() +@@ -620,9 +620,9 @@ ENDIF(WITH_ZEDOC) + + IF(WITH_REALSENSE) + IF(WITH_REALSENSE_SLAM) +- FIND_PACKAGE(RealSense QUIET COMPONENTS slam) ++ FIND_PACKAGE(RealSense REQUIRED COMPONENTS slam) + ELSE() +- FIND_PACKAGE(RealSense QUIET) ++ FIND_PACKAGE(RealSense REQUIRED) + ENDIF() + IF(RealSense_FOUND) + MESSAGE(STATUS "Found RealSense: ${RealSense_INCLUDE_DIRS}") +@@ -634,9 +634,9 @@ ENDIF(WITH_REALSENSE) + + IF(WITH_REALSENSE2) + IF(WIN32) +- FIND_PACKAGE(RealSense2 QUIET) ++ FIND_PACKAGE(RealSense2 REQUIRED) + ELSE() +- FIND_PACKAGE(realsense2 QUIET) ++ FIND_PACKAGE(realsense2 REQUIRED) + ENDIF() + IF(realsense2_FOUND) + MESSAGE(STATUS "Found RealSense2: ${realsense2_INCLUDE_DIRS}") +@@ -644,21 +644,21 @@ IF(WITH_REALSENSE2) + ENDIF(WITH_REALSENSE2) + + IF(WITH_MYNTEYE) +- FIND_PACKAGE(mynteye QUIET) ++ FIND_PACKAGE(mynteye REQUIRED) + IF(mynteye_FOUND) + MESSAGE(STATUS "Found mynteye-s: ${mynteye_INCLUDE_DIRS}") + ENDIF(mynteye_FOUND) + ENDIF(WITH_MYNTEYE) + + IF(WITH_DEPTHAI) +- FIND_PACKAGE(depthai 2 QUIET) ++ FIND_PACKAGE(depthai 2 REQUIRED) + IF(depthai_FOUND) + MESSAGE(STATUS "Found depthai-core (targets)") + ENDIF(depthai_FOUND) + ENDIF(WITH_DEPTHAI) + + IF(WITH_OCTOMAP) +- FIND_PACKAGE(octomap QUIET) ++ FIND_PACKAGE(octomap REQUIRED) + IF(octomap_FOUND) + MESSAGE(STATUS "Found octomap ${octomap_VERSION}: ${OCTOMAP_INCLUDE_DIRS}") + IF(octomap_VERSION VERSION_LESS 1.8) +@@ -668,35 +668,35 @@ IF(WITH_OCTOMAP) + ENDIF(WITH_OCTOMAP) + + IF(WITH_GRIDMAP) +- FIND_PACKAGE(grid_map_core QUIET) ++ FIND_PACKAGE(grid_map_core REQUIRED) + IF(grid_map_core_FOUND) + MESSAGE(STATUS "Found grid_map_core ${grid_map_core_VERSION}: ${grid_map_core_INCLUDE_DIRS}") + ENDIF(grid_map_core_FOUND) + ENDIF(WITH_GRIDMAP) + + IF(WITH_CPUTSDF) +- FIND_PACKAGE(CPUTSDF QUIET) ++ FIND_PACKAGE(CPUTSDF REQUIRED) + IF(CPUTSDF_FOUND) + MESSAGE(STATUS "Found CPUTSDF: ${CPUTSDF_INCLUDE_DIRS}") + ENDIF(CPUTSDF_FOUND) + ENDIF(WITH_CPUTSDF) + + IF(WITH_OPENCHISEL) +- find_package(open_chisel QUIET) ++ find_package(open_chisel REQUIRED) + if(open_chisel_FOUND) + MESSAGE(STATUS "Found open_chisel: ${open_chisel_INCLUDE_DIRS}") + endif(open_chisel_FOUND) + ENDIF(WITH_OPENCHISEL) + + IF(WITH_ALICE_VISION) +- find_package(AliceVision CONFIG QUIET) ++ find_package(AliceVision CONFIG REQUIRED) + IF(AliceVision_FOUND) + IF(${AliceVision_VERSION} VERSION_LESS_EQUAL "2.2") + find_package(Boost COMPONENTS log log_setup container REQUIRED) + ENDIF(${AliceVision_VERSION} VERSION_LESS_EQUAL "2.2") + SET(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};/usr/local/lib/cmake/modules") +- find_package(Geogram REQUIRED QUIET) +- find_package(assimp QUIET) ++ find_package(Geogram REQUIRED) ++ find_package(assimp REQUIRED) + add_definitions("-DRTABMAP_ALICE_VISION_MAJOR=${AliceVision_VERSION_MAJOR}") + add_definitions("-DRTABMAP_ALICE_VISION_MINOR=${AliceVision_VERSION_MINOR}") + add_definitions("-DRTABMAP_ALICE_VISION_PATCH=${AliceVision_VERSION_PATCH}") +@@ -704,28 +704,28 @@ IF(WITH_ALICE_VISION) + ENDIF(WITH_ALICE_VISION) + + IF(WITH_FOVIS) +- FIND_PACKAGE(libfovis QUIET) ++ FIND_PACKAGE(libfovis REQUIRED) + IF(libfovis_FOUND) + MESSAGE(STATUS "Found libfovis: ${libfovis_INCLUDE_DIRS}") + ENDIF(libfovis_FOUND) + ENDIF(WITH_FOVIS) + + IF(WITH_VISO2) +- FIND_PACKAGE(libviso2 QUIET) ++ FIND_PACKAGE(libviso2 REQUIRED) + IF(libviso2_FOUND) + MESSAGE(STATUS "Found libviso2: ${libviso2_INCLUDE_DIRS}") + ENDIF(libviso2_FOUND) + ENDIF(WITH_VISO2) + + IF(WITH_DVO) +- FIND_PACKAGE(dvo_core QUIET) ++ FIND_PACKAGE(dvo_core REQUIRED) + IF(dvo_core_FOUND) + MESSAGE(STATUS "Found dvo_core: ${dvo_core_INCLUDE_DIRS}") + ENDIF(dvo_core_FOUND) + ENDIF(WITH_DVO) + + IF(WITH_OKVIS) +- FIND_PACKAGE(okvis 1.1 QUIET) ++ FIND_PACKAGE(okvis 1.1 REQUIRED) + IF(okvis_FOUND) + MESSAGE(STATUS "Found okvis: ${OKVIS_INCLUDE_DIRS}") + find_package(brisk 2 REQUIRED) +@@ -740,7 +740,7 @@ ENDIF(WITH_OKVIS) + # If built with okvis, we found already ceres above + IF(WITH_CERES) + IF(NOT okvis_FOUND AND NOT floam_FOUND) +- FIND_PACKAGE(Ceres QUIET) ++ FIND_PACKAGE(Ceres REQUIRED) + MESSAGE(STATUS "Found ceres ${Ceres_VERSION}: ${CERES_INCLUDE_DIRS}") + ENDIF(NOT okvis_FOUND AND NOT floam_FOUND) + ELSEIF(Ceres_FOUND) +@@ -748,14 +748,14 @@ ELSEIF(Ceres_FOUND) + ENDIF() + + IF(WITH_MSCKF_VIO) +- FIND_PACKAGE(msckf_vio QUIET) ++ FIND_PACKAGE(msckf_vio REQUIRED) + IF(msckf_vio_FOUND) + MESSAGE(STATUS "Found msckf_vio: ${msckf_vio_INCLUDE_DIRS}") + ENDIF(msckf_vio_FOUND) + ENDIF(WITH_MSCKF_VIO) + + IF(WITH_VINS) +- FIND_PACKAGE(vins QUIET) ++ FIND_PACKAGE(vins REQUIRED) + IF(vins_FOUND) + MESSAGE(STATUS "Found vins: ${vins_INCLUDE_DIRS}") + IF(okvis_FOUND) +@@ -765,28 +765,28 @@ IF(WITH_VINS) + ENDIF(WITH_VINS) + + IF(WITH_OPENVINS) +- FIND_PACKAGE(ov_msckf QUIET) ++ FIND_PACKAGE(ov_msckf REQUIRED) + IF(ov_msckf_FOUND) + MESSAGE(STATUS "Found ov_msckf: ${ov_msckf_INCLUDE_DIRS}") + ENDIF(ov_msckf_FOUND) + ENDIF(WITH_OPENVINS) + + IF(WITH_FASTCV) +- FIND_PACKAGE(FastCV QUIET) ++ FIND_PACKAGE(FastCV REQUIRED) + IF(FastCV_FOUND) + MESSAGE(STATUS "Found FastCV: ${FastCV_INCLUDE_DIRS}") + ENDIF(FastCV_FOUND) + ENDIF(WITH_FASTCV) + + IF(WITH_OPENGV) +- FIND_PACKAGE(opengv QUIET) ++ FIND_PACKAGE(opengv REQUIRED) + IF(opengv_FOUND) + MESSAGE(STATUS "Found OpenGV: ${opengv_INCLUDE_DIRS}") + ENDIF(opengv_FOUND) + ENDIF(WITH_OPENGV) + + IF(WITH_ORB_SLAM AND NOT G2O_FOUND) +- FIND_PACKAGE(ORB_SLAM QUIET) ++ FIND_PACKAGE(ORB_SLAM REQUIRED) + IF(ORB_SLAM_FOUND) + MESSAGE(STATUS "Found ORB_SLAM${ORB_SLAM_VERSION}: ${ORB_SLAM_INCLUDE_DIRS}") + ENDIF(ORB_SLAM_FOUND) +--- a/app/android/CMakeLists.txt ++++ b/app/android/CMakeLists.txt +@@ -5,25 +5,25 @@ option(WITH_ARENGINE "Include AREngine support" ON) + option(DISABLE_LOG "Disable Android logging (should be true in release)" ON) + option(DEPTH_TEST "Enable depth test on ARCore" OFF) + +-# Google Tango needs access to system shared +-# libraries (e.g. libbinder.so) that are not accessible ++# Google Tango needs access to system shared ++# libraries (e.g. libbinder.so) that are not accessible + # with android >=24 + IF(WITH_TANGO AND ${ANDROID_NATIVE_API_LEVEL} LESS 24) +- FIND_PACKAGE(Tango QUIET) ++ FIND_PACKAGE(Tango REQUIRED) + IF(Tango_FOUND) + MESSAGE(STATUS "Found Tango: ${Tango_INCLUDE_DIRS}") + ENDIF(Tango_FOUND) + ENDIF(WITH_TANGO AND ${ANDROID_NATIVE_API_LEVEL} LESS 24) + + IF(WITH_ARCORE AND ${ANDROID_NATIVE_API_LEVEL} GREATER 22) +- FIND_PACKAGE(ARCore QUIET) ++ FIND_PACKAGE(ARCore REQUIRED) + IF(ARCore_FOUND) + MESSAGE(STATUS "Found ARCore: ${ARCore_INCLUDE_DIRS}") + ENDIF(ARCore_FOUND) + ENDIF(WITH_ARCORE AND ${ANDROID_NATIVE_API_LEVEL} GREATER 22) + + IF(WITH_ARENGINE AND ${ANDROID_NATIVE_API_LEVEL} GREATER 23) +- FIND_PACKAGE(AREngine QUIET) ++ FIND_PACKAGE(AREngine REQUIRED) + IF(AREngine_FOUND) + MESSAGE(STATUS "Found AREngine: ${AREngine_INCLUDE_DIRS}") + ENDIF(AREngine_FOUND) +--- a/cmake_modules/FindEigen3.cmake ++++ b/cmake_modules/FindEigen3.cmake +@@ -71,16 +71,16 @@ if (EIGEN3_INCLUDE_DIR) + set(Eigen3_FOUND ${EIGEN3_VERSION_OK}) + + else () +- ++ + # search first if an Eigen3Config.cmake is available in the system, + # if successful this would set EIGEN3_INCLUDE_DIR and the rest of + # the script will work as usual +- find_package(Eigen3 ${Eigen3_FIND_VERSION} NO_MODULE QUIET) ++ find_package(Eigen3 ${Eigen3_FIND_VERSION} NO_MODULE REQUIRED) + + if(NOT EIGEN3_INCLUDE_DIR) + find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library + HINTS +- ENV EIGEN3_ROOT ++ ENV EIGEN3_ROOT + ENV EIGEN3_ROOT_DIR + PATHS + ${CMAKE_INSTALL_PREFIX}/include +--- a/cmake_modules/FindHIDAPI.cmake ++++ b/cmake_modules/FindHIDAPI.cmake +@@ -75,7 +75,7 @@ if(NOT "${HIDAPI_FIND_COMPONENTS}") + endif() + + # Ask pkg-config for hints +-find_package(PkgConfig QUIET) ++find_package(PkgConfig REQUIRED) + if(PKG_CONFIG_FOUND) + set(_old_prefix_path "${CMAKE_PREFIX_PATH}") + # So pkg-config uses HIDAPI_ROOT_DIR too. +@@ -116,7 +116,7 @@ find_path( + PATH_SUFFIXES hidapi include include/hidapi + HINTS ${PC_HIDAPI_HIDRAW_INCLUDE_DIRS} ${PC_HIDAPI_LIBUSB_INCLUDE_DIRS}) + +-find_package(Threads QUIET) ++find_package(Threads REQUIRED) + + ### + # Compute the "I don't care which backend" library +--- a/cmake_modules/FindORB_SLAM.cmake ++++ b/cmake_modules/FindORB_SLAM.cmake +@@ -33,7 +33,7 @@ IF (ORB_SLAM_INCLUDE_DIR AND ORB_SLAM_LIBRARY AND DBoW2_LIBRARY AND g2o_INCLUDE_ + SET(ORB_SLAM_LIBRARIES ${g2o_LIBRARY} ${ORB_SLAM_LIBRARY} ${DBoW2_LIBRARY}) + ENDIF (ORB_SLAM_INCLUDE_DIR AND ORB_SLAM_LIBRARY AND DBoW2_LIBRARY AND g2o_INCLUDE_DIR AND g2o_LIBRARY) + +-FIND_PACKAGE(Pangolin QUIET) ++FIND_PACKAGE(Pangolin REQUIRED) + IF(NOT Pangolin_FOUND) + SET(ORB_SLAM_FOUND FALSE) + MESSAGE(STATUS "Found ORB_SLAM but not Pangolin, disabling ORB_SLAM.") +@@ -54,4 +54,3 @@ ELSE (ORB_SLAM_FOUND) + MESSAGE(FATAL_ERROR "Could not find ORB_SLAM") + ENDIF (ORB_SLAM_FIND_REQUIRED) + ENDIF (ORB_SLAM_FOUND) +- +--- a/corelib/src/CMakeLists.txt ++++ b/corelib/src/CMakeLists.txt +@@ -167,13 +167,11 @@ SET(LIBRARIES + # Issue that qhull dependency uses optimized and debug keywords, + # which are converted to \$<\$> and \$<\$ + # in RTABMap_coreTargets.cmake (not sure why?!). +-list(REMOVE_ITEM PCL_LIBRARIES "debug" "optimized") + SET(PUBLIC_LIBRARIES + ${OpenCV_LIBS} + ${PCL_LIBRARIES} + ) + +-IF(SQLite3_FOUND) + SET(INCLUDE_DIRS + ${INCLUDE_DIRS} + ${SQLite3_INCLUDE_DIRS} +@@ -182,16 +180,7 @@ IF(SQLite3_FOUND) + ${LIBRARIES} + ${SQLite3_LIBRARIES} + ) +-ELSE() +- SET(SRC_FILES +- ${SRC_FILES} +- sqlite3/sqlite3.c +- ) +- SET(INCLUDE_DIRS +- ${CMAKE_CURRENT_SOURCE_DIR}/sqlite3 +- ${INCLUDE_DIRS} +- ) +-ENDIF() ++ + + IF(TORCH_FOUND) + SET(LIBRARIES +@@ -748,8 +734,8 @@ IF(GTSAM_FOUND) + ) + IF(WIN32) + #explicitly add metis target on windows (after gtsam target) +- SET(LIBRARIES +- ${LIBRARIES} ++ SET(PUBLIC_LIBRARIES ++ ${PUBLIC_LIBRARIES} + metis + ) + ENDIF(WIN32) +--- a/utilite/resource_generator/CMakeLists.txt ++++ b/utilite/resource_generator/CMakeLists.txt +@@ -1,5 +1,5 @@ + +-if (CMAKE_CROSSCOMPILING OR ANDROID OR IOS) ++if (TRUE) + # See this page about tools being required in the build: + # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/CrossCompiling#using-executables-in-the-build-created-during-the-build + diff --git a/ports/rtabmap/fix_link.patch b/ports/rtabmap/0002-fix-link.patch similarity index 79% rename from ports/rtabmap/fix_link.patch rename to ports/rtabmap/0002-fix-link.patch index 77681a0501..6d329a9f6b 100644 --- a/ports/rtabmap/fix_link.patch +++ b/ports/rtabmap/0002-fix-link.patch @@ -1,5 +1,3 @@ -diff --git a/corelib/src/global_map/OctoMap.cpp b/corelib/src/global_map/OctoMap.cpp -index d4c22499..87acefcd 100644 --- a/corelib/src/global_map/OctoMap.cpp +++ b/corelib/src/global_map/OctoMap.cpp @@ -278,10 +278,8 @@ RtabmapColorOcTree::StaticMemberInitializer::StaticMemberInitializer() { diff --git a/ports/rtabmap/multi-definition.patch b/ports/rtabmap/0003-multi-definition.patch similarity index 93% rename from ports/rtabmap/multi-definition.patch rename to ports/rtabmap/0003-multi-definition.patch index 94c02f47dd..12cfe93225 100644 --- a/ports/rtabmap/multi-definition.patch +++ b/ports/rtabmap/0003-multi-definition.patch @@ -1,5 +1,3 @@ -diff --git a/corelib/include/rtabmap/core/stereo/stereoRectifyFisheye.h b/corelib/include/rtabmap/core/stereo/stereoRectifyFisheye.h -index 2fc12a2..a719512 100644 --- a/corelib/include/rtabmap/core/stereo/stereoRectifyFisheye.h +++ b/corelib/include/rtabmap/core/stereo/stereoRectifyFisheye.h @@ -39,6 +39,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @@ -91,8 +89,6 @@ index 2fc12a2..a719512 100644 } -diff --git a/corelib/src/StereoCameraModel.cpp b/corelib/src/StereoCameraModel.cpp -index 421d3f4..e7c166c 100644 --- a/corelib/src/StereoCameraModel.cpp +++ b/corelib/src/StereoCameraModel.cpp @@ -34,6 +34,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/ports/rtabmap/0004-fix-manfold-typo.patch b/ports/rtabmap/0004-fix-manfold-typo.patch new file mode 100644 index 0000000000..f1272ae01c --- /dev/null +++ b/ports/rtabmap/0004-fix-manfold-typo.patch @@ -0,0 +1,11 @@ +--- a/corelib/src/optimizer/OptimizerCeres.cpp ++++ b/corelib/src/optimizer/OptimizerCeres.cpp +@@ -197,7 +197,7 @@ std::map OptimizerCeres::optimize( + + if(angle_local_manifold == NULL) + { +- angle_local_manifold = ceres::examples::AngleManfold::Create(); ++ angle_local_manifold = ceres::examples::AngleManifold::Create(); + } + SetCeresProblemManifold(problem, &pose_begin_iter->second.yaw_radians, angle_local_manifold); + SetCeresProblemManifold(problem, &pose_end_iter->second.yaw_radians, angle_local_manifold); diff --git a/ports/rtabmap/0005-fix-opencv3-aruco.patch b/ports/rtabmap/0005-fix-opencv3-aruco.patch new file mode 100644 index 0000000000..32a2fbb047 --- /dev/null +++ b/ports/rtabmap/0005-fix-opencv3-aruco.patch @@ -0,0 +1,14 @@ +--- a/corelib/src/MarkerDetector.cpp ++++ b/corelib/src/MarkerDetector.cpp +@@ -380,11 +380,7 @@ std::map MarkerDetector::detect(const cv::Mat & image, + std::map::iterator iter = detections.find(ids[i]); + if(iter!=detections.end()) + { +-#if CV_MAJOR_VERSION > 4 || (CV_MAJOR_VERSION == 4 && (CV_MINOR_VERSION >1 || (CV_MINOR_VERSION==1 && CV_PATCH_VERSION>=1))) + cv::drawFrameAxes(*imageWithDetections, model.K(), model.D(), rvecs[i], tvecs[i], iter->second.length() * 0.5f); +-#else +- cv::aruco::drawAxis(*imageWithDetections, model.K(), model.D(), rvecs[i], tvecs[i], iter->second.length() * 0.5f); +-#endif + } + } + } diff --git a/ports/rtabmap/apple.patch b/ports/rtabmap/0006-remove-apple-sys-path.patch similarity index 81% rename from ports/rtabmap/apple.patch rename to ports/rtabmap/0006-remove-apple-sys-path.patch index 1af23670de..692b08e122 100644 --- a/ports/rtabmap/apple.patch +++ b/ports/rtabmap/0006-remove-apple-sys-path.patch @@ -1,5 +1,3 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 024c729..ddb1cae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -119,8 +119,6 @@ endif() diff --git a/ports/rtabmap/fix-find-g2o.patch b/ports/rtabmap/0007-fix-g2o.patch similarity index 84% rename from ports/rtabmap/fix-find-g2o.patch rename to ports/rtabmap/0007-fix-g2o.patch index 05a5971942..4640749c2a 100644 --- a/ports/rtabmap/fix-find-g2o.patch +++ b/ports/rtabmap/0007-fix-g2o.patch @@ -1,18 +1,16 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 5957a50..829a268 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -473,30 +473,7 @@ IF(WITH_DC1394) ENDIF(WITH_DC1394) IF(WITH_G2O) -- FIND_PACKAGE(g2o NO_MODULE) +- FIND_PACKAGE(g2o REQUIRED NO_MODULE) - IF(g2o_FOUND) - MESSAGE(STATUS "Found g2o (targets)") - SET(G2O_FOUND ${g2o_FOUND}) - get_target_property(G2O_INCLUDES g2o::core INTERFACE_INCLUDE_DIRECTORIES) - MESSAGE(STATUS "g2o include dir: ${G2O_INCLUDES}") -- FIND_FILE(G2O_FACTORY_FILE g2o/core/factory.h +- FIND_FILE(G2O_FACTORY_FILE g2o/core/factory.h - PATHS ${G2O_INCLUDES} - NO_DEFAULT_PATH) - FILE(READ ${G2O_FACTORY_FILE} TMPTXT) @@ -25,7 +23,7 @@ index 5957a50..829a268 100644 - SET(G2O_CPP11 1) - ENDIF() - ELSE() -- FIND_PACKAGE(G2O QUIET) +- FIND_PACKAGE(G2O REQUIRED) - IF(G2O_FOUND) - MESSAGE(STATUS "Found g2o: ${G2O_INCLUDE_DIRS}") - ENDIF(G2O_FOUND) @@ -34,8 +32,6 @@ index 5957a50..829a268 100644 ENDIF(WITH_G2O) IF(WITH_GTSAM) -diff --git a/corelib/src/CMakeLists.txt b/corelib/src/CMakeLists.txt -index c85acc1..d071f79 100644 --- a/corelib/src/CMakeLists.txt +++ b/corelib/src/CMakeLists.txt @@ -392,12 +392,10 @@ ENDIF(WITH_TORO) diff --git a/ports/rtabmap/ceres-manifold.patch b/ports/rtabmap/ceres-manifold.patch deleted file mode 100644 index e84d463e84..0000000000 --- a/ports/rtabmap/ceres-manifold.patch +++ /dev/null @@ -1,114 +0,0 @@ -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 --#include -+#include - #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 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::const_iterator iter=edgeConstraints.begin(); iter!=edgeConstraints.end(); ++iter) - { -@@ -168,8 +168,8 @@ std::map 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 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 -- 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 -+ 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); -+ static ceres::Manifold* Create() { -+ return (new ceres::AutoDiffManifold); - } - }; - -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, diff --git a/ports/rtabmap/gklib.patch b/ports/rtabmap/gklib.patch deleted file mode 100644 index 2a66fcba18..0000000000 --- a/ports/rtabmap/gklib.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- 0.21.4.1-44dcfeb2ff/corelib/src/CMakeLists.txt.old 2024-04-12 09:59:07.656980900 +0200 -+++ 0.21.4.1-44dcfeb2ff/corelib/src/CMakeLists.txt 2024-04-12 09:59:46.701218300 +0200 -@@ -747,8 +747,8 @@ IF(GTSAM_FOUND) - ) - IF(WIN32) - #explicitly add metis target on windows (after gtsam target) -- SET(LIBRARIES -- ${LIBRARIES} -+ SET(PUBLIC_LIBRARIES -+ ${PUBLIC_LIBRARIES} - metis - ) - ENDIF(WIN32) diff --git a/ports/rtabmap/link-keywords.patch b/ports/rtabmap/link-keywords.patch deleted file mode 100644 index 891266d274..0000000000 --- a/ports/rtabmap/link-keywords.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/corelib/src/CMakeLists.txt b/corelib/src/CMakeLists.txt -index 6a4a9ab..85ede4e 100644 ---- a/corelib/src/CMakeLists.txt -+++ b/corelib/src/CMakeLists.txt -@@ -167,7 +167,6 @@ SET(LIBRARIES - # Issue that qhull dependency uses optimized and debug keywords, - # which are converted to \$<\$> and \$<\$ - # in RTABMap_coreTargets.cmake (not sure why?!). --list(REMOVE_ITEM PCL_LIBRARIES "debug" "optimized") - SET(PUBLIC_LIBRARIES - ${OpenCV_LIBS} - ${PCL_LIBRARIES} diff --git a/ports/rtabmap/portfile.cmake b/ports/rtabmap/portfile.cmake index a0ddc75b17..de5159fdb2 100644 --- a/ports/rtabmap/portfile.cmake +++ b/ports/rtabmap/portfile.cmake @@ -1,3 +1,15 @@ +vcpkg_download_distfile(CERES_21_PATCH_1 + URLS https://patch-diff.githubusercontent.com/raw/introlab/rtabmap/pull/1405.patch + SHA512 c586885683807b3a3853fd09f46942f1599c8d3c3869388338cab97f0c09f51bf55726aad62ee883fbe3ce1734ab3c4c2e23a8ea7f2e5c01e0a7df8f9dc1e94b + FILENAME rtabmap-1405.patch +) + +vcpkg_download_distfile(CERES_21_PATCH_2 + URLS https://patch-diff.githubusercontent.com/raw/introlab/rtabmap/pull/1437.patch + SHA512 d5400fdfd35594912af0d463e360a2b79739d18d4eb487f81486af67bc80e4c2d26c3bf3b94dbb51dfa159bb02a70196c6d42c9aca4b789b0026c009b1645296 + FILENAME rtabmap-1437.patch +) + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO introlab/rtabmap @@ -5,18 +17,20 @@ vcpkg_from_github( SHA512 2b424f5b6458cf0f976e711985708f104b56d11921c9c43c6a837f9d3dc9e9e802308f1aa2b6d0e7e6ddf13623ff1ad2922b5f54254d16ee5811e786d27b9f98 HEAD_REF master PATCHES - apple.patch - fix_link.patch - link-keywords.patch - multi-definition.patch - rtabmap-res-tool.patch - gklib.patch - ceres-manifold.patch - fix-find-g2o.patch + ${CERES_21_PATCH_1} + ${CERES_21_PATCH_2} + 0001-cmakelists-fixes.patch + 0002-fix-link.patch + 0003-multi-definition.patch + 0004-fix-manfold-typo.patch + 0005-fix-opencv3-aruco.patch + 0006-remove-apple-sys-path.patch + 0007-fix-g2o.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES + openmp WITH_OPENMP gui WITH_QT k4w2 WITH_K4W2 octomap WITH_OCTOMAP @@ -34,13 +48,17 @@ vcpkg_cmake_configure( -DBUILD_APP=OFF OPTIONS ${FEATURE_OPTIONS} + "-DRTABMAP_RES_TOOL=${CURRENT_HOST_INSTALLED_DIR}/tools/rtabmap-res-tool/rtabmap-res_tool${VCPKG_TARGET_EXECUTABLE_SUFFIX}" + -DRTABMAP_QT_VERSION=6 -DBUILD_AS_BUNDLE=OFF -DBUILD_EXAMPLES=OFF - -DRTABMAP_QT_VERSION=6 - "-DRTABMAP_RES_TOOL=${CURRENT_HOST_INSTALLED_DIR}/tools/rtabmap-res-tool/rtabmap-res_tool${VCPKG_TARGET_EXECUTABLE_SUFFIX}" + ## always on feats + -DWITH_G2O=ON + -DWITH_CERES=ON + -DWITH_ORB_OCTREE=ON # GPLv3 + ## always off feats -DWITH_ALICE_VISION=OFF -DWITH_CCCORELIB=OFF - -DWITH_CERES=ON -DWITH_CPUTSDF=OFF -DWITH_CVSBA=OFF -DWITH_DC1394=OFF @@ -51,24 +69,25 @@ vcpkg_cmake_configure( -DWITH_FOVIS=OFF -DWITH_FREENECT=OFF -DWITH_FREENECT2=OFF - -DWITH_G2O=ON + -DWITH_GRIDMAP=OFF -DWITH_GTSAM=OFF -DWITH_K4A=OFF -DWITH_LOAM=OFF -DWITH_MADGWICK=OFF + -DWITH_MRPT=OFF -DWITH_MSCKF_VIO=OFF -DWITH_MYNTEYE=OFF -DWITH_OKVIS=OFF -DWITH_OPENCHISEL=OFF + -DWITH_OPENGV=OFF -DWITH_OPENVINS=OFF - -DWITH_ORB_OCTREE=ON # GPLv3 -DWITH_ORB_SLAM=OFF -DWITH_PDAL=OFF -DWITH_POINTMATCHER=OFF - -DWITH_PYTHON_THREADING=OFF -DWITH_PYTHON=OFF - -DWITH_REALSENSE_SLAM=OFF + -DWITH_PYTHON_THREADING=OFF -DWITH_REALSENSE=OFF + -DWITH_REALSENSE_SLAM=OFF -DWITH_TORCH=OFF -DWITH_VERTIGO=OFF -DWITH_VINS=OFF @@ -114,6 +133,7 @@ if("tools" IN_LIST FEATURES) rtabmap-calibration rtabmap-databaseViewer rtabmap-dataRecorder + rtabmap-lidar_viewer rtabmap-odometryViewer rtabmap-rgbd_camera AUTO_CLEAN @@ -128,5 +148,5 @@ vcpkg_install_copyright( The RTAB-Map main license is BSD-3-Clause, but some parts of the source code are under other licenses possibly including GPL-3.0-only. ]] - FILE_LIST "${SOURCE_PATH}/LICENSE" + FILE_LIST "${SOURCE_PATH}/LICENSE" ) diff --git a/ports/rtabmap/rtabmap-res-tool.patch b/ports/rtabmap/rtabmap-res-tool.patch deleted file mode 100644 index 6d72bcaaf8..0000000000 --- a/ports/rtabmap/rtabmap-res-tool.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --git a/utilite/resource_generator/CMakeLists.txt b/utilite/resource_generator/CMakeLists.txt -index 82f1253..eedab31 100644 ---- a/utilite/resource_generator/CMakeLists.txt -+++ b/utilite/resource_generator/CMakeLists.txt -@@ -1,5 +1,5 @@ - --if (CMAKE_CROSSCOMPILING OR ANDROID OR IOS) -+if (RTABMAP_RES_TOOL) - # See this page about tools being required in the build: - # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/CrossCompiling#using-executables-in-the-build-created-during-the-build - diff --git a/ports/rtabmap/sqlite3.patch b/ports/rtabmap/sqlite3.patch deleted file mode 100644 index 5dcf2f6461..0000000000 --- a/ports/rtabmap/sqlite3.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1ecd3ae..024c729 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -252,10 +252,10 @@ endif() - - FIND_PACKAGE(ZLIB REQUIRED QUIET) - --FIND_PACKAGE(Sqlite3 QUIET) --IF(Sqlite3_FOUND) -- MESSAGE(STATUS "Found Sqlite3: ${Sqlite3_INCLUDE_DIRS} ${Sqlite3_LIBRARIES}") --ENDIF(Sqlite3_FOUND) -+FIND_PACKAGE(SQLite3 QUIET) -+IF(SQLite3_FOUND) -+ MESSAGE(STATUS "Found Sqlite3: ${SQLite3_INCLUDE_DIRS} ${SQLite3_LIBRARIES}") -+ENDIF(SQLite3_FOUND) - - if(NOT "${PCL_LIBRARIES}" STREQUAL "") - # fix libproj.so not found on Xenial -@@ -1332,7 +1332,7 @@ ELSE() - MESSAGE(STATUS " With Qt = NO (Qt not found)") - ENDIF() - --IF(Sqlite3_FOUND) -+IF(SQLite3_FOUND) - MESSAGE(STATUS " With external SQLite3 = YES (License: Public Domain)") - ELSE() - MESSAGE(STATUS " With external SQLite3 = NO (sqlite3 not found, internal version is used for convenience)") ---- a/corelib/src/CMakeLists.txt -+++ b/corelib/src/CMakeLists.txt -@@ -173,14 +173,14 @@ SET(PUBLIC_LIBRARIES - ${PCL_LIBRARIES} - ) - --IF(Sqlite3_FOUND) -+IF(SQLite3_FOUND) - SET(INCLUDE_DIRS - ${INCLUDE_DIRS} -- ${Sqlite3_INCLUDE_DIRS} -+ ${SQLite3_INCLUDE_DIRS} - ) - SET(LIBRARIES - ${LIBRARIES} -- ${Sqlite3_LIBRARIES} -+ ${SQLite3_LIBRARIES} - ) - ELSE() - SET(SRC_FILES diff --git a/ports/rtabmap/vcpkg.json b/ports/rtabmap/vcpkg.json index 172663a521..6d46168723 100644 --- a/ports/rtabmap/vcpkg.json +++ b/ports/rtabmap/vcpkg.json @@ -1,7 +1,7 @@ { "name": "rtabmap", "version": "0.21.4.1", - "port-version": 4, + "port-version": 5, "description": "Real-Time Appearance-Based Mapping", "homepage": "https://introlab.github.io/rtabmap/", "license": null, @@ -10,7 +10,12 @@ "g2o", { "name": "opencv", - "default-features": false + "default-features": false, + "features": [ + "fs", + "intrinsics", + "thread" + ] }, { "name": "pcl", @@ -35,7 +40,10 @@ "gui", "opencv-contrib", "opencv-nonfree", - "tools" + { + "name": "openmp", + "platform": "!osx" + } ], "features": { "gui": { @@ -83,7 +91,10 @@ "name": "opencv", "default-features": false, "features": [ - "contrib" + "contrib", + "fs", + "intrinsics", + "thread" ] } ] @@ -95,7 +106,10 @@ "name": "opencv", "default-features": false, "features": [ - "cuda" + "cuda", + "fs", + "intrinsics", + "thread" ] } ] @@ -107,11 +121,17 @@ "name": "opencv", "default-features": false, "features": [ - "nonfree" + "fs", + "intrinsics", + "nonfree", + "thread" ] } ] }, + "openmp": { + "description": "Enable OpenMP parallel execution" + }, "openni2": { "description": "Build RTAB-Map with OpenNI2 camera driver", "dependencies": [ diff --git a/ports/selene/vcpkg.json b/ports/selene/vcpkg.json index 745aab397e..238e4aac22 100644 --- a/ports/selene/vcpkg.json +++ b/ports/selene/vcpkg.json @@ -1,7 +1,7 @@ { "name": "selene", "version": "0.3.1", - "port-version": 7, + "port-version": 8, "description": "A C++17 image representation, processing and I/O library.", "homepage": "https://github.com/kmhofmann/selene", "dependencies": [ @@ -27,7 +27,12 @@ "dependencies": [ { "name": "opencv", - "default-features": false + "default-features": false, + "features": [ + "fs", + "intrinsics", + "thread" + ] } ] } diff --git a/scripts/test_ports/vcpkg-ci-opencv/vcpkg.json b/scripts/test_ports/vcpkg-ci-opencv/vcpkg.json index 43e744c857..5c114bb061 100644 --- a/scripts/test_ports/vcpkg-ci-opencv/vcpkg.json +++ b/scripts/test_ports/vcpkg-ci-opencv/vcpkg.json @@ -1,10 +1,118 @@ { "name": "vcpkg-ci-opencv", - "version-string": "1", - "port-version": 6, + "version-string": "ci", "description": "Port to force features of certain ports within CI", "homepage": "https://github.com/microsoft/vcpkg", "dependencies": [ + { + "name": "opencv", + "default-features": false, + "features": [ + "ade", + "calib3d", + "contrib", + "eigen", + "ffmpeg", + "fs", + "highgui", + "intrinsics", + "jpeg", + "nonfree", + "png", + "quirc", + "thread", + "tiff" + ] + }, + { + "name": "opencv", + "default-features": false, + "features": [ + "openmp" + ], + "platform": "!osx" + }, + { + "name": "opencv", + "default-features": false, + "features": [ + "opencl", + "openexr" + ], + "platform": "!uwp" + }, + { + "name": "opencv", + "default-features": false, + "features": [ + "dnn", + "webp" + ], + "platform": "!android" + }, + { + "name": "opencv", + "default-features": false, + "features": [ + "directml", + "dshow", + "msmf", + "win32ui" + ], + "platform": "windows & !uwp" + }, + { + "name": "opencv", + "default-features": false, + "features": [ + "tbb" + ], + "platform": "!uwp & !static" + }, + { + "name": "opencv", + "default-features": false, + "features": [ + "gapi", + "gstreamer", + "python" + ], + "platform": "!uwp & !(windows & static) & !android" + }, + { + "name": "opencv", + "default-features": false, + "features": [ + "ovis" + ], + "platform": "!uwp & !android & !(windows & static)" + }, + { + "name": "opencv", + "default-features": false, + "features": [ + "cuda", + "cudnn", + "dnn-cuda" + ], + "platform": "(windows & x64 & !uwp) | (linux & x64) | (linux & arm64)" + }, + { + "name": "opencv", + "default-features": false, + "features": [ + "freetype", + "gdcm", + "ipp", + "opengl", + "openjpeg", + "qt", + "sfm", + "vtk", + "vulkan" + ], + "platform": "!uwp & !android & !(windows & (arm | arm64)) & !(osx & arm64)" + }, { "name": "opencv2", "default-features": false, @@ -35,8 +143,7 @@ "nonfree", "png", "quirc", - "tiff", - "webp" + "tiff" ] }, { @@ -51,7 +158,8 @@ "name": "opencv3", "default-features": false, "features": [ - "dnn" + "dnn", + "webp" ], "platform": "!android" }, @@ -59,12 +167,20 @@ "name": "opencv3", "default-features": false, "features": [ - "gstreamer", + "msmf", "ovis", "tbb" ], "platform": "windows & x64 & !static & !uwp" }, + { + "name": "opencv3", + "default-features": false, + "features": [ + "gstreamer" + ], + "platform": "!uwp & !android & !(windows & static)" + }, { "name": "opencv3", "default-features": false, @@ -80,85 +196,6 @@ "vtk" ], "platform": "!uwp & !android & !(windows & (arm | arm64)) & !(osx & arm64)" - }, - { - "name": "opencv", - "default-features": false, - "features": [ - "ade", - "calib3d", - "contrib", - "eigen", - "ffmpeg", - "fs", - "highgui", - "intrinsics", - "jpeg", - "nonfree", - "png", - "quirc", - "thread", - "tiff", - "webp" - ] - }, - { - "name": "opencv", - "default-features": false, - "features": [ - "openmp" - ], - "platform": "!osx" - }, - { - "name": "opencv", - "default-features": false, - "features": [ - "dnn" - ], - "platform": "!android" - }, - { - "name": "opencv", - "default-features": false, - "features": [ - "gapi", - "python" - ], - "platform": "!uwp & !(windows & static) & !android" - }, - { - "name": "opencv", - "default-features": false, - "features": [ - "cuda", - "cudnn", - "dnn-cuda", - "dshow", - "gstreamer", - "opencl", - "ovis", - "tbb", - "win32ui" - ], - "platform": "windows & x64 & !static & !uwp" - }, - { - "name": "opencv", - "default-features": false, - "features": [ - "freetype", - "gdcm", - "ipp", - "jasper", - "opengl", - "openjpeg", - "qt", - "sfm", - "vtk", - "vulkan" - ], - "platform": "!uwp & !android & !(windows & (arm | arm64)) & !(osx & arm64)" } ] } diff --git a/versions/baseline.json b/versions/baseline.json index a8182e3308..3a6d58f73e 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2434,7 +2434,7 @@ }, "dv-processing": { "baseline": "1.7.9", - "port-version": 2 + "port-version": 3 }, "dx": { "baseline": "1.0.1", @@ -4346,7 +4346,7 @@ }, "libcaer": { "baseline": "3.3.15", - "port-version": 1 + "port-version": 2 }, "libcanberra": { "baseline": "0.30", @@ -5234,7 +5234,7 @@ }, "libtorch": { "baseline": "2.1.2", - "port-version": 10 + "port-version": 11 }, "libtorrent": { "baseline": "2.0.11", @@ -6674,19 +6674,19 @@ }, "opencv": { "baseline": "4.10.0", - "port-version": 1 + "port-version": 2 }, "opencv2": { "baseline": "2.4.13.7", - "port-version": 23 + "port-version": 24 }, "opencv3": { - "baseline": "3.4.18", - "port-version": 18 + "baseline": "3.4.20", + "port-version": 0 }, "opencv4": { "baseline": "4.10.0", - "port-version": 4 + "port-version": 5 }, "opendnp3": { "baseline": "3.1.1", @@ -6722,7 +6722,7 @@ }, "openimageio": { "baseline": "3.0.1.0", - "port-version": 0 + "port-version": 1 }, "openjpeg": { "baseline": "2.5.3", @@ -8074,7 +8074,7 @@ }, "rtabmap": { "baseline": "0.21.4.1", - "port-version": 4 + "port-version": 5 }, "rtabmap-res-tool": { "baseline": "0.21.4.1", @@ -8310,7 +8310,7 @@ }, "selene": { "baseline": "0.3.1", - "port-version": 7 + "port-version": 8 }, "sentencepiece": { "baseline": "0.2.0", diff --git a/versions/d-/dv-processing.json b/versions/d-/dv-processing.json index 347f6a3339..362690c02f 100644 --- a/versions/d-/dv-processing.json +++ b/versions/d-/dv-processing.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "c9f6d34b0c8bf130b8e0b2427f01055376ff655d", + "version": "1.7.9", + "port-version": 3 + }, { "git-tree": "2ef0b75d6a6ec6e9472d1bb3c227d13d0e40a2db", "version": "1.7.9", diff --git a/versions/l-/libcaer.json b/versions/l-/libcaer.json index 8740283ca9..63157be929 100644 --- a/versions/l-/libcaer.json +++ b/versions/l-/libcaer.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "f449b707f18bd7376d452b96f134a18df5a1c166", + "version": "3.3.15", + "port-version": 2 + }, { "git-tree": "45485054e1276ff51ad1ec68a8c31de0ecf9d795", "version": "3.3.15", diff --git a/versions/l-/libtorch.json b/versions/l-/libtorch.json index bf8ec57c1e..36e182fc97 100644 --- a/versions/l-/libtorch.json +++ b/versions/l-/libtorch.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "fd1df22a6d49dd8ee2f0ab6fddd65edb100abe65", + "version": "2.1.2", + "port-version": 11 + }, { "git-tree": "7307f8c37b266aeb61d83e069740e75cff863bf6", "version": "2.1.2", diff --git a/versions/o-/opencv.json b/versions/o-/opencv.json index 3a7bc10221..a55a01b3c9 100644 --- a/versions/o-/opencv.json +++ b/versions/o-/opencv.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "22a0035d6e4154c97495125f9482180d7810fe91", + "version": "4.10.0", + "port-version": 2 + }, { "git-tree": "0dc6a7294025798c43392c03fad8b1d3988452f8", "version": "4.10.0", diff --git a/versions/o-/opencv2.json b/versions/o-/opencv2.json index 3718e66390..a55cbbf903 100644 --- a/versions/o-/opencv2.json +++ b/versions/o-/opencv2.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "cd24bcc821a685ba7e30b4abb448f283c389688e", + "version": "2.4.13.7", + "port-version": 24 + }, { "git-tree": "3f6e0e9284c3322d77f763afac30430204aea42e", "version": "2.4.13.7", diff --git a/versions/o-/opencv3.json b/versions/o-/opencv3.json index 1e840518bf..f6197787c6 100644 --- a/versions/o-/opencv3.json +++ b/versions/o-/opencv3.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "9058081f84a29712d9758047d0decc6dd61439f3", + "version": "3.4.20", + "port-version": 0 + }, { "git-tree": "6bf296df32bf8778694001c36db690d34636e214", "version": "3.4.18", diff --git a/versions/o-/opencv4.json b/versions/o-/opencv4.json index 60546d55dd..273478c295 100644 --- a/versions/o-/opencv4.json +++ b/versions/o-/opencv4.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "176f72c465d0770b93bc5c394d4993de54ad9c71", + "version": "4.10.0", + "port-version": 5 + }, { "git-tree": "b9a95c54a6fae1d214c521ed83a8afb3cce98b5a", "version": "4.10.0", diff --git a/versions/o-/openimageio.json b/versions/o-/openimageio.json index 4deca29c2a..38c5088001 100644 --- a/versions/o-/openimageio.json +++ b/versions/o-/openimageio.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "cc63b8dfcea4e354d5b945aa08caa47895294e5f", + "version": "3.0.1.0", + "port-version": 1 + }, { "git-tree": "4e944cfc15c3d5a1ca39466a141c8a6c26153a3a", "version": "3.0.1.0", diff --git a/versions/r-/rtabmap.json b/versions/r-/rtabmap.json index 22a77095a8..17333342a3 100644 --- a/versions/r-/rtabmap.json +++ b/versions/r-/rtabmap.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "f9cc8a57658a2f7b313e7361fc0f9b5ff8db0be6", + "version": "0.21.4.1", + "port-version": 5 + }, { "git-tree": "8095952b0fbd2d24600e3314c345184503634e8f", "version": "0.21.4.1", diff --git a/versions/s-/selene.json b/versions/s-/selene.json index 8b6e7d26d5..2eb5a485ff 100644 --- a/versions/s-/selene.json +++ b/versions/s-/selene.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "c7de57f1b1327897f060edc9140862472bb10df0", + "version": "0.3.1", + "port-version": 8 + }, { "git-tree": "39599ec4b29856e7ed1db2c4aeb11ad491edf0a3", "version": "0.3.1",