Adding OpenGV as submodule (optional) and use Github actions for windows CI (#1656)

* Adding OpenGV as submodule (optional)

* Remove submodule to migrate to FetchContent

* using FetchContent

* remove empty .gitmodules

* Fixing OpenGV not able to find eigen on windows

* patching opengv to adjust -march=native based on PCL

* fixing patching on windows

* eigen fix

* PR cancel on-going CI builds if new commit is added to PR

* try another approach

* updating patch with some logs

* more debug mesage

* fixing EIGEN_INCLUDE_DIR

* enable rolling_builds on appveyor

* removed rolling_builds appveyor

* fixing eigen cache

* test

* more debug logs

* another try

* cleanup

* updated appveyor to work with fetchcontent

* removed mkdir build (appveyor)

* appveyor: trying ninja to increase CI speed

* removed mkdr

* appveyor: spitting opengv and rtabmap builds to be under 60 min per job

* appveyor: caching dependencies

* using global configuration

* using baked image

* fixing wget in ps

* fixing not support for

* pip error

* reverted pip install

* fixed realsense cache

* fixing multi step build

* removing baked image

* typo

* Windows: Converted appveyor to github actions

* updated boost version

* fixing boost

* udpated  boost config

* boost...

* platform_version

* install boost directly

* silent boost install

* very silent boost

* fixing ls

* added boost install dir

* showing boost install dir

* moved windows dependencies in external action file

* explicitly save boost cache to same time on iterations

* pip install gdown

* update

* caching more deps

* caching all depts

* removed explicit boost cache save

* mscv 14.0

* forcing building visual studio 14 2015

* installing v12 in 2022 instead

* setup cmd prompt

* init right toolset

* fixing system version for opengv compilation error

* fixing package and artifact

* CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION

* removing cmd

* find manually psapi.lib

* resolve

* refactor psapi env

* forcing 10.0.19041.0

* using windows=2022 runner instead

* added vcpkg

* commenting windows-latest for now

* trying vcpkg instead

* search path

* updated path

* moved json

* removed deleted file for git

* adding a real version

* using version-string

* cleanup vcpkg

* building artifacts with vcpkg

* removed old windows build approach, added custom dependencies (gtsam, libpointmatcher) to vcpkg build

* udpated vcpkg version for issue https://github.com/microsoft/vcpkg/pull/49103

* try with minimal dep first

* disable opengv for now

* try vcpkg single compilation

* space

* updated link

* fixed qupote

* fixing cache name

* adding debug folder

* adjust path

* adjust path

* providing vcpkg binaries instead

* ident

* added triplet

* added BOOST_ROOT

* boost root

* boost root

* fixed path

* adding eigen headers

* try path

* cmake prefix path

* boost timer def

* libnabo fixes

* pointmatcher prefix

* disabling pointmathcer tests

* updated cmake parameters

* changed how file is downloaded

* trying curl instead

* puttoing backe InvokeWeb because it is a dropbox issue

* skipping optional deps for now

* ficing env variable

* triplet

* installing triplets

* not overriding default vcpkg env variables

* missing path

* manifet install off

* that was working locally

* missing protobuf path

* fixing tiff not found

* fixing vtk not found

* more vtk fixes

* another thy

* changing download url

* updated url

* try

* shoudl work now

* protobuf exe

* readding tiff

* explicit vcpkg installed folder

* missing commands

* try without tiff

* ficing vtk comple path

* -DPSAPI_LIBRARIES=Psapi.lib

* quoting

* fixing psapi required

* Set up MSVC Developer Command Prompt

* disabling pckaging for now

* openni.ini

* renabling packing

* Added stripped deps

* fix name

* updated binaries

* format

* updated opengv eigen path

* added tbb dep

* updatd archive name with vs version

* updated archive in action

* fixing patch error

* corrupted

* updated gtsam version / vcpkg

* removed appveyor. Set internal opengv build disabled by defaut (because build can be very long on some machines), will enable it inside the ros release branches instead.

* updated opengv patch

* gtsam mkl dep

* updated vcpkg binaries

* updated patches

* removed mkl dep

* missing eigen in gtsam dep

* disabling gtsam till we find a compatible version locally

* all working locally!

* removed ninja

* working python calls

* fixed hard symlink for python3.dll

* fixed qt missing png, fixed opengv not finding eigen with config, fixed python3.dll missing

* fixed flaoting dockwidget on start, removed cmd line window when launching bundled app

* use sub-packages cudnn

* Added cuda dev workflow

* fixed archive name

* Updated deps with pytorch cuda

* updating ci PATH

* fixing ci build without torch

* rename cuda artifacts

* cache cuda, add job to test internal opengv build

* Updated output artifacts zip name

* windows package: only zip on pull request

* Change USE_INTERNAL_OPENGV to BUILD_OPENGV

* use use-github-cache

* updated artifacts path
This commit is contained in:
matlabbe
2026-03-15 14:57:27 -07:00
committed by GitHub
parent 8051be45b3
commit 018b804a46
29 changed files with 3409 additions and 1473 deletions

224
vcpkg.json Normal file
View File

@@ -0,0 +1,224 @@
{
"name": "rtabmap",
"version-string": "latest",
"$baseline_comment": [
"`builtin-baseline` pins the vcpkg *registry snapshot* (a commit in the vcpkg repo).",
"Currently matching gtsam's vcpkg version.",
"Current commit is from 2026-01-16."
],
"builtin-baseline": "66c0373dc7fca549e5803087b9487edfe3aca0a1",
"description": "Real-Time Appearance-Based Mapping",
"homepage": "https://introlab.github.io/rtabmap/",
"license": null,
"dependencies": [
"boost-crc",
"ceres",
"g2o",
{
"name": "opencv",
"default-features": false,
"features": [
"fs",
"intrinsics",
"thread"
]
},
{
"name": "pcl",
"default-features": false
},
{
"name": "rtabmap-res-tool",
"host": true
},
"sqlite3",
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
},
"zlib"
],
"default-features": [
"gui",
"opencv-contrib",
"opencv-nonfree",
{
"name": "openmp",
"platform": "!osx"
},
{
"name": "tbb",
"platform": "!osx"
}
],
"features": {
"gtsam-deps": {
"description": "Build GTSAM's dependencies (based on official vcpkg.json file in gtsam repo). Removed pybind11 and mkl.",
"dependencies": [
"tbb",
"geographiclib",
"eigen3",
"boost-concept-check",
"boost-fusion",
"boost-graph",
"boost-move",
"boost-optional",
"boost-phoenix",
"boost-pool",
"boost-program-options",
"boost-random",
"boost-range",
"boost-serialization",
"boost-smart-ptr",
"boost-spirit",
"boost-timer",
"boost-tokenizer",
"boost-type-traits"
]
},
"gui": {
"description": "Build RTAB-Map with GUI support (Qt)",
"dependencies": [
{
"name": "pcl",
"default-features": false,
"features": [
"qt",
"visualization"
]
},
{
"name": "qtbase",
"default-features": false,
"features": [
"gui",
"opengl",
"widgets",
"png"
]
},
{
"name": "vtk",
"default-features": false
}
]
},
"k4w2": {
"description": "Build RTAB-Map with Kinect For Windows SDK 2.0 camera driver",
"dependencies": [
"kinectsdk2"
]
},
"libpointmatcher-deps": {
"description": "Build libpointmatcher's dependencies",
"dependencies": [
"boost-assign",
"boost-format",
"boost-program-options",
"boost-timer"
]
},
"octomap": {
"description": "Build RTAB-Map with OctoMap support",
"dependencies": [
"octomap"
]
},
"opencv-contrib": {
"description": "Use OpenCV with contrib modules (e.g., xfeatures2d, aruco)",
"dependencies": [
{
"name": "opencv",
"default-features": false,
"features": [
"contrib",
"fs",
"intrinsics",
"thread"
]
}
]
},
"opencv-cuda": {
"description": "Use OpenCV with CUDA (accelerated SIFT ad SURF GPU options)",
"dependencies": [
{
"name": "opencv",
"default-features": false,
"features": [
"cuda",
"fs",
"intrinsics",
"thread"
]
}
]
},
"opencv-nonfree": {
"description": "Use OpenCV with nonfree module (surf feature)",
"dependencies": [
{
"name": "opencv",
"default-features": false,
"features": [
"fs",
"intrinsics",
"nonfree",
"thread"
]
}
]
},
"python": {
"description": "Build RTAB-Map with python support",
"dependencies": [
"pybind11"
]
},
"tbb": {
"description": "Include TBB (for opencv and gtsam-deps)",
"dependencies": [
"tbb",
{
"name": "opencv",
"default-features": false,
"features": [
"fs",
"intrinsics",
"tbb",
"thread"
]
}
]
},
"openmp": {
"description": "Enable OpenMP parallel execution"
},
"openni2": {
"description": "Build RTAB-Map with OpenNI2 camera driver",
"dependencies": [
"kinectsdk1",
"openni2"
]
},
"realsense2": {
"description": "Build RTAB-Map with RealSense2 camera driver",
"dependencies": [
{
"name": "realsense2",
"default-features": false
}
]
},
"tools": {
"description": "Build RTAB-Map's tools",
"dependencies": [
"yaml-cpp"
]
}
}
}