fix(aubo): isolate AUBO SDK runtime libraries
(cherry picked from commit 59e31cbfde)
This commit is contained in:
parent
0c381644c9
commit
d021fea112
@ -1,13 +1,61 @@
|
|||||||
add_library(aubo_arm SHARED
|
add_library(aubo_arm SHARED
|
||||||
src/aubo_arm.cpp
|
aubo_arm.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(aubo_arm PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
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_ROOT ${CMAKE_SOURCE_DIR}/dependency/${ARCH}/third_party/aubo_sdk/v0.27.1)
|
||||||
set(AUBO_SDK_LIB_DIR ${CMAKE_SOURCE_DIR}/third_party/AuboSdk/linux/lib)
|
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_compile_definitions(aubo_arm PRIVATE CMVR_HAS_AUBO_SDK)
|
||||||
target_include_directories(aubo_arm PRIVATE ${AUBO_SDK_INCLUDE_DIR})
|
target_include_directories(aubo_arm PRIVATE ${AUBO_SDK_INCLUDE_DIR})
|
||||||
if (EXISTS "${AUBO_SDK_LIB_DIR}")
|
if (EXISTS "${AUBO_SDK_LIB_DIR}")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user