Make GPRC and protobuf external components to RDC

Pass in GRPC root (or use default location) for RDC to use
when building RDC components.

Change-Id: I89db2ac2be27ab6449c817d210a94c11fef965fd


[ROCm/rdc commit: 1b58033183]
This commit is contained in:
Chris Freehill
2020-04-20 12:24:33 -05:00
والد dc48d8c977
کامیت 819c4febca
7فایلهای تغییر یافته به همراه33 افزوده شده و 11 حذف شده
+16 -5
مشاهده پرونده
@@ -28,6 +28,9 @@ cmake_minimum_required(VERSION 3.5.0)
set(RSMI_INC_DIR ${ROCM_DIR}/rocm_smi/include)
set(RSMI_LIB_DIR ${ROCM_DIR}/rocm_smi/lib)
if (NOT DEFINED GRPC_ROOT)
set(GRPC_ROOT "/usr/local")
endif()
if (NOT DEFINED RDC_CLIENT_ROOT_PATH)
set(RDC_CLIENT_ROOT_PATH "/opt/rocm/")
endif()
@@ -75,6 +78,11 @@ project(${RDC})
set(RDC_SRC_ROOT "${PROJECT_SOURCE_DIR}")
message("Build Configuration:")
message("-----------GRPC ROOT: " ${GRPC_ROOT})
message("-----------ROCM_DIR : " ${ROCM_DIR})
# Create a configure file to get version info from within library
configure_file(
"${PROJECT_SOURCE_DIR}/src/${RDC}64Config.in"
@@ -105,25 +113,28 @@ set(CMAKE_VERBOSE_MAKEFILE on)
file(GLOB PROTOB_DEF_SRC_FILES "protos/*.proto")
set(PROTOB_SRC_DIR "${PROJECT_SOURCE_DIR}/protos")
set(PROTOB_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}")
set(PROTOB_CMD "protoc")
set(PROTOB_CMD "${GRPC_ROOT}/bin/protoc")
set(GRPC_PLUGIN "${GRPC_ROOT}/bin/grpc_cpp_plugin")
set(GRPC_LIB_DIR "${GRPC_ROOT}/lib")
set(ENV{LD_LIBRARY_PATH} ${GRPC_LIB_DIR})
foreach(file ${PROTOB_DEF_SRC_FILES})
execute_process(COMMAND
protoc --proto_path=${PROTOB_SRC_DIR} --cpp_out=${PROTOB_OUT_DIR} ${file}
${PROTOB_CMD} --proto_path=${PROTOB_SRC_DIR} --cpp_out=${PROTOB_OUT_DIR} ${file}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
RESULT_VARIABLE PROTOB_RESULT
OUTPUT_VARIABLE PROTOB_OUT_VAR)
message("protoc command returned: ${PROTOB_RESULT}")
find_program (GRPC_PLUGIN NAMES grpc_cpp_plugin)
# find_program (GRPC_PLUGIN NAMES grpc_cpp_plugin)
message("GRPC_PLUGIN=${GRPC_PLUGIN})")
message("protoc cmd:")
message(" $ protoc --proto_path=${PROTOB_SRC_DIR}")
message(" $ ${PROTOB_CMD} --proto_path=${PROTOB_SRC_DIR}")
message(" --grpc_out=${PROTOB_OUT_DIR}")
message("....--plugin=\"${GRPC_PLUGIN}\" ${file}")
execute_process(COMMAND
protoc --proto_path=${PROTOB_SRC_DIR} --grpc_out=${PROTOB_OUT_DIR}
${PROTOB_CMD} --proto_path=${PROTOB_SRC_DIR} --grpc_out=${PROTOB_OUT_DIR}
--plugin=protoc-gen-grpc=${GRPC_PLUGIN} ${file}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
RESULT_VARIABLE PROTOB_RESULT
@@ -53,6 +53,7 @@ message("--------Proj Lib Dir: " ${PROJECT_BINARY_DIR}/lib)
message("--------Proj Exe Dir: " ${PROJECT_BINARY_DIR}/bin)
message("--------RSMI Lib Dir: " ${RSMI_LIB_DIR})
message("--------RSMI Inc Dir: " ${RSMI_INC_DIR})
message("-------GRPC Root Dir: " ${GRPC_ROOT})
message("")
## Set default module path if not already set
@@ -135,6 +136,7 @@ set(CLIENT_LIB_INC_LIST ${CLIENT_LIB_INC_LIST}
set(CLIENT_LIB_INC_LIST ${CLIENT_LIB_INC_LIST}
"${PROJECT_SOURCE_DIR}/common/rdc_utils.h")
link_directories(${GRPC_ROOT}/lib)
add_library(${CLIENT_LIB} SHARED ${CLIENT_LIB_SRC_LIST} ${CLIENT_LIB_INC_LIST})
target_link_libraries(${CLIENT_LIB} pthread rt grpc grpc++ grpc++_reflection
dl protobuf)
@@ -143,6 +145,7 @@ target_include_directories(${CLIENT_LIB} PRIVATE
"${PROJECT_SOURCE_DIR}/include"
"${CMAKE_CURRENT_SOURCE_DIR}/include"
"${PROTOB_OUT_DIR}"
"${GRPC_ROOT}/include"
"${RSMI_INC_DIR}")
# TODO: set the properties for the library once we have one
## Set the VERSION and SOVERSION values
@@ -758,8 +758,8 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
INPUT = @CMAKE_CURRENT_SOURCE_DIR@/docs/README.md \
@CMAKE_CURRENT_SOURCE_DIR@/client/include/rdc/rdc.h
INPUT = @CMAKE_CURRENT_SOURCE_DIR@/docs/README.md \
@CMAKE_CURRENT_SOURCE_DIR@/client/include/rdc/rdc_client.h
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -163,7 +163,7 @@ set(RDC_LIB_INC_LIST ${RDC_LIB_INC_LIST} "${RDC_LIB_INC_DIR}/rdc_lib/impl/RdcWat
message("RDC_LIB_INC_LIST=${RDC_LIB_INC_LIST}")
link_directories(${RSMI_LIB_DIR})
link_directories(${RSMI_LIB_DIR} "${GRPC_ROOT}/lib")
add_library(${RDC_LIB} SHARED ${RDC_LIB_SRC_LIST} ${RDC_LIB_INC_LIST})
target_link_libraries(${RDC_LIB} pthread rocm_smi64)
target_include_directories(${RDC_LIB} PRIVATE
@@ -199,6 +199,7 @@ add_library(${RDCCLIENT_LIB} SHARED ${RDCCLIENT_LIB_SRC_LIST} ${RDCCLIENT_LIB_IN
target_link_libraries(${RDCCLIENT_LIB} pthread rt grpc grpc++ grpc++_reflection
dl protobuf)
target_include_directories(${RDCCLIENT_LIB} PRIVATE
"${GRPC_ROOT}/include"
"${PROJECT_SOURCE_DIR}"
"${PROJECT_SOURCE_DIR}/include"
"${PROTOB_OUT_DIR}"
@@ -38,6 +38,7 @@ message("--------Proj Lib Dir: " ${PROJECT_BINARY_DIR}/lib)
message("--------Proj Exe Dir: " ${PROJECT_BINARY_DIR}/bin)
message("--------RSMI Lib Dir: " ${RSMI_LIB_DIR})
message("--------RSMI Inc Dir: " ${RSMI_INC_DIR})
message("-------GRPC ROOT Dir: " ${GRPC_ROOT})
message("")
set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
@@ -65,6 +66,7 @@ set(INC_DIR "${PROJECT_SOURCE_DIR}/rdci/include")
set(LIB_BOOSTRAP_DIR "${PROJECT_BINARY_DIR}/rdc_libs")
include_directories(${INC_DIR} ${PROJECT_SOURCE_DIR}/include
"${GRPC_ROOT}/include"
${PROJECT_SOURCE_DIR})
set(RDCI_SRC_LIST "${SRC_DIR}/rdci.cc")
@@ -38,6 +38,7 @@ message("--------Proj Lib Dir: " ${PROJECT_BINARY_DIR}/lib)
message("--------Proj Exe Dir: " ${PROJECT_BINARY_DIR}/bin)
message("--------RSMI Lib Dir: " ${RSMI_LIB_DIR})
message("--------RSMI Inc Dir: " ${RSMI_INC_DIR})
message("-------GRPC Root Dir: " ${GRPC_ROOT})
message("")
set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
@@ -69,7 +70,10 @@ file(GLOB PROTOBUF_GENERATED_SRCS "${PROTOB_OUT_DIR}/*.cc")
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include
"${PROJECT_SOURCE_DIR}/include"
"${PROTOB_OUT_DIR}" "${RSMI_INC_DIR}" "${RDC_SRC_ROOT}")
"${GRPC_ROOT}/include"
"${PROTOB_OUT_DIR}"
"${RSMI_INC_DIR}"
"${RDC_SRC_ROOT}")
set(SERVER_SRC_LIST "${SRC_DIR}/rdc_rsmi_service.cc")
set(SERVER_SRC_LIST ${SERVER_SRC_LIST} "${SRC_DIR}/rdc_admin_service.cc")
@@ -83,7 +87,7 @@ message("SERVER_SRC_LIST=${SERVER_SRC_LIST}")
set(SERVER_DAEMON_EXE "rdcd")
set(SERVICE_FILE_NAME "rdc.service")
link_directories(${RSMI_LIB_DIR})
link_directories(${RSMI_LIB_DIR} ${GRPC_ROOT}/lib)
add_executable(${SERVER_DAEMON_EXE} "${SERVER_SRC_LIST}")
# target_include_directories(${SERVER_DAEMON_EXE} PUBLIC ${RSMI_INC_DIR})
@@ -142,7 +142,7 @@ aux_source_directory(${RDCTST_ROOT}/functional functionalSources)
# Specify the directory containing various libraries of ROCR
# to be linked against for building ROC Perf applications
#
link_directories(${RDC_LIB_DIR})
link_directories(${RDC_LIB_DIR} "${GRPC_ROOT}/lib")
#
# Source files for building rocrtst
#
@@ -154,6 +154,7 @@ add_executable(${RDCTST} ${rdctstSources} ${functionalSources})
# Header file include path
target_include_directories(${RDCTST} PRIVATE ${RDC_INC_DIR}
PRIVATE ${RSMI_INC_DIR}
PRIVATE ${GRPC_ROOT}/include
PRIVATE ${RDCTST_ROOT}/..
PRIVATE ${RDCTST_ROOT}/gtest/include)