mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
* Windows CI: more sensor drivers + Windows/macOS bundle scripts * added opengv to mac build * windows bundle fixes * zed extra neural ddl in separate package * OpenGV macos eigen version error * opengv macos build issues
419 lines
16 KiB
Batchfile
419 lines
16 KiB
Batchfile
@echo off
|
|
setlocal enabledelayedexpansion
|
|
|
|
:: --- CONFIGURATION ---
|
|
set "VCPKG_ROOT=%~dp0vcpkg"
|
|
set "EXPORT_DIR=%~dp0vcpkg_binaries"
|
|
:: All deps downloaded/built from source (git clones + the pinned CMake) live here.
|
|
set "SRC_DIR=%~dp0vcpkg_deps_from_source"
|
|
set "TRIPLET=x64-windows-release"
|
|
set "SEVENZIP_EXE=C:\Program Files\7-Zip\7z.exe"
|
|
|
|
set "VCPKG_JSON=%~dp0vcpkg.json"
|
|
for /f "usebackq tokens=*" %%a in (`powershell -NoProfile -Command "(Get-Content '%VCPKG_JSON%' -Raw | ConvertFrom-Json).'builtin-baseline'"` ) do set "VCPKG_COMMIT=%%a"
|
|
echo [+] Detected VCPKG baseline commit: %VCPKG_COMMIT%
|
|
|
|
if "%VCPKG_COMMIT%"=="" (
|
|
echo [X] Error: Could not find 'builtin-baseline' in %VCPKG_JSON%
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
set VCPKG_COMMIT_SHORT=%VCPKG_COMMIT:~0,8%
|
|
|
|
:: 1. Setup Local vcpkg
|
|
if not exist "%VCPKG_ROOT%" (
|
|
echo [+] Local vcpkg not found. Cloning...
|
|
git clone https://github.com/microsoft/vcpkg.git "%VCPKG_ROOT%"
|
|
)
|
|
pushd "%VCPKG_ROOT%"
|
|
git checkout %VCPKG_COMMIT%
|
|
call .\bootstrap-vcpkg.bat
|
|
popd
|
|
|
|
:: 2. Install vcpkg dependencies
|
|
echo [+] Installing dependencies via vcpkg manifest...
|
|
"%VCPKG_ROOT%\vcpkg.exe" install ^
|
|
--triplet=%TRIPLET% ^
|
|
--host-triplet=%TRIPLET% ^
|
|
--clean-after-build ^
|
|
--x-feature=tools ^
|
|
--x-feature=k4w2 ^
|
|
--x-feature=octomap ^
|
|
--x-feature=openmp ^
|
|
--x-feature=realsense2 ^
|
|
--x-feature=openni2 ^
|
|
--x-feature=gtsam-deps ^
|
|
--x-feature=python ^
|
|
--x-feature=libpointmatcher-deps ^
|
|
--x-feature=libfreenect2-deps || exit /b !errorlevel!
|
|
|
|
:: 3. Export
|
|
echo [+] Exporting built binaries to raw folder...
|
|
set "VS_LOCATOR=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
|
|
for /f "usebackq tokens=*" %%i in (`"%VS_LOCATOR%" -latest -property catalog_productLineVersion`) do set VS_YEAR=vs%%i
|
|
set TARGET_NAME=vcpkg-export-%VCPKG_COMMIT_SHORT%-x64-%VS_YEAR%
|
|
set TARGET_FULL_PATH=%EXPORT_DIR%\%TARGET_NAME%
|
|
if exist "%TARGET_FULL_PATH%" rd /s /q "%TARGET_FULL_PATH%"
|
|
"%VCPKG_ROOT%\vcpkg.exe" export --raw --output-dir="%EXPORT_DIR%" --output=%TARGET_NAME% --triplet=%TRIPLET% || exit /b !errorlevel!
|
|
set "FINAL_EXPORT_PATH=%TARGET_FULL_PATH%"
|
|
|
|
echo [+] Add numpy...
|
|
:: We install numpy<2 to be compatible with SuperPoint and SuperGlue scripts
|
|
%FINAL_EXPORT_PATH%/installed/%TRIPLET%/tools/python3/python.exe -m ensurepip --upgrade || exit /b %errorlevel%
|
|
%FINAL_EXPORT_PATH%/installed/%TRIPLET%/tools/python3/python.exe -m pip install --upgrade pip || exit /b !errorlevel!
|
|
%FINAL_EXPORT_PATH%/installed/%TRIPLET%/tools/python3/python.exe -m pip install "numpy<2" || exit /b !errorlevel!
|
|
|
|
:: 4. Other dependencies not in vcpkg
|
|
:: Everything cloned/downloaded below goes into %SRC_DIR% to keep the repo root clean.
|
|
if not exist "%SRC_DIR%" mkdir "%SRC_DIR%"
|
|
cd /d "%SRC_DIR%"
|
|
|
|
:: Kinect for Windows SDK v2 (k4w2): rtabmap's FindKinectSDK2.cmake expects the
|
|
:: Microsoft SDK layout (KINECTSDK20_DIR\inc and \Lib\x64), but vcpkg's kinectsdk2
|
|
:: port installs vcpkg-style (include\ and lib\). Mirror the bundled headers/lib into
|
|
:: the expected layout so it is found with KINECTSDK20_DIR pointing at the export.
|
|
if "%KINECTSDK20_DIR%"=="" (
|
|
echo Error: KINECTSDK20_DIR environment variable is not set! Install Kinect for Windows SDK v2: https://www.microsoft.com/en-us/download/details.aspx?id=44561
|
|
pause
|
|
exit /b 1
|
|
)
|
|
echo [+] Arranging Kinect SDK v2 layout for FindKinectSDK2...
|
|
set "K4W2_ROOT=%FINAL_EXPORT_PATH%\installed\%TRIPLET%"
|
|
robocopy "%K4W2_ROOT%\include" "%K4W2_ROOT%\inc" Kinect*.h Nui*.h /XO >nul
|
|
robocopy "%K4W2_ROOT%\lib" "%K4W2_ROOT%\Lib\x64" Kinect20*.lib /XO >nul
|
|
robocopy "%KINECTSDK20_DIR%\bin" "%K4W2_ROOT%\bin" Kinect20.dll /XO >nul
|
|
:: Robocopy exit codes under 8 mean successful copies/no changes; 8+ is a failure.
|
|
if !errorlevel! GEQ 8 (
|
|
echo Error: Robocopy failed with exit code !errorlevel!
|
|
pause
|
|
exit /b !errorlevel!
|
|
)
|
|
|
|
:: orbbec SDK2
|
|
echo [+] Building OrbbecSDK_v2...
|
|
if not exist OrbbecSDK_v2 (
|
|
echo [+] Downloading and applying patch...
|
|
git clone https://github.com/orbbec/OrbbecSDK_v2.git
|
|
cd OrbbecSDK_v2
|
|
git checkout v2.8.7
|
|
:: Install the CMake package config under lib/cmake/<pkg> so find_package(OrbbecSDK) works
|
|
git apply "%~dp0patches\orbbecsdk_2.8.7.patch"
|
|
cd ..
|
|
)
|
|
cd OrbbecSDK_v2
|
|
cmake -S . -B build -GNinja ^
|
|
-DVCPKG_MANIFEST_INSTALL=OFF ^
|
|
-DVCPKG_TARGET_TRIPLET=x64-windows-release ^
|
|
-DVCPKG_INSTALLED_DIR="%FINAL_EXPORT_PATH%\installed" ^
|
|
-DCMAKE_TOOLCHAIN_FILE="%FINAL_EXPORT_PATH%\scripts\buildsystems\vcpkg.cmake" ^
|
|
-DCMAKE_INSTALL_PREFIX="%FINAL_EXPORT_PATH%\installed\%TRIPLET%" ^
|
|
-DCMAKE_BUILD_TYPE=Release ^
|
|
-DOB_BUILD_DOCS=OFF ^
|
|
-DOB_BUILD_EXAMPLES=OFF ^
|
|
-DOB_BUILD_TOOLS=OFF ^
|
|
-DOB_INSTALL_EXAMPLES_SOURCE=OFF || exit /b !errorlevel!
|
|
cmake --build build --config Release --target install || exit /b !errorlevel!
|
|
cd ..
|
|
|
|
if "%K4A_ROOT_DIR%"=="" (
|
|
echo Error: K4A_ROOT_DIR environment variable is not set! Install K4A: https://github.com/microsoft/Azure-Kinect-Sensor-SDK/blob/develop/docs/usage.md
|
|
pause
|
|
exit /b 1
|
|
)
|
|
echo Copying Kinect For Azure components...
|
|
robocopy "%K4A_ROOT_DIR%\sdk" "%FINAL_EXPORT_PATH%\installed\%TRIPLET%\sdk" /E /XO
|
|
:: Robocopy exit codes under 8 mean successful copies/no changes.
|
|
:: 8 or higher means there was a failure.
|
|
if !errorlevel! GEQ 8 (
|
|
echo Error: Robocopy failed with exit code !errorlevel!
|
|
pause
|
|
exit /b !errorlevel!
|
|
)
|
|
|
|
:: libnabo
|
|
echo [+] Building libnabo...
|
|
if not exist libnabo (
|
|
echo [+] Downloading...
|
|
git clone https://github.com/ethz-asl/libnabo.git
|
|
cd libnabo
|
|
:: Jan 27, 2022
|
|
git checkout c925c47
|
|
git apply "%~dp0patches\libnabo_c925c47.patch"
|
|
cd ..
|
|
)
|
|
cd libnabo
|
|
cmake -S . -B build -GNinja ^
|
|
-DVCPKG_MANIFEST_INSTALL=OFF ^
|
|
-DVCPKG_TARGET_TRIPLET=x64-windows-release ^
|
|
-DVCPKG_INSTALLED_DIR="%FINAL_EXPORT_PATH%\installed" ^
|
|
-DCMAKE_TOOLCHAIN_FILE="%FINAL_EXPORT_PATH%\scripts\buildsystems\vcpkg.cmake" ^
|
|
-DCMAKE_INSTALL_PREFIX="%FINAL_EXPORT_PATH%\installed\%TRIPLET%" ^
|
|
-DCMAKE_BUILD_TYPE=Release ^
|
|
-DSHARED_LIBS=FALSE ^
|
|
-DLIBNABO_BUILD_DOXYGEN=OFF ^
|
|
-DLIBNABO_BUILD_EXAMPLES=OFF ^
|
|
-DLIBNABO_BUILD_PYTHON=OFF ^
|
|
-DLIBNABO_BUILD_TESTS=OFF || exit /b !errorlevel!
|
|
cmake --build build --config Release --target install || exit /b !errorlevel!
|
|
cd ..
|
|
|
|
:: libpointmatcher
|
|
echo [+] Building libpointmatcher...
|
|
if not exist libpointmatcher (
|
|
echo [+] Downloading and applying patch...
|
|
git clone https://github.com/ethz-asl/libpointmatcher.git
|
|
cd libpointmatcher
|
|
:: Mar 17, 2023
|
|
git checkout 7dc58e5
|
|
git apply "%~dp0patches\pointmatcher_7dc58e5.patch"
|
|
cd ..
|
|
)
|
|
cd libpointmatcher
|
|
cmake -S . -B build -GNinja ^
|
|
-DVCPKG_MANIFEST_INSTALL=OFF ^
|
|
-DVCPKG_TARGET_TRIPLET=x64-windows-release ^
|
|
-DVCPKG_INSTALLED_DIR="%FINAL_EXPORT_PATH%\installed" ^
|
|
-DCMAKE_TOOLCHAIN_FILE="%FINAL_EXPORT_PATH%\scripts\buildsystems\vcpkg.cmake" ^
|
|
-DCMAKE_INSTALL_PREFIX="%FINAL_EXPORT_PATH%\installed\%TRIPLET%" ^
|
|
-DCMAKE_BUILD_TYPE=Release ^
|
|
-DBUILD_TESTS=OFF ^
|
|
-DBUILD_SHARED_LIBS=ON ^
|
|
-DPOINTMATCHER_BUILD_EVALUATIONS=OFF ^
|
|
-DPOINTMATCHER_BUILD_EXAMPLES=OFF ^
|
|
-DCMAKE_CXX_FLAGS="-DBOOST_TIMER_ENABLE_DEPRECATED /EHsc -DBOOST_EXCEPTION_DISABLE" || exit /b !errorlevel!
|
|
cmake --build build --config Release --target install || exit /b !errorlevel!
|
|
cd ..
|
|
|
|
:: We remove the files in the top-level CMake directory to force use of share/libpointmatcher/cmake
|
|
if exist "%FINAL_EXPORT_PATH%\installed\%TRIPLET%\CMake\" (
|
|
rd /s /q "%FINAL_EXPORT_PATH%\installed\%TRIPLET%\CMake"
|
|
)
|
|
|
|
:: gtsam
|
|
echo [+] Building gtsam...
|
|
if not exist gtsam (
|
|
echo [+] Downloading and applying patch...
|
|
git clone https://github.com/borglab/gtsam.git
|
|
cd gtsam
|
|
:: June 18, 2025
|
|
git checkout 4.3a0-ros
|
|
git cherry-pick 18af4e6
|
|
git apply "%~dp0patches\gtsam_4_3a0-ros.patch"
|
|
cd ..
|
|
)
|
|
cd gtsam
|
|
cmake -S . -B build -GNinja ^
|
|
-DVCPKG_MANIFEST_INSTALL=OFF ^
|
|
-DVCPKG_TARGET_TRIPLET=x64-windows-release ^
|
|
-DVCPKG_INSTALLED_DIR="%FINAL_EXPORT_PATH%\installed" ^
|
|
-DCMAKE_TOOLCHAIN_FILE="%FINAL_EXPORT_PATH%\scripts\buildsystems\vcpkg.cmake" ^
|
|
-DCMAKE_INSTALL_PREFIX="%FINAL_EXPORT_PATH%\installed\%TRIPLET%" ^
|
|
-DCMAKE_BUILD_TYPE=Release ^
|
|
-DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF ^
|
|
-DGTSAM_BUILD_TESTS=OFF ^
|
|
-DGTSAM_BUILD_UNSTABLE=OFF ^
|
|
-DGTSAM_USE_SYSTEM_EIGEN=ON ^
|
|
-DGTSAM_BUILD_WITH_PRECOMPILED_HEADERS=OFF ^
|
|
-DGTSAM_UNSTABLE_BUILD_PYTHON=OFF ^
|
|
-DGTSAM_WITH_EIGEN_MKL=OFF ^
|
|
-DGTSAM_WITH_EIGEN_MKL_OPENMP=OFF ^
|
|
-DCMAKE_CXX_FLAGS="-DBOOST_TIMER_ENABLE_DEPRECATED -DBOOST_BIND_GLOBAL_PLACEHOLDERS" || exit /b !errorlevel!
|
|
cmake --build build --config Release --target install || exit /b !errorlevel!
|
|
cd ..
|
|
|
|
:: opengv
|
|
echo [+] Building opengv...
|
|
if not exist opengv (
|
|
echo [+] Downloading and applying patch...
|
|
git clone https://github.com/laurentkneip/opengv.git
|
|
cd opengv
|
|
:: Aug 6, 2020
|
|
git checkout 91f4b19c73450833a40e463ad3648aae80b3a7f3
|
|
git apply "%~dp0patches\opengv_91f4b19c.patch"
|
|
cd ..
|
|
)
|
|
cd opengv
|
|
cmake -S . -B build -GNinja ^
|
|
-DVCPKG_MANIFEST_INSTALL=OFF ^
|
|
-DVCPKG_TARGET_TRIPLET=x64-windows-release ^
|
|
-DVCPKG_INSTALLED_DIR="%FINAL_EXPORT_PATH%\installed" ^
|
|
-DCMAKE_TOOLCHAIN_FILE="%FINAL_EXPORT_PATH%\scripts\buildsystems\vcpkg.cmake" ^
|
|
-DCMAKE_INSTALL_PREFIX="%FINAL_EXPORT_PATH%\installed\%TRIPLET%" ^
|
|
-DBUILD_TESTS=OFF ^
|
|
-DBUILD_SHARED_LIBS=ON || exit /b !errorlevel!
|
|
cmake --build build --config Release --target install || exit /b !errorlevel!
|
|
cd ..
|
|
|
|
:: libfreenect2
|
|
echo [+] Building libfreenect2...
|
|
if not exist libfreenect2 (
|
|
echo [+] Downloading and applying patch...
|
|
git clone https://github.com/OpenKinect/libfreenect2.git
|
|
cd libfreenect2
|
|
:: Aug 6, 2021
|
|
git checkout v0.2.1
|
|
:: Patch makes freenect2Config.cmake relocatable so the prebuilt bundle works
|
|
:: after being moved/unzipped, drops cudaDeviceProp::clockRate/computeMode
|
|
:: removed in CUDA 13 from the CUDA build, and renames a CL_ICDL_VERSION local
|
|
:: that collides with the OpenCL 3.0 macro.
|
|
git apply "%~dp0patches\libfreenect2_v0.2.1.patch"
|
|
cd ..
|
|
)
|
|
cd libfreenect2
|
|
:: libfreenect2's FindLibUSB.cmake locates libusb via pkg-config. It declares an
|
|
:: ancient cmake_minimum_required (2.8.12), which makes FindPkgConfig default
|
|
:: PKG_CONFIG_USE_CMAKE_PREFIX_PATH=OFF, so it ignores the vcpkg CMAKE_PREFIX_PATH.
|
|
:: Force it ON so the bundle's lib/pkgconfig (libusb-1.0.pc, libturbojpeg.pc) is
|
|
:: searched, use the vcpkg-bundled pkgconf, and also set PKG_CONFIG_PATH as a belt.
|
|
set "PKG_CONFIG_PATH=%FINAL_EXPORT_PATH%\installed\%TRIPLET%\lib\pkgconfig"
|
|
cmake -S . -B build -GNinja ^
|
|
-DVCPKG_MANIFEST_INSTALL=OFF ^
|
|
-DVCPKG_TARGET_TRIPLET=x64-windows-release ^
|
|
-DVCPKG_INSTALLED_DIR="%FINAL_EXPORT_PATH%\installed" ^
|
|
-DCMAKE_TOOLCHAIN_FILE="%FINAL_EXPORT_PATH%\scripts\buildsystems\vcpkg.cmake" ^
|
|
-DPKG_CONFIG_EXECUTABLE="%FINAL_EXPORT_PATH%\installed\%TRIPLET%\tools\pkgconf\pkgconf.exe" ^
|
|
-DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=ON ^
|
|
-DCMAKE_BUILD_TYPE=Release ^
|
|
-DENABLE_CUDA=OFF ^
|
|
-DENABLE_OPENCL=OFF ^
|
|
-DBUILD_EXAMPLES=OFF ^
|
|
-DCMAKE_INSTALL_PREFIX="%FINAL_EXPORT_PATH%\installed\%TRIPLET%" ^
|
|
-DBUILD_SHARED_LIBS=ON || exit /b !errorlevel!
|
|
cmake --build build --config Release --target install || exit /b !errorlevel!
|
|
cd ..
|
|
|
|
:: depthai
|
|
echo [+] Building depthai...
|
|
if not exist depthai-core (
|
|
echo [+] Downloading...
|
|
git clone https://github.com/luxonis/depthai-core.git
|
|
cd depthai-core
|
|
:: depthai 2.32.0 (Hunter-based; v2 does NOT use vcpkg/CMake presets)
|
|
git checkout v2.32.0
|
|
git submodule update --init --recursive
|
|
cd ..
|
|
)
|
|
cd depthai-core
|
|
:: v2 and its old Hunter sub-deps declare cmake_minimum_required < 3.5, which
|
|
:: CMake 4.x rejects, and CMAKE_POLICY_VERSION_MINIMUM does not propagate into
|
|
:: Hunter's sub-builds. Use a pinned CMake 3.x just for depthai (Hunter reuses the
|
|
:: same cmake binary for its dependency sub-builds).
|
|
set "CMAKE3_VER=3.31.12"
|
|
set "CMAKE3_NAME=cmake-%CMAKE3_VER%-windows-x86_64"
|
|
set "CMAKE3_DIR=%SRC_DIR%\%CMAKE3_NAME%"
|
|
set "CMAKE3=%CMAKE3_DIR%\bin\cmake.exe"
|
|
if not exist "%CMAKE3_DIR%" (
|
|
echo [+] Downloading CMake %CMAKE3_VER% ...
|
|
curl -L -o "%SRC_DIR%\%CMAKE3_NAME%.zip" "https://github.com/Kitware/CMake/releases/download/v%CMAKE3_VER%/%CMAKE3_NAME%.zip" || exit /b !errorlevel!
|
|
"%SEVENZIP_EXE%" x "%SRC_DIR%\%CMAKE3_NAME%.zip" -o"%SRC_DIR%" -y || exit /b !errorlevel!
|
|
)
|
|
:: v2 is fully Hunter-managed (no vcpkg toolchain). depthaiDependencies.cmake
|
|
:: unconditionally does find_package(OpenCV 4 QUIET CONFIG) (not gated by
|
|
:: DEPTHAI_OPENCV_SUPPORT); if it finds the bundle's OpenCV, OpenCVModules does
|
|
:: find_dependency(TIFF) which collides with Hunter's config-less FindTIFF. We don't
|
|
:: need depthai's OpenCV at all (CameraDepthAI converts ImgFrame->cv::Mat itself), so
|
|
:: hard-disable the lookup. DEPTHAI_ENABLE_CURL=OFF avoids Hunter's old zlib/curl.
|
|
"%CMAKE3%" -S . -B build -GNinja ^
|
|
-DCMAKE_INSTALL_PREFIX="%FINAL_EXPORT_PATH%\installed\%TRIPLET%" ^
|
|
-DCMAKE_BUILD_TYPE=Release ^
|
|
-DBUILD_SHARED_LIBS=ON ^
|
|
-DDEPTHAI_OPENCV_SUPPORT=OFF ^
|
|
-DCMAKE_DISABLE_FIND_PACKAGE_OpenCV=ON ^
|
|
-DDEPTHAI_ENABLE_CURL=OFF ^
|
|
-DDEPTHAI_BUILD_EXAMPLES=OFF ^
|
|
-DDEPTHAI_BUILD_TESTS=OFF || exit /b !errorlevel!
|
|
"%CMAKE3%" --build build --config Release --target install || exit /b !errorlevel!
|
|
cd ..
|
|
|
|
:: CCCoreLib
|
|
echo [+] Building CCCoreLib...
|
|
if not exist CCCoreLib (
|
|
echo [+] Downloading...
|
|
git clone https://github.com/CloudCompare/CCCoreLib.git
|
|
cd CCCoreLib
|
|
:: June 20, 2026
|
|
git checkout 4095bea6552096cb528c3b8b5cb9505df2aa6002
|
|
git submodule update --init --recursive
|
|
:: nanoflann is an internal dep (only used in src/Kriging.cpp, no public header),
|
|
:: but CCCoreLib links it PUBLIC, leaking nanoflann::nanoflann into the exported
|
|
:: interface and breaking find_package(CCCoreLib). Link it PRIVATE instead.
|
|
git apply "%~dp0patches\cccorelib_4095bea.patch"
|
|
cd ..
|
|
)
|
|
cd CCCoreLib
|
|
cmake -S . -B build -GNinja ^
|
|
-DVCPKG_MANIFEST_INSTALL=OFF ^
|
|
-DVCPKG_TARGET_TRIPLET=x64-windows-release ^
|
|
-DVCPKG_INSTALLED_DIR="%FINAL_EXPORT_PATH%\installed" ^
|
|
-DCMAKE_TOOLCHAIN_FILE="%FINAL_EXPORT_PATH%\scripts\buildsystems\vcpkg.cmake" ^
|
|
-DCMAKE_INSTALL_PREFIX="%FINAL_EXPORT_PATH%\installed\%TRIPLET%" ^
|
|
-DCMAKE_BUILD_TYPE=Release ^
|
|
-DCCCORELIB_SHARED=ON ^
|
|
-DCCCORELIB_USE_CGAL=OFF ^
|
|
-DCCCORELIB_USE_TBB=ON ^
|
|
-DCCCORELIB_USE_QT_CONCURRENT=OFF || exit /b !errorlevel!
|
|
cmake --build build --config Release --target install || exit /b !errorlevel!
|
|
cd ..
|
|
|
|
:: 5. ZIP the folder
|
|
echo [+] Creating final package with 7-Zip...
|
|
:: Rip off pdb files
|
|
cd /d "%FINAL_EXPORT_PATH%"
|
|
del /s /q /f *.pdb >nul 2>&1
|
|
|
|
cd ..
|
|
|
|
set "FINAL_ZIP=%TARGET_NAME%.7z"
|
|
|
|
:: compress contents without the root folder
|
|
"%SEVENZIP_EXE%" u -t7z -mx9 "%FINAL_ZIP%" "%FINAL_EXPORT_PATH%\*" -up0q0
|
|
|
|
if !errorlevel! EQU 0 (
|
|
echo [!] Success! Package created at %FINAL_ZIP%
|
|
) else (
|
|
echo [X] 7-Zip failed with error code !errorlevel!
|
|
)
|
|
|
|
|
|
:: Example building rtabmap afterwards
|
|
goto :EndComment
|
|
|
|
:: The vcpkg export folder should not be in the rtabmap source directory
|
|
:: (otherwise we get some cmake errors about that)
|
|
set VCPKG_UNZIPPED_EXPORT_PATH=%USERPROFILE%\Downloads\vcpkg-export-########-x64-vs2022
|
|
|
|
set PATH=%VCPKG_UNZIPPED_EXPORT_PATH%\installed\x64-windows-release\bin;%PATH%
|
|
set PATH=%VCPKG_UNZIPPED_EXPORT_PATH%\installed\x64-windows-release\sdk\windows-desktop\amd64\release\bin;%PATH%
|
|
set PATH=%VCPKG_UNZIPPED_EXPORT_PATH%\installed\x64-windows-release\tools\python3\Lib\site-packages\numpy.libs;%PATH%
|
|
set K4A_ROOT_DIR=%VCPKG_UNZIPPED_EXPORT_PATH%\installed\x64-windows-release
|
|
set KINECTSDK20_DIR=%VCPKG_UNZIPPED_EXPORT_PATH%\installed\x64-windows-release
|
|
|
|
cmake -B build -GNinja ^
|
|
-DCMAKE_BUILD_TYPE=Release ^
|
|
-DBUILD_AS_BUNDLE=ON ^
|
|
-DWITH_PYTHON=ON ^
|
|
-DWITH_ZED=OFF ^
|
|
-DWITH_CERES=ON ^
|
|
-DWITH_ORBBEC_SDK=ON ^
|
|
-DWITH_FREENECT2=ON ^
|
|
-DWITH_K4W2=ON ^
|
|
-DWITH_K4A=ON ^
|
|
-DWITH_DEPTHAI=ON ^
|
|
-DWITH_REALSENSE2=ON ^
|
|
-DWITH_CCCORELIB=ON ^
|
|
-DWITH_PDAL=OFF ^
|
|
-DVCPKG_MANIFEST_INSTALL=OFF ^
|
|
-DVCPKG_TARGET_TRIPLET=x64-windows-release ^
|
|
-DVCPKG_INSTALLED_DIR="%VCPKG_UNZIPPED_EXPORT_PATH%/installed" ^
|
|
-DCMAKE_TOOLCHAIN_FILE=%VCPKG_UNZIPPED_EXPORT_PATH%/scripts/buildsystems/vcpkg.cmake ^
|
|
-DGTSAM_DIR=%VCPKG_UNZIPPED_EXPORT_PATH%\installed\x64-windows-release\CMake
|
|
|
|
cmake --build build --config Release --target package
|
|
|
|
:: To install CPU pytorch inside rtabmap package afterwards.
|
|
:: Note that python.exe is the one in the bin directory of the package, not the system one.
|
|
python.exe -m pip install torch torchvision opencv-python-headless "numpy<2"
|
|
|
|
:EndComment
|