108 lines
1.9 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
# nativeBuildInputs
cmake,
libsForQt5,
pkg-config,
wrapGAppsHook3,
# buildInputs
opencv,
pcl,
liblapack,
xorg,
libusb1,
yaml-cpp,
libnabo,
libpointmatcher,
eigen,
g2o,
ceres-solver,
octomap,
freenect,
libdc1394,
libGL,
libGLU,
librealsense,
vtkWithQt5,
zed-open-capture,
hidapi,
# passthru
gitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "rtabmap";
version = "0.22.1";
src = fetchFromGitHub {
owner = "introlab";
repo = "rtabmap";
tag = finalAttrs.version;
hash = "sha256-6kDjIfUgyaqrsVAWO6k0h1qIDN/idMOJJxLpqMQ6DFY=";
};
nativeBuildInputs = [
cmake
libsForQt5.wrapQtAppsHook
pkg-config
wrapGAppsHook3
];
buildInputs = [
## Required
opencv
opencv.cxxdev
pcl
liblapack
xorg.libSM
xorg.libICE
xorg.libXt
## Optional
libusb1
eigen
g2o
ceres-solver
yaml-cpp
libnabo
libpointmatcher
octomap
freenect
libdc1394
librealsense
libsForQt5.qtbase
libGL
libGLU
vtkWithQt5
zed-open-capture
hidapi
];
# Configure environment variables
NIX_CFLAGS_COMPILE = "-Wno-c++20-extensions -I${vtkWithQt5}/include/vtk";
cmakeFlags = [
(lib.cmakeFeature "VTK_QT_VERSION" "5")
(lib.cmakeFeature "VTK_DIR" "${vtkWithQt5}/lib/cmake/vtk-${lib.versions.majorMinor vtkWithQt5.version}")
(lib.cmakeFeature "CMAKE_INCLUDE_PATH" "${vtkWithQt5}/include/vtk:${pcl}/include/pcl-${lib.versions.majorMinor pcl.version}")
];
passthru = {
updateScript = gitUpdater { };
};
meta = {
description = "Real-Time Appearance-Based 3D Mapping";
homepage = "https://introlab.github.io/rtabmap/";
changelog = "https://github.com/introlab/rtabmap/releases/tag/${finalAttrs.version}";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ marius851000 ];
platforms = with lib.platforms; linux;
};
})