diff --git a/projects/rdc/CMakeLists.txt b/projects/rdc/CMakeLists.txt index 10e3e66c70..b2fe7f88ff 100755 --- a/projects/rdc/CMakeLists.txt +++ b/projects/rdc/CMakeLists.txt @@ -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 diff --git a/projects/rdc/client/CMakeLists.txt b/projects/rdc/client/CMakeLists.txt index a0d40460d8..552fdcdaf9 100755 --- a/projects/rdc/client/CMakeLists.txt +++ b/projects/rdc/client/CMakeLists.txt @@ -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 diff --git a/projects/rdc/docs/rdc_doxygen.cfg b/projects/rdc/docs/rdc_doxygen.cfg index 1e0a348da6..7708a84804 100644 --- a/projects/rdc/docs/rdc_doxygen.cfg +++ b/projects/rdc/docs/rdc_doxygen.cfg @@ -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 diff --git a/projects/rdc/rdc_libs/CMakeLists.txt b/projects/rdc/rdc_libs/CMakeLists.txt index 5565fba4d2..425fac45dd 100755 --- a/projects/rdc/rdc_libs/CMakeLists.txt +++ b/projects/rdc/rdc_libs/CMakeLists.txt @@ -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}" diff --git a/projects/rdc/rdci/CMakeLists.txt b/projects/rdc/rdci/CMakeLists.txt index 50a4732270..477f258cc2 100644 --- a/projects/rdc/rdci/CMakeLists.txt +++ b/projects/rdc/rdci/CMakeLists.txt @@ -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") diff --git a/projects/rdc/server/CMakeLists.txt b/projects/rdc/server/CMakeLists.txt index 69a6e357b7..9fabac9318 100755 --- a/projects/rdc/server/CMakeLists.txt +++ b/projects/rdc/server/CMakeLists.txt @@ -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}) diff --git a/projects/rdc/tests/rdc_tests/CMakeLists.txt b/projects/rdc/tests/rdc_tests/CMakeLists.txt index 1dad701518..14fb1e83a8 100755 --- a/projects/rdc/tests/rdc_tests/CMakeLists.txt +++ b/projects/rdc/tests/rdc_tests/CMakeLists.txt @@ -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)