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:
@@ -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)
|
||||
|
||||
|
||||
مرجع در شماره جدید
Block a user