From 59e31cbfde67ab9e1bfe3d0497c1d9731e73f502 Mon Sep 17 00:00:00 2001 From: lgv Date: Thu, 30 Jul 2026 14:14:18 +0800 Subject: [PATCH] fix(aubo): isolate AUBO SDK runtime libraries --- cmvr-es/devices/arm/aubo_arm/CMakeLists.txt | 25 +++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/cmvr-es/devices/arm/aubo_arm/CMakeLists.txt b/cmvr-es/devices/arm/aubo_arm/CMakeLists.txt index b8947772..d56d09cb 100644 --- a/cmvr-es/devices/arm/aubo_arm/CMakeLists.txt +++ b/cmvr-es/devices/arm/aubo_arm/CMakeLists.txt @@ -24,9 +24,34 @@ if (EXISTS "${AUBO_SDK_LIB_DIR}/cmake/aubo_sdk/aubo_sdkConfig.cmake") endif() endif() find_package(aubo_sdk REQUIRED CONFIG PATHS "${AUBO_SDK_LIB_DIR}/cmake/aubo_sdk" NO_DEFAULT_PATH) + + # The vendor directory contains an old private libstdc++. Keep it out of + # consumers' RUNPATH by staging only the AUBO runtime libraries. + set(AUBO_CLEAN_LIB_DIR "${CMAKE_CURRENT_BINARY_DIR}/aubo_sdk_runtime") + file(MAKE_DIRECTORY "${AUBO_CLEAN_LIB_DIR}") + foreach(AUBO_LIB + libaubo_sdk.so + libaubo_sdkd.so + librobot_proxy.so + librobot_proxyd.so) + file(COPY_FILE + "${AUBO_SDK_LIB_DIR}/${AUBO_LIB}" + "${AUBO_CLEAN_LIB_DIR}/${AUBO_LIB}" + ONLY_IF_DIFFERENT + ) + endforeach() + set_target_properties(aubo_sdk::aubo_sdk aubo_sdk::robot_proxy PROPERTIES MAP_IMPORTED_CONFIG_DEBUG Release ) + set_target_properties(aubo_sdk::aubo_sdk PROPERTIES + IMPORTED_LOCATION_RELEASE "${AUBO_CLEAN_LIB_DIR}/libaubo_sdk.so" + IMPORTED_LOCATION_DEBUG "${AUBO_CLEAN_LIB_DIR}/libaubo_sdkd.so" + ) + set_target_properties(aubo_sdk::robot_proxy PROPERTIES + IMPORTED_LOCATION_RELEASE "${AUBO_CLEAN_LIB_DIR}/librobot_proxy.so" + IMPORTED_LOCATION_DEBUG "${AUBO_CLEAN_LIB_DIR}/librobot_proxyd.so" + ) target_compile_definitions(aubo_arm PRIVATE CMVR_HAS_AUBO_SDK) target_include_directories(aubo_arm PRIVATE ${AUBO_SDK_INCLUDE_DIR}) target_link_libraries(aubo_arm PRIVATE aubo_sdk::aubo_sdk)