From 64faa34280491e308add5b651c07c7519e37f564 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Thu, 25 Sep 2025 20:28:35 -0400 Subject: [PATCH 1/5] install libusb (brought in by vcpkg) alongside depthai-core if enabled --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 75820bf69..7204773b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1301,4 +1301,8 @@ if(DEPTHAI_INSTALL) DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" ) + # Install vcpkg libraries that we link against dynamically + if(DEPTHAI_ENABLE_LIBUSB) + install(IMPORTED_RUNTIME_ARTIFACTS usb-1.0) + endif() endif() From ad56060a970cfbd3b24eac1912b3e25f9beb5715 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Thu, 25 Sep 2025 21:28:56 -0400 Subject: [PATCH 2/5] update depthaiConfig.cmake.in to set the DEPTHAI_INSTALL_PREFIX path --- cmake/depthaiConfig.cmake.in | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cmake/depthaiConfig.cmake.in b/cmake/depthaiConfig.cmake.in index edce71fe9..aaa73b1c1 100644 --- a/cmake/depthaiConfig.cmake.in +++ b/cmake/depthaiConfig.cmake.in @@ -1,5 +1,13 @@ include(CMakeFindDependencyMacro) +get_filename_component(CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +include(${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@ConfigVersion.cmake) + +message(STATUS "Found depthai: ${CMAKE_CURRENT_LIST_DIR} (found version: ${PACKAGE_VERSION})") + +# Assume we are in /lib/cmake/depthai/depthaiConfig.cmake +get_filename_component(DEPTHAI_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE) + find_dependency(nlohmann_json CONFIG REQUIRED) find_dependency(libnop CONFIG REQUIRED) find_dependency(XLink CONFIG REQUIRED COMPONENTS XLinkPublic) From 0790ce09b24f9cd61e1bcd21d72be0b938a464d2 Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Mon, 29 Sep 2025 18:41:38 -0400 Subject: [PATCH 3/5] Add usb-1.0 as a dependency for all depthai's examples --- CMakeLists.txt | 29 +++-------------------------- cmake/depthaiHelpers.cmake | 25 +++++++++++++++++++++++++ examples/cpp/CMakeLists.txt | 4 ++++ 3 files changed, 32 insertions(+), 26 deletions(-) create mode 100644 cmake/depthaiHelpers.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 6a218f33a..085dc6abc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -889,32 +889,9 @@ if(DEPTHAI_USB2_PATCH_ONLY_MODE) target_compile_definitions(${TARGET_CORE_NAME} PRIVATE DEPTHAI_PATCH_ONLY_MODE) endif() -# Helper function -macro(add_runtime_dependencies depending_target dependency) - if(TARGET ${dependency}) - get_property(imported_configs TARGET ${dependency} PROPERTY IMPORTED_CONFIGURATIONS) - set(dlls "") - message(STATUS "Adding runtime dependencies for ${depending_target} on ${dependency}. Imported configurations: ${imported_configs}") - foreach(cfg ${imported_configs}) - message(STATUS "Adding runtime dependencies for ${depending_target} on ${dependency} (${cfg})") - get_property(dll TARGET ${dependency} PROPERTY IMPORTED_LOCATION_${cfg}) - message(STATUS "Retrieved dll for ${cfg}: '${dll}'") - list(APPEND dlls $<$:${dll}>) - endforeach() - message(STATUS "Required dlls for ${depending_target} on ${dependency} are: ${dlls}") - endif() - # Create a list of required dll files - set(required_dll_files ${dlls}) - # Copy the required dlls - if(WIN32) - add_custom_command(TARGET ${depending_target} POST_BUILD COMMAND - "$<$:${CMAKE_COMMAND};-E;copy_if_different;${required_dll_files};$>" - COMMAND_EXPAND_LISTS - VERBATIM - ) - message(STATUS "Required dlls for core are: ${required_dll_files}") - endif() -endmacro() +# Include depthaiHelpers.cmake +include(${CMAKE_CURRENT_LIST_DIR}/cmake/depthaiHelpers.cmake) + # Add libusb dll in build time add_runtime_dependencies(${TARGET_CORE_NAME} usb-1.0) # Add dynamic calibration dll in build time diff --git a/cmake/depthaiHelpers.cmake b/cmake/depthaiHelpers.cmake new file mode 100644 index 000000000..32de83535 --- /dev/null +++ b/cmake/depthaiHelpers.cmake @@ -0,0 +1,25 @@ +macro(add_runtime_dependencies depending_target dependency) + if(TARGET ${dependency}) + get_property(imported_configs TARGET ${dependency} PROPERTY IMPORTED_CONFIGURATIONS) + set(dlls "") + message(DEBUG "Adding runtime dependencies for ${depending_target} on ${dependency}. Imported configurations: ${imported_configs}") + foreach(cfg ${imported_configs}) + message(DEBUG "Adding runtime dependencies for ${depending_target} on ${dependency} (${cfg})") + get_property(dll TARGET ${dependency} PROPERTY IMPORTED_LOCATION_${cfg}) + message(DEBUG "Retrieved dll for ${cfg}: '${dll}'") + list(APPEND dlls $<$:${dll}>) + endforeach() + message(DEBUG "Required dlls for ${depending_target} on ${dependency} are: ${dlls}") + endif() + # Create a list of required dll files + set(required_dll_files ${dlls}) + # Copy the required dlls + if(WIN32) + add_custom_command(TARGET ${depending_target} POST_BUILD COMMAND + "$<$:${CMAKE_COMMAND};-E;copy_if_different;${required_dll_files};$>" + COMMAND_EXPAND_LISTS + VERBATIM + ) + message(DEBUG "Required dlls for core are: ${required_dll_files}") + endif() +endmacro() \ No newline at end of file diff --git a/examples/cpp/CMakeLists.txt b/examples/cpp/CMakeLists.txt index 7a2ad3a39..51a92d876 100644 --- a/examples/cpp/CMakeLists.txt +++ b/examples/cpp/CMakeLists.txt @@ -12,6 +12,9 @@ target_include_directories(utility PUBLIC "utility" "$ Date: Mon, 29 Sep 2025 23:09:27 -0400 Subject: [PATCH 4/5] Update cmake/depthaiHelpers.cmake Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- cmake/depthaiHelpers.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/depthaiHelpers.cmake b/cmake/depthaiHelpers.cmake index 32de83535..31be83d00 100644 --- a/cmake/depthaiHelpers.cmake +++ b/cmake/depthaiHelpers.cmake @@ -20,6 +20,6 @@ macro(add_runtime_dependencies depending_target dependency) COMMAND_EXPAND_LISTS VERBATIM ) - message(DEBUG "Required dlls for core are: ${required_dll_files}") + message(DEBUG "Required dlls for ${depending_target} are: ${required_dll_files}") endif() endmacro() \ No newline at end of file From f058ef036b171b44bf1b1da04cc343bd21480d4b Mon Sep 17 00:00:00 2001 From: lnotspotl Date: Tue, 30 Sep 2025 12:48:24 -0400 Subject: [PATCH 5/5] fix add_runtime_dependencies bug --- CMakeLists.txt | 5 ----- cmake/depthaiHelpers.cmake | 6 +++++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 085dc6abc..37e55bd7f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1273,9 +1273,4 @@ if(DEPTHAI_INSTALL) "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" ) - - # Install vcpkg libraries that we link against dynamically - if(DEPTHAI_ENABLE_LIBUSB) - install(IMPORTED_RUNTIME_ARTIFACTS usb-1.0) - endif() endif() diff --git a/cmake/depthaiHelpers.cmake b/cmake/depthaiHelpers.cmake index 31be83d00..4d18facf5 100644 --- a/cmake/depthaiHelpers.cmake +++ b/cmake/depthaiHelpers.cmake @@ -12,7 +12,11 @@ macro(add_runtime_dependencies depending_target dependency) message(DEBUG "Required dlls for ${depending_target} on ${dependency} are: ${dlls}") endif() # Create a list of required dll files - set(required_dll_files ${dlls}) + if(DEFINED required_dll_files) + list(APPEND required_dll_files ${dlls}) + else() + set(required_dll_files ${dlls}) + endif() # Copy the required dlls if(WIN32) add_custom_command(TARGET ${depending_target} POST_BUILD COMMAND