| ##===----------------------------------------------------------------------===## |
| # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| # See https://llvm.org/LICENSE.txt for license information. |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| # |
| ##===----------------------------------------------------------------------===## |
| # |
| # Build a plugin (client) and server for remote offloading. |
| # |
| ##===----------------------------------------------------------------------===# |
| |
| if (NOT(CMAKE_SYSTEM_NAME MATCHES "Linux")) |
| libomptarget_say("Not building remote offloading plugin: only support Linux hosts.") |
| return() |
| endif() |
| |
| if (NOT(LIBOMPTARGET_ENABLE_EXPERIMENTAL_REMOTE_PLUGIN)) |
| return() |
| endif() |
| |
| find_package(Protobuf) |
| find_package(gRPC CONFIG) |
| |
| find_program(PROTOC protoc) |
| find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin) |
| |
| if (Protobuf_FOUND AND gRPC_FOUND AND PROTOC AND GRPC_CPP_PLUGIN) |
| libomptarget_say("Building remote offloading plugin.") |
| set(directory "${CMAKE_BINARY_DIR}/include/openmp/libomptarget/plugins/remote/") |
| file(MAKE_DIRECTORY ${directory}) |
| execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${directory}) |
| execute_process( |
| COMMAND protoc --cpp_out=${directory} -I ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/include/openmp.proto |
| COMMAND protoc --grpc_out=${directory} -I ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/include/openmp.proto --plugin=protoc-gen-grpc=${GRPC_CPP_PLUGIN} |
| ) |
| |
| set(GRPC_SRC_FILES |
| ${directory}/openmp.grpc.pb.cc |
| ${directory}/openmp.pb.cc |
| ) |
| |
| set(GRPC_INCLUDE_DIR |
| ${directory} |
| ) |
| |
| set(RPC_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include/) |
| set(RPC_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/) |
| |
| add_subdirectory(src) |
| add_subdirectory(server) |
| else() |
| libomptarget_say("Not building remote offloading plugin: required libraries were not found.") |
| endif() |
| |