Install grpc lib to rdc folder
Install the grpc lib to rdc/grpc/lib and add miss libraries. Add “--no-as-needed” and all extra grpc libraries in rdci/rdcd as RUNPATH will only search direct dependencies. Change-Id: I596acb2eb3a7228d703e79db64699bc20d0e7c09
Этот коммит содержится в:
+14
-4
@@ -150,7 +150,7 @@ if(BUILD_STANDALONE)
|
||||
message("protoc cmd:")
|
||||
message(" $ ${PROTOB_CMD} --proto_path=${PROTOB_SRC_DIR}")
|
||||
message(" --grpc_out=${PROTOB_OUT_DIR}")
|
||||
message("....--plugin=\"${GRPC_PLUGIN}\" ${file}")
|
||||
message("....--plugin=protoc-gen-grpc=\"${GRPC_PLUGIN}\" ${file}")
|
||||
|
||||
execute_process(COMMAND
|
||||
${PROTOB_CMD} --proto_path=${PROTOB_SRC_DIR}
|
||||
@@ -177,9 +177,19 @@ set(CLIENT_COMPONENT "client")
|
||||
# Standalone only folders
|
||||
if(BUILD_STANDALONE)
|
||||
install(DIRECTORY ${GRPC_ROOT}/lib
|
||||
USE_SOURCE_PERMISSIONS
|
||||
DESTINATION usr
|
||||
FILES_MATCHING PATTERN "libgrpc*")
|
||||
USE_SOURCE_PERMISSIONS
|
||||
DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/grpc
|
||||
COMPONENT ${SERVER_COMPONENT})
|
||||
# Also include dev setup for people do not want to build grpc
|
||||
install(DIRECTORY ${GRPC_ROOT}/bin
|
||||
USE_SOURCE_PERMISSIONS
|
||||
DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/grpc
|
||||
COMPONENT ${SERVER_COMPONENT})
|
||||
|
||||
install(DIRECTORY ${GRPC_ROOT}/include
|
||||
USE_SOURCE_PERMISSIONS
|
||||
DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/grpc
|
||||
COMPONENT ${SERVER_COMPONENT})
|
||||
|
||||
add_subdirectory("server")
|
||||
add_subdirectory("client")
|
||||
|
||||
@@ -65,6 +65,15 @@ set(SRC_DIR "${PROJECT_SOURCE_DIR}/rdc_libs")
|
||||
set(RDC_LIB_INC_DIR "${PROJECT_SOURCE_DIR}/include")
|
||||
set(COMMON_DIR "${PROJECT_SOURCE_DIR}/common")
|
||||
|
||||
## Set RUNPATH if ROCM_RPATH is defined and passed by the environment
|
||||
## RUNPATH should help to run "rdcd" without the usage of ldconfig
|
||||
if (DEFINED ENV{ROCM_RPATH})
|
||||
set (LIB_RUNPATH "\$ORIGIN/../lib:\$ORIGIN/../lib64")
|
||||
set (CMAKE_SHARED_LINKER_FLAGS "-Wl,--enable-new-dtags -Wl,--no-as-needed -Wl,-z,origin")
|
||||
set (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:${LIB_RUNPATH}")
|
||||
set (CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
set (CMAKE_SKIP_BUILD_RPATH TRUE)
|
||||
endif()
|
||||
|
||||
################# Determine the library version #########################
|
||||
## Setup the SO version based on git tags.
|
||||
|
||||
@@ -85,19 +85,29 @@ set(RDCI_SRC_LIST ${RDCI_SRC_LIST}
|
||||
message("RDCI_SRC_LIST=${RDCI_SRC_LIST}")
|
||||
set(RDCI_EXE "rdci")
|
||||
|
||||
link_directories(${LIB_BOOSTRAP_DIR})
|
||||
link_directories(${LIB_BOOSTRAP_DIR} "${GRPC_ROOT}/lib" "${GRPC_ROOT}/lib64")
|
||||
|
||||
add_executable(${RDCI_EXE} "${RDCI_SRC_LIST}")
|
||||
|
||||
## RUNPATH should help to run "rdci" without the usage of ldconfig
|
||||
set(RDC_RUNPATH "\$ORIGIN:\$ORIGIN/../lib:\$ORIGIN/../lib64")
|
||||
set(GRPC_RUNPATH "\$ORIGIN/../../grpc/lib:\$ORIGIN/../../grpc/lib64")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-new-dtags -Wl,--rpath,${RDC_RUNPATH}:${GRPC_RUNPATH}")
|
||||
set(CMAKE_SKIP_BUILD_RPATH TRUE)
|
||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
set(CMAKE_SKIP_RPATH TRUE)
|
||||
if (DEFINED ENV{ROCM_RPATH})
|
||||
set(RDC_RUNPATH "\$ORIGIN:\$ORIGIN/../lib:\$ORIGIN/../lib64")
|
||||
set(GRPC_RUNPATH "\$ORIGIN/../grpc/lib:\$ORIGIN/../grpc/lib64")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-new-dtags -Wl,--rpath,${RDC_RUNPATH}:${GRPC_RUNPATH} -Wl,--no-as-needed -Wl,-z,origin")
|
||||
set(CMAKE_SKIP_BUILD_RPATH TRUE)
|
||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
set(CMAKE_SKIP_RPATH TRUE)
|
||||
|
||||
target_link_libraries(${RDCI_EXE} pthread dl rdc_bootstrap)
|
||||
# Run path can only include direct refer library, here is the indirect libs
|
||||
# required by gRPC
|
||||
set (RDCD_EXTRA_LIB absl_str_format_internal absl_strings absl_throw_delegate
|
||||
absl_bad_optional_access absl_strings absl_throw_delegate absl_int128
|
||||
absl_strings_internal absl_raw_logging_internal address_sorting
|
||||
gpr upb ssl crypto )
|
||||
|
||||
endif()
|
||||
|
||||
target_link_libraries(${RDCI_EXE} ${RDCD_EXTRA_LIB} pthread dl rdc_bootstrap)
|
||||
|
||||
|
||||
## Add the install directives for the rdci executable
|
||||
|
||||
@@ -89,17 +89,24 @@ link_directories(${RSMI_LIB_DIR} "${GRPC_ROOT}/lib" "${GRPC_ROOT}/lib64")
|
||||
## Set RUNPATH if ROCM_RPATH is defined and passed by the environment
|
||||
## RUNPATH should help to run "rdcd" without the usage of ldconfig
|
||||
if (DEFINED ENV{ROCM_RPATH})
|
||||
set (GRPC_RUNPATH "\$ORIGIN/../../grpc/lib:\$ORIGIN/../../grpc/lib64")
|
||||
set (CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-new-dtags")
|
||||
set (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:${GRPC_RUNPATH}")
|
||||
set (CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
set (CMAKE_SKIP_BUILD_RPATH TRUE)
|
||||
endif ()
|
||||
set (GRPC_RUNPATH "\$ORIGIN/../lib:\$ORIGIN/../grpc/lib:\$ORIGIN/../grpc/lib64")
|
||||
set (CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-new-dtags -Wl,--no-as-needed -Wl,-z,origin")
|
||||
set (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:${GRPC_RUNPATH}")
|
||||
set (CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
set (CMAKE_SKIP_BUILD_RPATH TRUE)
|
||||
|
||||
# Run path can only include direct refer library, here is the indirect libs
|
||||
# required by gRPC
|
||||
set (RDCD_EXTRA_LIB absl_str_format_internal absl_strings absl_throw_delegate
|
||||
absl_bad_optional_access absl_strings absl_throw_delegate absl_int128
|
||||
absl_strings_internal absl_raw_logging_internal address_sorting
|
||||
gpr upb ssl crypto)
|
||||
endif()
|
||||
|
||||
add_executable(${SERVER_DAEMON_EXE} "${SERVER_SRC_LIST}")
|
||||
# target_include_directories(${SERVER_DAEMON_EXE} PUBLIC ${RSMI_INC_DIR})
|
||||
|
||||
target_link_libraries(${SERVER_DAEMON_EXE} pthread rt grpc grpc++
|
||||
target_link_libraries(${SERVER_DAEMON_EXE} ${RDCD_EXTRA_LIB} pthread rt grpc grpc++
|
||||
cap grpc++_reflection dl protobuf rocm_smi64 rdc_bootstrap)
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${SERVER_DAEMON_EXE}
|
||||
|
||||
Ссылка в новой задаче
Block a user