diff --git a/CMakeLists.txt b/CMakeLists.txt index 869bff4e1..37e55bd7f 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 @@ -1296,5 +1273,4 @@ if(DEPTHAI_INSTALL) "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" ) - endif() 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) diff --git a/cmake/depthaiHelpers.cmake b/cmake/depthaiHelpers.cmake new file mode 100644 index 000000000..4d18facf5 --- /dev/null +++ b/cmake/depthaiHelpers.cmake @@ -0,0 +1,29 @@ +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 + 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 + "$<$:${CMAKE_COMMAND};-E;copy_if_different;${required_dll_files};$>" + COMMAND_EXPAND_LISTS + VERBATIM + ) + message(DEBUG "Required dlls for ${depending_target} 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" "$