summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2026-04-06 06:28:42 +0000
committerCoprDistGit <infra@openeuler.org>2026-04-06 06:28:42 +0000
commitd611ebdcc643166d7e3082f2618551aaf1d9177d (patch)
tree666e9d53815591e9100052b1db3d8a227f813b02
parentbd9216c92b77c6f7a7ddd388b1d5405e3734f64b (diff)
automatic import of librealsense2
-rw-r--r--disable-json-download.patch53
-rw-r--r--librealsense2.spec2
2 files changed, 55 insertions, 0 deletions
diff --git a/disable-json-download.patch b/disable-json-download.patch
new file mode 100644
index 0000000..9f6084d
--- /dev/null
+++ b/disable-json-download.patch
@@ -0,0 +1,53 @@
+--- CMake/external_json.cmake.orig 2026-04-06 14:26:00.677001990 +0800
++++ CMake/external_json.cmake 2026-04-06 14:26:00.677001990 +0800
+@@ -1,49 +1,10 @@
+ cmake_minimum_required(VERSION 3.10)
+ include(ExternalProject)
+
+-
+-
+ # We use a function to enforce a scoped variables creation only for the build
+ # (i.e turn off BUILD_SHARED_LIBS which is used on LRS build as well)
+ function(get_nlohmann_json)
+-
+- message( STATUS #CHECK_START
+- "Fetching nlohmann/json..." )
+- #list( APPEND CMAKE_MESSAGE_INDENT " " ) # Indent outputs
+-
+- # We want to clone the json repo and build it here, during configuration, so we can use it.
+- # But ExternalProject_add is limited in that it only does its magic during build.
+- # This is possible in CMake 3.12+ with FetchContent and FetchContent_MakeAvailable in 3.14+ (meaning Ubuntu 20)
+- # but we need to adhere to CMake 3.10 (Ubuntu 18).
+- # So instead, we invoke a new CMake project just to download pybind:
+- configure_file( CMake/json-download.cmake.in
+- ${CMAKE_BINARY_DIR}/external-projects/json-download/CMakeLists.txt )
+- execute_process( COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . "--no-warn-unused-cli"
+- -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
+- -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
+- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+- WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/external-projects/json-download"
+- OUTPUT_QUIET
+- RESULT_VARIABLE configure_ret )
+- execute_process( COMMAND "${CMAKE_COMMAND}" --build .
+- WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/external-projects/json-download"
+- OUTPUT_QUIET
+- RESULT_VARIABLE build_ret )
+-
+- if( configure_ret OR build_ret )
+- message( FATAL_ERROR "Failed to download nlohmann/json" )
+- endif()
+-
+- add_subdirectory( "${CMAKE_BINARY_DIR}/third-party/json"
+- "${CMAKE_BINARY_DIR}/third-party/json/build" )
+-
+- # We cannot directly interface with nlohmann_json (doesn't work on bionic)
+- #install( TARGETS nlohmann_json EXPORT realsense2Targets )
+-
+- message( STATUS #CHECK_PASS
+- "Fetching nlohmann/json - Done" )
+- #list( POP_BACK CMAKE_MESSAGE_INDENT ) # Unindent outputs (requires cmake 3.15)
+-
++ find_package(nlohmann_json REQUIRED)
+ endfunction()
+
+ # Trigger the build
diff --git a/librealsense2.spec b/librealsense2.spec
index 133cdc8..a9cf2e2 100644
--- a/librealsense2.spec
+++ b/librealsense2.spec
@@ -18,6 +18,7 @@ Url: https://github.com/realsenseai/librealsense/
License: Apache License, Version 2.0
Patch1: 0-librealsense2-fix-threads-not-found.patch
+Patch2: disable-json-download.patch
Source0: %{RosPkgName}-%{version}.tar.gz.aa
Source1: %{RosPkgName}-%{version}.tar.gz.ab
Source2: %{RosPkgName}-%{version}.tar.gz.ac
@@ -36,6 +37,7 @@ BuildRequires: libudev-devel
BuildRequires: dkms
BuildRequires: git
BuildRequires: udev
+BuildRequires: nlohmann-json-devel
BuildRequires: cmake
BuildRequires: ros-%{ros_distro}-ros-workspace