diff --git a/ports/realsense2/android-config.diff b/ports/realsense2/android-config.diff new file mode 100644 index 0000000000..62a6a9247f --- /dev/null +++ b/ports/realsense2/android-config.diff @@ -0,0 +1,12 @@ +diff --git a/CMake/android_config.cmake b/CMake/android_config.cmake +index 203003e..487e60a 100644 +--- a/CMake/android_config.cmake ++++ b/CMake/android_config.cmake +@@ -10,7 +10,6 @@ macro(os_set_flags) + set(BUILD_TOOLS OFF) + set(BUILD_WITH_OPENMP OFF) + set(BUILD_GRAPHICAL_EXAMPLES OFF) +- set(ANDROID_STL "c++_static") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -pedantic -g -D_DEFAULT_SOURCE") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -pedantic -g -Wno-missing-field-initializers") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch -Wno-multichar") diff --git a/ports/realsense2/build.diff b/ports/realsense2/build.diff new file mode 100644 index 0000000000..efa9089bea --- /dev/null +++ b/ports/realsense2/build.diff @@ -0,0 +1,75 @@ +diff --git a/src/algo.cpp b/src/algo.cpp +index e6b3210..524f2a8 100644 +--- a/src/algo.cpp ++++ b/src/algo.cpp +@@ -5,6 +5,8 @@ + #include "option.h" + #include "core/video-frame.h" + ++#include ++ + using namespace librealsense; + + bool auto_exposure_state::get_enable_auto_exposure() const +diff --git a/src/librealsense-exception.h b/src/librealsense-exception.h +index c9ce838..f02f42f 100644 +--- a/src/librealsense-exception.h ++++ b/src/librealsense-exception.h +@@ -7,6 +7,7 @@ + #include + #include "basics.h" // LRS_EXTENSION_API + ++#include + #include + #include + +diff --git a/src/linux/backend-hid.h b/src/linux/backend-hid.h +index bc70bfd..2a989f0 100644 +--- a/src/linux/backend-hid.h ++++ b/src/linux/backend-hid.h +@@ -6,6 +6,7 @@ + #include "types.h" + + #include ++#include + #include + + namespace librealsense +diff --git a/src/platform/platform-utils.cpp b/src/platform/platform-utils.cpp +index 0cfa3a7..12e5868 100644 +--- a/src/platform/platform-utils.cpp ++++ b/src/platform/platform-utils.cpp +@@ -7,6 +7,8 @@ + #include "hid-device-info.h" + #include + ++#include ++using std::find; + + namespace librealsense { + namespace platform { +diff --git a/third-party/rsutils/src/network-adapter-watcher.cpp b/third-party/rsutils/src/network-adapter-watcher.cpp +index 942fa1f..48414b4 100644 +--- a/third-party/rsutils/src/network-adapter-watcher.cpp ++++ b/third-party/rsutils/src/network-adapter-watcher.cpp +@@ -26,6 +26,8 @@ + #endif + #endif // ! __APPLE__ && ! __ANDROID__ + ++#include ++#include + + namespace rsutils { + namespace os { +diff --git a/third-party/rsutils/src/special-folder.cpp b/third-party/rsutils/src/special-folder.cpp +index 79bc45d..c06afa6 100644 +--- a/third-party/rsutils/src/special-folder.cpp ++++ b/third-party/rsutils/src/special-folder.cpp +@@ -18,6 +18,7 @@ + + #endif + ++#include + + namespace rsutils { + namespace os { diff --git a/ports/realsense2/devendor-lz4.diff b/ports/realsense2/devendor-lz4.diff new file mode 100644 index 0000000000..04107fe35f --- /dev/null +++ b/ports/realsense2/devendor-lz4.diff @@ -0,0 +1,33 @@ +diff --git a/third-party/realsense-file/rosbag/roslz4/include/roslz4/lz4s.h b/third-party/realsense-file/rosbag/roslz4/include/roslz4/lz4s.h +index 30dce1a..6d8dd27 100644 +--- a/third-party/realsense-file/rosbag/roslz4/include/roslz4/lz4s.h ++++ b/third-party/realsense-file/rosbag/roslz4/include/roslz4/lz4s.h +@@ -35,7 +35,7 @@ + #ifndef ROSLZ4_LZ4S_H + #define ROSLZ4_LZ4S_H + +-#include "../../../../lz4/lz4.h" ++#include + + #ifdef __cplusplus + extern "C" { +diff --git a/tools/embed/CMakeLists.txt b/tools/embed/CMakeLists.txt +index 77b1b9b..4fd9aa1 100644 +--- a/tools/embed/CMakeLists.txt ++++ b/tools/embed/CMakeLists.txt +@@ -10,13 +10,12 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS 1) + + add_executable(rs-embed + rs-embed.cpp +- ${LZ4_DIR}/lz4.h +- ${LZ4_DIR}/lz4.c + ) + + set_property(TARGET rs-embed PROPERTY CXX_STANDARD 11) + +-include_directories(rs-embed ${LZ4_DIR} ../../third-party) ++find_package(lz4 CONFIG REQUIRED) ++target_link_libraries(rs-embed PRIVATE lz4::lz4) + target_link_libraries( rs-embed PRIVATE tclap ) + set_target_properties (rs-embed PROPERTIES FOLDER Tools) + diff --git a/ports/realsense2/devendor-nlohmann-json.diff b/ports/realsense2/devendor-nlohmann-json.diff new file mode 100644 index 0000000000..ae881f4b95 --- /dev/null +++ b/ports/realsense2/devendor-nlohmann-json.diff @@ -0,0 +1,27 @@ +diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt +index c28e66c..18df754 100644 +--- a/third-party/CMakeLists.txt ++++ b/third-party/CMakeLists.txt +@@ -5,7 +5,6 @@ add_subdirectory( "${CMAKE_CURRENT_LIST_DIR}/rsutils" ) + + pop_security_flags() # remove security flags for third party, as we cannot guarantee their security enforcment + +-include(CMake/external_json.cmake) + # Add additional include directories to allow file to include rosbag headers + include(${_rel_path}/realsense-file/config.cmake) + +diff --git a/third-party/rsutils/CMakeLists.txt b/third-party/rsutils/CMakeLists.txt +index b0fc310..50aa0e4 100644 +--- a/third-party/rsutils/CMakeLists.txt ++++ b/third-party/rsutils/CMakeLists.txt +@@ -12,8 +12,9 @@ set_target_properties( ${PROJECT_NAME} PROPERTIES FOLDER Library ) + target_include_directories( ${PROJECT_NAME} + PUBLIC + $ +- $ + ) ++find_package(nlohmann_json CONFIG REQUIRED) ++target_link_libraries(${PROJECT_NAME} PUBLIC $) + + # Headers ----------------------------------------------------------------------------------- + # diff --git a/ports/realsense2/devendor-stb.diff b/ports/realsense2/devendor-stb.diff new file mode 100644 index 0000000000..fc1de21897 --- /dev/null +++ b/ports/realsense2/devendor-stb.diff @@ -0,0 +1,52 @@ +diff --git a/common/rendering.h b/common/rendering.h +index ed0b525..a36b5ff 100644 +--- a/common/rendering.h ++++ b/common/rendering.h +@@ -233,7 +233,7 @@ namespace rs2 + // Simple font loading code // + ////////////////////////////// + +-#include "../third-party/stb_easy_font.h" ++#include + + inline void draw_text(int x, int y, const char * text) + { +diff --git a/src/proc/color-formats-converter.cpp b/src/proc/color-formats-converter.cpp +index f0a54ba..13411fe 100644 +--- a/src/proc/color-formats-converter.cpp ++++ b/src/proc/color-formats-converter.cpp +@@ -9,7 +9,7 @@ + + #define STB_IMAGE_STATIC + #define STB_IMAGE_IMPLEMENTATION +-#include "../third-party/stb_image.h" ++#include + + #ifdef RS2_USE_CUDA + #include "cuda/cuda-conversion.cuh" +diff --git a/tools/convert/converters/converter-png.hpp b/tools/convert/converters/converter-png.hpp +index fcfd6ce..adbb1e6 100644 +--- a/tools/convert/converters/converter-png.hpp ++++ b/tools/convert/converters/converter-png.hpp +@@ -7,7 +7,7 @@ + + // 3rd party header for writing png files + #define STB_IMAGE_WRITE_IMPLEMENTATION +-#include ++#include + + #include "../converter.hpp" + +diff --git a/tools/embed/CMakeLists.txt b/tools/embed/CMakeLists.txt +index 4fd9aa1..951bfa6 100644 +--- a/tools/embed/CMakeLists.txt ++++ b/tools/embed/CMakeLists.txt +@@ -19,6 +19,8 @@ target_link_libraries(rs-embed PRIVATE lz4::lz4) + target_link_libraries( rs-embed PRIVATE tclap ) + set_target_properties (rs-embed PROPERTIES FOLDER Tools) + ++find_package(Stb REQUIRED) ++target_include_directories(rs-embed PRIVATE "${Stb_INCLUDE_DIR}") + + install( + TARGETS diff --git a/ports/realsense2/fix-android-prefix-path.patch b/ports/realsense2/fix-android-prefix-path.patch deleted file mode 100644 index 486bdbabc2..0000000000 --- a/ports/realsense2/fix-android-prefix-path.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/CMake/android_config.cmake b/CMake/android_config.cmake -index 203003e..4eac6dd 100644 ---- a/CMake/android_config.cmake -+++ b/CMake/android_config.cmake -@@ -16,7 +16,11 @@ macro(os_set_flags) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch -Wno-multichar") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -pie") - set(HWM_OVER_XU ON) -- -+ -+ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) -+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) -+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) -+ - if(FORCE_RSUSB_BACKEND) - set(BACKEND RS2_USE_ANDROID_BACKEND) - set(IMPORT_DEPTH_CAM_FW OFF) diff --git a/ports/realsense2/fix-nlohmann_json.patch b/ports/realsense2/fix-nlohmann_json.patch deleted file mode 100644 index 4949a4fea1..0000000000 --- a/ports/realsense2/fix-nlohmann_json.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff --git a/CMake/realsense2Config.cmake.in b/CMake/realsense2Config.cmake.in -index b7319a6..f1301ab 100644 ---- a/CMake/realsense2Config.cmake.in -+++ b/CMake/realsense2Config.cmake.in -@@ -1,3 +1,6 @@ -+include(CMakeFindDependencyMacro) -+find_dependency(nlohmann_json) -+ - @PACKAGE_INIT@ - - set(realsense2_VERSION_MAJOR "@REALSENSE_VERSION_MAJOR@") -diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt -index c703140..e1fe5b9 100644 ---- a/third-party/CMakeLists.txt -+++ b/third-party/CMakeLists.txt -@@ -1,7 +1,5 @@ - string(REPLACE ${PROJECT_SOURCE_DIR}/ "" _rel_path ${CMAKE_CURRENT_LIST_DIR}) - --include(CMake/external_json.cmake) -- - add_subdirectory( "${CMAKE_CURRENT_LIST_DIR}/rsutils" ) - - # Add additional include directories to allow file to include rosbag headers -diff --git a/third-party/rsutils/CMakeLists.txt b/third-party/rsutils/CMakeLists.txt -index b0fc310..95e8a46 100644 ---- a/third-party/rsutils/CMakeLists.txt -+++ b/third-party/rsutils/CMakeLists.txt -@@ -4,15 +4,16 @@ cmake_minimum_required(VERSION 3.8.0) # source_group(TREE) - project( rsutils ) - - add_library( ${PROJECT_NAME} STATIC "" ) --# We cannot directly interface with nlohmann_json (doesn't work on bionic) --#target_link_libraries( ${PROJECT_NAME} PUBLIC nlohmann_json ) -+ -+find_package(nlohmann_json CONFIG REQUIRED) -+target_link_libraries(${PROJECT_NAME} PUBLIC nlohmann_json::nlohmann_json) -+ - target_compile_features( ${PROJECT_NAME} PUBLIC cxx_std_14 ) - set_target_properties( ${PROJECT_NAME} PROPERTIES FOLDER Library ) - - target_include_directories( ${PROJECT_NAME} - PUBLIC - $ -- $ - ) - - # Headers ----------------------------------------------------------------------------------- diff --git a/ports/realsense2/libusb.diff b/ports/realsense2/libusb.diff new file mode 100644 index 0000000000..7738225237 --- /dev/null +++ b/ports/realsense2/libusb.diff @@ -0,0 +1,15 @@ +diff --git a/CMake/libusb_config.cmake b/CMake/libusb_config.cmake +index ca221ca..b62369e 100644 +--- a/CMake/libusb_config.cmake ++++ b/CMake/libusb_config.cmake +@@ -1,6 +1,8 @@ + if (NOT TARGET usb) +- find_library(LIBUSB_LIB usb-1.0) +- find_path(LIBUSB_INC libusb.h HINTS PATH_SUFFIXES libusb-1.0) ++ find_package(PkgConfig) ++ pkg_check_modules(PC_LIBUSB libusb-1.0 REQUIRED) ++ set(LIBUSB_LIB "${PC_LIBUSB_LINK_LIBRARIES}") ++ set(LIBUSB_INC "${PC_LIBUSB_INCLUDE_DIRS}") + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(usb "libusb not found; using internal version" LIBUSB_LIB LIBUSB_INC) + if (USB_FOUND AND NOT USE_EXTERNAL_USB) diff --git a/ports/realsense2/portfile.cmake b/ports/realsense2/portfile.cmake index 4ed0070642..bb01b0c68c 100644 --- a/ports/realsense2/portfile.cmake +++ b/ports/realsense2/portfile.cmake @@ -1,62 +1,86 @@ +vcpkg_download_distfile(lz4_patch + URLS https://github.com/IntelRealSense/librealsense/commit/20748445a8e24bee148d8b6f67f3a6c3f259cced.diff?full_index=1 + SHA512 90d754e7da6931b607429035c2fa14aa1137e28fa88d04f5e90220f57fc808fd256b516840922d0938d6b0f3f30b937ddc3568865c9a21fa1a2d8a51788e6f9a + FILENAME IntelRealSense-librealsense-lz4.diff +) + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO IntelRealSense/librealsense REF "v${VERSION}" - SHA512 0e8acc96bff60b6842fea03c871ff9b350c4f1c90c9493d6e1163384ebd4ba7c31fb110e9cca3547d36145628ad93cca298f36ba9d9cf8692dab5ad0d3d58a4d + SHA512 5b5998560ab6a7d81a23b1d84194f4cf3e123af1d46711127d838dc37c3eb1414f232bf0e1a444c68212fabcd79c3e4e1c47ff87b878266558e0027bd522447f HEAD_REF master PATCHES + add-include-chrono.patch # https://github.com/IntelRealSense/librealsense/pull/13537 + android-config.diff + build.diff + "${lz4_patch}" + devendor-lz4.diff # https://github.com/IntelRealSense/librealsense/pull/13803#issuecomment-3072432118 + devendor-nlohmann-json.diff + devendor-stb.diff fix_openni2.patch - fix-nlohmann_json.patch - fix-android-prefix-path.patch - add-include-chrono.patch #https://github.com/IntelRealSense/librealsense/pull/13537 + libusb.diff + using-firmware.diff +) +file(GLOB extern "${SOURCE_PATH}/CMake/extern_*.cmake") +file(REMOVE_RECURSE + ${extern} + "${SOURCE_PATH}/third-party/easyloggingpp" + "${SOURCE_PATH}/third-party/realsense-file/lz4" + "${SOURCE_PATH}/third-party/stb_easy_font.h" + "${SOURCE_PATH}/third-party/stb_image.h" + "${SOURCE_PATH}/third-party/stb_image_write.h" ) -file(COPY "${SOURCE_PATH}/src/win7/drivers/IntelRealSense_D400_series_win7.inf" DESTINATION "${SOURCE_PATH}") -string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_CRT_LINKAGE) +file(READ "${SOURCE_PATH}/common/fw/firmware-version.h" firmware_version_h) +string(REGEX MATCH "D4XX_RECOMMENDED_FIRMWARE_VERSION \"([0-9]+.[0-9]+.[0-9]+.[0-9]+)\"" unused "${firmware_version_h}") +set(firmware_filename "D4XX_FW_Image-${CMAKE_MATCH_1}.bin") +vcpkg_download_distfile(firmware_distfile + URLS "https://librealsense.intel.com/Releases/RS4xx/FW/${firmware_filename}" + SHA512 c465cedba2a8df713fb7900bb60a448b15e53ac013175cf7c152909bc9f2324cf46efd1323954633d7c011e33a27f9426eb1347ad48d92839a68c7e4fa680f94 + FILENAME "IntelRealSense-${firmware_filename}" +) + +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES - tools BUILD_TOOLS + openni2 BUILD_OPENNI2_BINDINGS + rs-usb-backend FORCE_RSUSB_BACKEND + tools BUILD_TOOLS ) -set(BUILD_OPENNI2_BINDINGS OFF) -if(("openni2" IN_LIST FEATURES) AND (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")) - set(BUILD_OPENNI2_BINDINGS ON) -endif() - -set(PLATFORM_OPTIONS) -if (VCPKG_TARGET_IS_ANDROID) - list(APPEND PLATFORM_OPTIONS -DFORCE_RSUSB_BACKEND=ON) +if("rs-usb-backend" IN_LIST FEATURES) + vcpkg_find_acquire_program(PKGCONFIG) + list(APPEND FEATURE_OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" - OPTIONS ${FEATURE_OPTIONS} - -DENFORCE_METADATA=ON - -DBUILD_WITH_OPENMP=OFF - -DBUILD_UNIT_TESTS=OFF - -DBUILD_WITH_STATIC_CRT=${BUILD_CRT_LINKAGE} - -DBUILD_OPENNI2_BINDINGS=${BUILD_OPENNI2_BINDINGS} - -DOPENNI2_DIR=${CURRENT_INSTALLED_DIR}/include/openni2 - ${PLATFORM_OPTIONS} + OPTIONS + ${FEATURE_OPTIONS} + -DBUILD_EASYLOGGINGPP=OFF -DBUILD_EXAMPLES=OFF -DBUILD_GRAPHICAL_EXAMPLES=OFF + -DBUILD_RS2_ALL=NO + -DBUILD_UNIT_TESTS=OFF + -DBUILD_WITH_OPENMP=OFF + -DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT} + -DENABLE_CCACHE=OFF + -DENFORCE_METADATA=ON + "-DFIRMWARE_DISTFILE=${firmware_distfile}" + "-DOPENNI2_DIR=${CURRENT_INSTALLED_DIR}/include/openni2" + -DUSE_EXTERNAL_LZ4=ON + OPTIONS_DEBUG + -DBUILD_TOOLS=OFF MAYBE_UNUSED_VARIABLES OPENNI2_DIR ) vcpkg_cmake_install() - -vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/realsense2) -if(VCPKG_TARGET_IS_WINDOWS) - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/realsense2/realsense2Targets.cmake" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" "\${_IMPORT_PREFIX}") - if(NOT VCPKG_BUILD_TYPE) - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/realsense2/realsense2Targets.cmake" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" "\${_IMPORT_PREFIX}") - endif() - file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/common/fw") - file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/common/fw/fw.res" DESTINATION "${CURRENT_PACKAGES_DIR}/common/fw") -endif() vcpkg_copy_pdbs() +vcpkg_fixup_pkgconfig() +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/realsense2) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") @@ -73,5 +97,5 @@ if(BUILD_OPENNI2_BINDINGS) endif() endif() +file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") -vcpkg_fixup_pkgconfig() diff --git a/ports/realsense2/usage b/ports/realsense2/usage new file mode 100644 index 0000000000..613c6586dd --- /dev/null +++ b/ports/realsense2/usage @@ -0,0 +1,8 @@ +realsense2 provides CMake targets: + + find_package(realsense2 CONFIG REQUIRED) + target_link_libraries(main PRIVATE realsense2::realsense2) + +realsense2 provides pkg-config modules: + + realsense2 diff --git a/ports/realsense2/using-firmware.diff b/ports/realsense2/using-firmware.diff new file mode 100644 index 0000000000..5bdb93c6df --- /dev/null +++ b/ports/realsense2/using-firmware.diff @@ -0,0 +1,48 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 24cfb79..b9aafc5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -9,7 +9,6 @@ set(REPO_ROOT ${CMAKE_CURRENT_SOURCE_DIR}) + include_directories(${REPO_ROOT}) + + include(CMake/lrs_options.cmake) +-include(CMake/connectivity_check.cmake) + #Deprecation message, should be removed in future releases + if(${FORCE_LIBUVC} OR ${FORCE_WINUSB_UVC} OR ${ANDROID_USB_HOST_UVC}) + MESSAGE(DEPRECATION "FORCE_LIBUVC, FORCE_WINUSB_UVC and ANDROID_USB_HOST_UVC are deprecated, use FORCE_RSUSB_BACKEND instead") +@@ -17,7 +16,7 @@ if(${FORCE_LIBUVC} OR ${FORCE_WINUSB_UVC} OR ${ANDROID_USB_HOST_UVC}) + endif() + + # Checking Internet connection, as DEPTH CAM needs to download the FW from amazon cloud +-if(IMPORT_DEPTH_CAM_FW AND NOT INTERNET_CONNECTION) ++if(0) + message(WARNING "No internet connection, disabling IMPORT_DEPTH_CAM_FW") + set(IMPORT_DEPTH_CAM_FW OFF) + endif() +diff --git a/common/fw/CMakeLists.txt b/common/fw/CMakeLists.txt +index f270844..84538cf 100644 +--- a/common/fw/CMakeLists.txt ++++ b/common/fw/CMakeLists.txt +@@ -31,7 +31,11 @@ if (MSVC) + # even then, the linker won't grab a .res out of a .lib object, so it needs to be explicitly listed + # and to find the name of the .res file (across cmake generators) we need to create our own rule. :( + add_custom_command(TARGET ${PROJECT_NAME} BYPRODUCTS ${PROJECT_NAME}.res COMMAND ${CMAKE_RC_COMPILER} ${CMAKE_RC_FLAGS} /I . /fo "${PROJECT_NAME}.res" "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.rc") +- target_link_libraries(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.res") ++ target_link_libraries(${PROJECT_NAME} PUBLIC ++ "$" ++ "$" ++ ) ++ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.res" DESTINATION "lib/realsense2") + endif() + + target_include_directories(${PROJECT_NAME} PUBLIC $) +@@ -39,8 +43,7 @@ set_target_properties (${PROJECT_NAME} PROPERTIES FOLDER Resources) + + function(target_binary url version sha1 symbol ext) + set(binary "${CMAKE_CURRENT_BINARY_DIR}/${symbol}-${version}${ext}") +- message(STATUS "... ${url}/${symbol}-${version}${ext}") +- file(DOWNLOAD "${url}/${symbol}-${version}${ext}" "${binary}" ++ file(DOWNLOAD "file://${FIRMWARE_DISTFILE}" "${binary}" + EXPECTED_HASH SHA1=${sha1} + STATUS status) + list(GET status 0 error_code) diff --git a/ports/realsense2/vcpkg.json b/ports/realsense2/vcpkg.json index 9c42753c9a..7b8e96c90b 100644 --- a/ports/realsense2/vcpkg.json +++ b/ports/realsense2/vcpkg.json @@ -1,7 +1,6 @@ { "name": "realsense2", - "version": "2.56.2", - "port-version": 2, + "version": "2.56.3", "description": "Intel® RealSense™ SDK 2.0 is a cross-platform library for Intel® RealSense™ depth cameras (D400 series and the SR300).", "homepage": "https://github.com/IntelRealSense/librealsense", "license": "Apache-2.0", @@ -11,7 +10,17 @@ "name": "libusb", "platform": "!windows" }, + "lz4", "nlohmann-json", + { + "name": "realsense2", + "default-features": false, + "features": [ + "rs-usb-backend" + ], + "platform": "android | osx" + }, + "stb", { "name": "vcpkg-cmake", "host": true @@ -24,12 +33,21 @@ "features": { "openni2": { "description": "Build Intel® RealSense™ OpenNI2 driver", + "supports": "!static", "dependencies": [ "openni2" ] }, + "rs-usb-backend": { + "description": "Use RS USB backend", + "supports": "!windows", + "dependencies": [ + "libusb" + ] + }, "tools": { - "description": "Build Intel® RealSense™ tools" + "description": "Build Intel® RealSense™ tools", + "supports": "!android" } } } diff --git a/scripts/ci.feature.baseline.txt b/scripts/ci.feature.baseline.txt index e26d7f951d..c614fd134e 100644 --- a/scripts/ci.feature.baseline.txt +++ b/scripts/ci.feature.baseline.txt @@ -2171,7 +2171,6 @@ qtbase[sql-oci](!(arm & windows)) = feature-fails # see https://github.com/micro qtmultimedia[core,ffmpeg,gstreamer,qml,widgets](osx) = combination-fails # Error: Qt will by default autolink both plugin backends in static builds leading to symbol collisions and a build failure in dependent ports! As such in static builds only one backend is allowed by default. qtopcua[uacpp](!uwp) = feature-fails # Unified Automation C++ SDK is not installed realsense2:arm64-windows = fail # fw-update-device.h(1): warning C4828: The file contains a character starting at offset 0x4c3 that is illegal in the current source character set (codepage 65001). See https://github.com/microsoft/vcpkg/issues/35628 -realsense2[tools](osx) = feature-fails # Could NOT find Threads (missing: Threads_FOUND) rtabmap[openmp](osx) = feature-fails # No openmp on default osx toolchain rubberband[cli](linux) = feature-fails # See https://github.com/microsoft/vcpkg/issues/32360 saucer(linux) = fail # requires gcc14 or later diff --git a/versions/baseline.json b/versions/baseline.json index a61c5fa967..787b6b6fed 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -8253,8 +8253,8 @@ "port-version": 0 }, "realsense2": { - "baseline": "2.56.2", - "port-version": 2 + "baseline": "2.56.3", + "port-version": 0 }, "rebind": { "baseline": "5.2.2", diff --git a/versions/r-/realsense2.json b/versions/r-/realsense2.json index 538430cbf9..1224d04883 100644 --- a/versions/r-/realsense2.json +++ b/versions/r-/realsense2.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "8f7cc8e7c474b18ca30a256a0df55c49057320cb", + "version": "2.56.3", + "port-version": 0 + }, { "git-tree": "16b54def1f75d71eb6b30ecc5b33cdcda10ea9e6", "version": "2.56.2",