Skip to content

Commit 1c48fcd

Browse files
siticssheorey
andauthored
Update librealsense to v2.54.2 (#6714)
* Re-enable Realsense for Windows. * New patch for Apple Silicon --------- Co-authored-by: Sameer Sheorey <[email protected]>
1 parent 41ec178 commit 1c48fcd

File tree

7 files changed

+59
-46
lines changed

7 files changed

+59
-46
lines changed

.github/workflows/windows.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ jobs:
133133
-DBUILD_SHARED_LIBS=${{ matrix.BUILD_SHARED_LIBS }} `
134134
-DSTATIC_WINDOWS_RUNTIME=${{ matrix.STATIC_RUNTIME }} `
135135
-DBUILD_COMMON_ISPC_ISAS=ON `
136-
-DBUILD_LIBREALSENSE=OFF `
136+
-DBUILD_LIBREALSENSE=ON `
137137
-DBUILD_WEBRTC=${{ env.BUILD_WEBRTC }} `
138138
-DBUILD_UNIT_TESTS=ON `
139139
-DBUILD_CUDA_MODULE=${{ matrix.BUILD_CUDA_MODULE }} `
@@ -308,15 +308,14 @@ jobs:
308308
if ($Env:DEVELOPER_BUILD -ne "OFF") {
309309
$Env:DEVELOPER_BUILD = "ON"
310310
}
311-
# FIXME: librealsense upgrade needed
312311
cmake -G "Visual Studio 17 2022" -A x64 `
313312
-DCMAKE_INSTALL_PREFIX="C:\Program Files\Open3D" `
314313
-DDEVELOPER_BUILD="$Env:DEVELOPER_BUILD" `
315314
-DBUILD_SHARED_LIBS=OFF `
316315
-DSTATIC_WINDOWS_RUNTIME=ON `
317316
-DBUILD_COMMON_ISPC_ISAS=ON `
318317
-DBUILD_AZURE_KINECT=ON `
319-
-DBUILD_LIBREALSENSE=OFF `
318+
-DBUILD_LIBREALSENSE=ON `
320319
-DBUILD_WEBRTC=ON `
321320
-DBUILD_JUPYTER_EXTENSION=ON `
322321
-DBUILD_PYTORCH_OPS=ON `

3rdparty/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ libpng 1.6.49 libpng license
8484
The free reference library for reading and writing PNGs
8585
http://www.libpng.org/
8686
--------------------------------------------------------------------------------
87-
librealsense 2.44.0 Apache-2 license
87+
librealsense 2.54.2 Apache-2 license
8888
A cross-platform library for capturing data from the Intel RealSense F200,
8989
SR300, R200 and L500 cameras
9090
https://github.com/IntelRealSense/librealsense
@@ -105,7 +105,7 @@ PoissonReco 12.0 BSD license
105105
Poisson Surface Reconstruction
106106
https://github.com/mkazhdan/PoissonRecon
107107
--------------------------------------------------------------------------------
108-
pybind11 v2.13.1 BSD license
108+
pybind11 v3.00.0 BSD license
109109
Python binding for C++11
110110
https://github.com/pybind/pybind11
111111
--------------------------------------------------------------------------------

3rdparty/find_dependencies.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ set(ExternalProject_CMAKE_ARGS
167167
-DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}
168168
-DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}
169169
-DCMAKE_CUDA_COMPILER_LAUNCHER=${CMAKE_CUDA_COMPILER_LAUNCHER}
170+
-DCMAKE_CUDA_FLAGS=${CMAKE_CUDA_FLAGS}
170171
-DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}
171172
-DCMAKE_CUDA_FLAGS=${CMAKE_CUDA_FLAGS}
172173
-DCMAKE_SYSTEM_VERSION=${CMAKE_SYSTEM_VERSION}

3rdparty/librealsense/fix-macos-arm64.patch

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
From 5a244052e2df7842940dfb5a9011973a09626300 Mon Sep 17 00:00:00 2001
2+
From: Nir Azkiel <[email protected]>
3+
Date: Tue, 28 May 2024 17:17:04 +0300
4+
Subject: [PATCH] fix mac apple silicon build
5+
6+
---
7+
CMake/unix_config.cmake | 8 ++++----
8+
1 file changed, 4 insertions(+), 4 deletions(-)
9+
10+
diff --git a/CMake/unix_config.cmake b/CMake/unix_config.cmake
11+
index 5a187c7c7a..89272b8ee1 100644
12+
--- a/CMake/unix_config.cmake
13+
+++ b/CMake/unix_config.cmake
14+
@@ -19,12 +19,12 @@ macro(os_set_flags)
15+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch -Wno-multichar -Wsequence-point -Wformat -Wformat-security")
16+
17+
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpmachine OUTPUT_VARIABLE MACHINE)
18+
- if(${MACHINE} MATCHES "arm-*")
19+
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize -latomic")
20+
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize -latomic")
21+
- elseif(${MACHINE} MATCHES "aarch64-*")
22+
+ if(${MACHINE} MATCHES "arm64-*" OR ${MACHINE} MATCHES "aarch64-*")
23+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mstrict-align -ftree-vectorize")
24+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mstrict-align -ftree-vectorize")
25+
+ elseif(${MACHINE} MATCHES "arm-*")
26+
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize -latomic")
27+
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize -latomic")
28+
elseif(${MACHINE} MATCHES "powerpc64(le)?-linux-gnu")
29+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftree-vectorize")
30+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftree-vectorize")

3rdparty/librealsense/librealsense.cmake

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ find_package(Git QUIET REQUIRED)
55
ExternalProject_Add(
66
ext_librealsense
77
PREFIX librealsense
8-
URL https://github.com/IntelRealSense/librealsense/archive/refs/tags/v2.44.0.tar.gz # 2020 Apr 1
9-
URL_HASH SHA256=5b0158592646984f0f7348da3783e2fb49e99308a97f2348fe3cc82c770c6dde
8+
URL https://github.com/IntelRealSense/librealsense/archive/refs/tags/v2.54.2.tar.gz # 2023 Sep 28
9+
# Future versions after v2.54.2 may not support L515 and SR300
10+
URL_HASH SHA256=e3a767337ff40ae41000049a490ab84bd70b00cbfef65e8cdbadf17fd2e1e5a8
1011
DOWNLOAD_DIR "${OPEN3D_THIRD_PARTY_DOWNLOAD_DIR}/librealsense"
1112
UPDATE_COMMAND ""
1213
# Patch for libusb static build failure on Linux
@@ -17,11 +18,8 @@ ExternalProject_Add(
1718
COMMAND ${GIT_EXECUTABLE} init
1819
COMMAND ${GIT_EXECUTABLE} apply --ignore-space-change --ignore-whitespace
1920
${CMAKE_CURRENT_LIST_DIR}/fix-cudacrt.patch
20-
# Patch for macOS ARM64 support for versions < 2.50.0
21-
COMMAND ${GIT_EXECUTABLE} apply --ignore-space-change --ignore-whitespace
22-
${CMAKE_CURRENT_LIST_DIR}/fix-macos-arm64.patch
23-
# Patch to include the <chrono> header for the system_clock type
24-
COMMAND ${GIT_EXECUTABLE} apply --ignore-space-change --ignore-whitespace
21+
${CMAKE_CURRENT_LIST_DIR}/fix_mac_apple_silicon_build.patch
22+
# Patch to include the <chrono> header for the system_clock type
2523
${CMAKE_CURRENT_LIST_DIR}/fix-include-chrono.patch
2624
CMAKE_ARGS
2725
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
@@ -34,6 +32,7 @@ ExternalProject_Add(
3432
-DBUILD_PYTHON_BINDINGS=OFF
3533
-DBUILD_WITH_CUDA=${BUILD_CUDA_MODULE}
3634
-DUSE_EXTERNAL_USB=ON
35+
-DBUILD_TOOLS=OFF
3736
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
3837
# Syncing GLIBCXX_USE_CXX11_ABI for MSVC causes problems, but directly
3938
# checking CXX_COMPILER_ID is not supported.
@@ -48,27 +47,33 @@ ExternalProject_Add(
4847
<INSTALL_DIR>/${Open3D_INSTALL_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}realsense2${CMAKE_STATIC_LIBRARY_SUFFIX}
4948
<INSTALL_DIR>/${Open3D_INSTALL_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}realsense-file${CMAKE_STATIC_LIBRARY_SUFFIX}
5049
<INSTALL_DIR>/${Open3D_INSTALL_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}fw${CMAKE_STATIC_LIBRARY_SUFFIX}
50+
<INSTALL_DIR>/${Open3D_INSTALL_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}rsutils${CMAKE_STATIC_LIBRARY_SUFFIX}
5151
)
5252

5353
ExternalProject_Get_Property(ext_librealsense INSTALL_DIR)
5454
set(LIBREALSENSE_INCLUDE_DIR "${INSTALL_DIR}/include/") # "/" is critical.
5555
set(LIBREALSENSE_LIB_DIR "${INSTALL_DIR}/${Open3D_INSTALL_LIB_DIR}")
56-
57-
set(LIBREALSENSE_LIBRARIES realsense2 fw realsense-file usb) # The order is critical.
56+
set(LIBREALSENSE_LIBRARIES realsense2 fw realsense-file rsutils) # The order is critical.
57+
if (NOT MSVC)
58+
list(APPEND LIBREALSENSE_LIBRARIES usb)
59+
endif()
5860
if(MSVC) # Rename debug libs to ${LIBREALSENSE_LIBRARIES}. rem (comment) is no-op
5961
ExternalProject_Add_Step(ext_librealsense rename_debug_libs
6062
COMMAND $<IF:$<CONFIG:Debug>,move,rem> /Y realsense2d.lib realsense2.lib
6163
COMMAND $<IF:$<CONFIG:Debug>,move,rem> /Y fwd.lib fw.lib
6264
COMMAND $<IF:$<CONFIG:Debug>,move,rem> /Y realsense-filed.lib realsense-file.lib
65+
COMMAND $<IF:$<CONFIG:Debug>,move,rem> /Y rsutilsd.lib rsutils.lib
6366
WORKING_DIRECTORY "${LIBREALSENSE_LIB_DIR}"
6467
DEPENDEES install
6568
)
6669
endif()
6770

68-
ExternalProject_Add_Step(ext_librealsense copy_libusb_to_lib_folder
69-
COMMAND ${CMAKE_COMMAND} -E copy
70-
"<BINARY_DIR>/libusb_install/lib/${CMAKE_STATIC_LIBRARY_PREFIX}usb${CMAKE_STATIC_LIBRARY_SUFFIX}"
71-
"${LIBREALSENSE_LIB_DIR}"
72-
DEPENDEES install
73-
BYPRODUCTS "${LIBREALSENSE_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}usb${CMAKE_STATIC_LIBRARY_SUFFIX}"
74-
)
71+
if (NOT MSVC)
72+
ExternalProject_Add_Step(ext_librealsense copy_libusb_to_lib_folder
73+
COMMAND ${CMAKE_COMMAND} -E copy
74+
"<BINARY_DIR>/libusb_install/lib/${CMAKE_STATIC_LIBRARY_PREFIX}usb${CMAKE_STATIC_LIBRARY_SUFFIX}"
75+
"${LIBREALSENSE_LIB_DIR}"
76+
DEPENDEES install
77+
BYPRODUCTS "${LIBREALSENSE_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}usb${CMAKE_STATIC_LIBRARY_SUFFIX}"
78+
)
79+
endif()

CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ else()
6464
endif()
6565
option(BUILD_SYCL_MODULE "Build SYCL module with Intel oneAPI" OFF)
6666
if(BUILD_SYCL_MODULE)
67-
set(OPEN3D_SYCL_TARGETS "spir64" CACHE STRING
67+
set(OPEN3D_SYCL_TARGETS "spir64" CACHE STRING
6868
"SYCL targets: spir64 for JIT, or another for AOT compilation. See https://github.com/intel/llvm/blob/sycl/sycl/doc/UsersManual.md."
6969
)
70-
set(OPEN3D_SYCL_TARGET_BACKEND_OPTIONS "" CACHE STRING
70+
set(OPEN3D_SYCL_TARGET_BACKEND_OPTIONS "" CACHE STRING
7171
"SYCL target backend options, e.g. to compile for a specific device. See https://github.com/intel/llvm/blob/sycl/sycl/doc/UsersManual.md."
7272
)
7373
set(BUILD_ISPC_MODULE OFF CACHE BOOL "Build the ISPC module" FORCE)
@@ -489,7 +489,7 @@ if(WIN32)
489489
SET(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
490490
if(MSVC)
491491
# MSVC standards-compliant mode: Error in PoissonRecon 3rd party header
492-
# add_compile_options($<$<COMPILE_LANGUAGE:CXX>:"/permissive-">)
492+
# add_compile_options($<$<COMPILE_LANGUAGE:CXX>:"/permissive-">)
493493
# Make sure we don't hit the 65535 object member limit with MSVC
494494
#
495495
# /bigobj allows object files with more than 65535 members

0 commit comments

Comments
 (0)