diff --git a/cmvr-es/devices/arm/aubo_arm/CMakeLists.txt b/cmvr-es/devices/arm/aubo_arm/CMakeLists.txt index 0a98cfe5..d56d09cb 100644 --- a/cmvr-es/devices/arm/aubo_arm/CMakeLists.txt +++ b/cmvr-es/devices/arm/aubo_arm/CMakeLists.txt @@ -1,13 +1,61 @@ add_library(aubo_arm SHARED - src/aubo_arm.cpp + aubo_arm.cpp ) target_include_directories(aubo_arm PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -set(AUBO_SDK_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/third_party/AuboSdk/linux/include) -set(AUBO_SDK_LIB_DIR ${CMAKE_SOURCE_DIR}/third_party/AuboSdk/linux/lib) +set(AUBO_SDK_ROOT ${CMAKE_SOURCE_DIR}/dependency/${ARCH}/third_party/aubo_sdk/v0.27.1) +set(AUBO_SDK_INCLUDE_DIR ${AUBO_SDK_ROOT}/include) +set(AUBO_SDK_LIB_DIR ${AUBO_SDK_ROOT}/lib) -if (EXISTS "${AUBO_SDK_INCLUDE_DIR}/aubo_sdk/rpc.h") +if (EXISTS "${AUBO_SDK_LIB_DIR}/cmake/aubo_sdk/aubo_sdkConfig.cmake") + list(APPEND CMAKE_PREFIX_PATH "${AUBO_SDK_LIB_DIR}/cmake") + find_package(Qt5Core QUIET) + if (NOT Qt5Core_FOUND AND NOT TARGET Qt5::Core) + find_library(QT5_CORE_LIBRARY + NAMES Qt5Core libQt5Core.so.5 + PATHS /lib /usr/lib /usr/local/lib /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu + ) + if (QT5_CORE_LIBRARY) + add_library(Qt5::Core UNKNOWN IMPORTED) + set_target_properties(Qt5::Core PROPERTIES + IMPORTED_LOCATION "${QT5_CORE_LIBRARY}" + ) + 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) +elseif (EXISTS "${AUBO_SDK_INCLUDE_DIR}/aubo_sdk/rpc.h") target_compile_definitions(aubo_arm PRIVATE CMVR_HAS_AUBO_SDK) target_include_directories(aubo_arm PRIVATE ${AUBO_SDK_INCLUDE_DIR}) if (EXISTS "${AUBO_SDK_LIB_DIR}")