summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2026-04-03 10:12:12 +0000
committerCoprDistGit <infra@openeuler.org>2026-04-03 10:12:12 +0000
commitaf127733a9f96834ff73391df17eb7031126c71b (patch)
tree4f15e225e5195a1cb039f97ccc4cc1e9f26fbe92
parent903425e84e1d4b2735f77e6979abcc42b7bc713e (diff)
automatic import of librealsense2
-rw-r--r--librealsense2.spec4
-rw-r--r--use-system-nlohmann-json.patch45
2 files changed, 49 insertions, 0 deletions
diff --git a/librealsense2.spec b/librealsense2.spec
index 133cdc8..a8818b9 100644
--- a/librealsense2.spec
+++ b/librealsense2.spec
@@ -18,16 +18,20 @@ Url: https://github.com/realsenseai/librealsense/
License: Apache License, Version 2.0
Patch1: 0-librealsense2-fix-threads-not-found.patch
+Patch2: use-system-nlohmann-json.patch
Source0: %{RosPkgName}-%{version}.tar.gz.aa
Source1: %{RosPkgName}-%{version}.tar.gz.ab
Source2: %{RosPkgName}-%{version}.tar.gz.ac
Source3: %{RosPkgName}-%{version}.tar.gz.ad
Requires: libX11-devel
+Requires: glfw-devel
Requires: mesa-libGL-devel
Requires: ros-%{ros_distro}-ros-workspace
BuildRequires: libX11-devel
+BuildRequires: glfw-devel
+BuildRequires: nlohmann-json-devel
BuildRequires: mesa-libGL-devel
BuildRequires: pkgconfig
BuildRequires: libusbx-devel
diff --git a/use-system-nlohmann-json.patch b/use-system-nlohmann-json.patch
new file mode 100644
index 0000000..3f7b60d
--- /dev/null
+++ b/use-system-nlohmann-json.patch
@@ -0,0 +1,45 @@
+--- a/CMake/external_json.cmake
++++ b/CMake/external_json.cmake
+@@ -1,37 +1,3 @@
+ 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)
+-
+ endfunction()
+
+ # Trigger the build