From bfb6abbcf4c1b4f48883ba9fc2ecc557f6ba9ec7 Mon Sep 17 00:00:00 2001 From: matlabbe Date: Tue, 13 Feb 2024 09:14:43 -0800 Subject: [PATCH] rtabmap 0.21.3 (new formula) --- Formula/r/rtabmap.rb | 62 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 Formula/r/rtabmap.rb diff --git a/Formula/r/rtabmap.rb b/Formula/r/rtabmap.rb new file mode 100644 index 0000000000000..40840d44858d9 --- /dev/null +++ b/Formula/r/rtabmap.rb @@ -0,0 +1,62 @@ +class Rtabmap < Formula + desc "Visual and LiDAR SLAM library and standalone application" + homepage "https://introlab.github.io/rtabmap" + url "https://github.com/introlab/rtabmap/archive/refs/tags/0.21.3-noetic.tar.gz" + sha256 "d7fc662d19a6ff772c81cc96365862afdb9bac7f41aeb4d6c543ed3a2477fb01" + license "BSD-3-Clause" + head "https://github.com/introlab/rtabmap.git", branch: "master" + + depends_on "cmake" => [:build, :test] + depends_on "g2o" + depends_on "librealsense" + depends_on "octomap" + depends_on "opencv" + depends_on "pcl" + depends_on "pdal" + + def install + args = %W[ + -DCMAKE_INSTALL_RPATH=#{rpath} + ] + system "cmake", "-S", ".", "-B", "build", *std_cmake_args, *args + system "cmake", "--build", "build" + system "cmake", "--install", "build" + end + + test do + # Test if main app is built and can be launched + output = if OS.linux? + # CI linux cannot start windows apps, causing qt plugins failing + shell_output("#{bin}/rtabmap-console --version") + else + shell_output("#{bin}/rtabmap --version") + end + assert_match "RTAB-Map: #{version}", output + + # Test c++ library + ENV.delete "CPATH" # error xcode headers missing + rtabmap_dir = lib/"rtabmap-#{version.major_minor}" + (testpath/"CMakeLists.txt").write <<~EOS + cmake_minimum_required(VERSION 3.10) + project(test) + find_package(RTABMap REQUIRED COMPONENTS core) + add_executable(test test.cpp) + target_link_libraries(test rtabmap::core) + EOS + (testpath/"test.cpp").write <<~EOS + #include + #include + int main() + { + rtabmap::Rtabmap rtabmap; + printf(RTABMAP_VERSION); + return 0; + } + EOS + args = std_cmake_args + args << "-DCMAKE_BUILD_RPATH=#{lib}" if OS.linux? + system "cmake", ".", *args, "-DCMAKE_VERBOSE_MAKEFILE=ON", "-DRTABMap_DIR=#{rtabmap_dir}" + system "make" + assert_equal version.to_s, shell_output("./test").strip + end +end