diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d53175c..019b2ed4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -114,15 +114,26 @@ set(LIGHTSTEP_LINK_LIBRARIES ${OPENTRACING_LIBRARY} ${PROTOBUF_LIBRARIES}) if (WITH_GRPC) - find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin) - if (NOT GRPC_CPP_PLUGIN) - message(FATAL_ERROR "grpc_cpp_plugin not found!") + find_package(gRPC CONFIG) + # First attempt to set up gRPC via cmake; but if cmake config files aren't + # available, fallback to pkg-config. + if (gRPC_FOUND) + set(GRPC_CPP_PLUGIN $) + list(APPEND LIGHTSTEP_LINK_LIBRARIES gRPC::grpc++) + include_directories(SYSTEM + $) + else() + message("Falling back to finding gRPC with pkg-config") + find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin) + if (NOT GRPC_CPP_PLUGIN) + message(FATAL_ERROR "grpc_cpp_plugin not found!") + endif() + find_package(PkgConfig REQUIRED) + pkg_search_module(GRPC REQUIRED grpc) + pkg_search_module(GRPCPP REQUIRED grpc++) + list(APPEND LIGHTSTEP_LINK_LIBRARIES ${GRPCPP_LDFLAGS} ${GRPC_LDFLAGS}) + include_directories(SYSTEM ${GRPC_INCLUDE_DIRS} ${GRPCPP_INCLUDE_DIRS}) endif() - find_package(PkgConfig REQUIRED) - pkg_search_module(GRPC REQUIRED grpc) - pkg_search_module(GRPCPP REQUIRED grpc++) - list(APPEND LIGHTSTEP_LINK_LIBRARIES ${GRPCPP_LDFLAGS} ${GRPC_LDFLAGS}) - include_directories(SYSTEM ${GRPC_INCLUDE_DIRS} ${GRPCPP_INCLUDE_DIRS}) endif() set(CMAKE_THREAD_PREFER_PTHREAD TRUE)