Skip to content

Commit 7a221e5

Browse files
authored
Support setting up gRPC via cmake (#120)
* Bump version. * Add support for finding gRPC via cmake. * Add missing include.
1 parent 32bee7b commit 7a221e5

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

CMakeLists.txt

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -114,15 +114,26 @@ set(LIGHTSTEP_LINK_LIBRARIES ${OPENTRACING_LIBRARY}
114114
${PROTOBUF_LIBRARIES})
115115

116116
if (WITH_GRPC)
117-
find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin)
118-
if (NOT GRPC_CPP_PLUGIN)
119-
message(FATAL_ERROR "grpc_cpp_plugin not found!")
117+
find_package(gRPC CONFIG)
118+
# First attempt to set up gRPC via cmake; but if cmake config files aren't
119+
# available, fallback to pkg-config.
120+
if (gRPC_FOUND)
121+
set(GRPC_CPP_PLUGIN $<TARGET_FILE:gRPC::grpc_cpp_plugin>)
122+
list(APPEND LIGHTSTEP_LINK_LIBRARIES gRPC::grpc++)
123+
include_directories(SYSTEM
124+
$<TARGET_PROPERTY:gRPC::grpc++,INTERFACE_INCLUDE_DIRECTORIES>)
125+
else()
126+
message("Falling back to finding gRPC with pkg-config")
127+
find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin)
128+
if (NOT GRPC_CPP_PLUGIN)
129+
message(FATAL_ERROR "grpc_cpp_plugin not found!")
130+
endif()
131+
find_package(PkgConfig REQUIRED)
132+
pkg_search_module(GRPC REQUIRED grpc)
133+
pkg_search_module(GRPCPP REQUIRED grpc++)
134+
list(APPEND LIGHTSTEP_LINK_LIBRARIES ${GRPCPP_LDFLAGS} ${GRPC_LDFLAGS})
135+
include_directories(SYSTEM ${GRPC_INCLUDE_DIRS} ${GRPCPP_INCLUDE_DIRS})
120136
endif()
121-
find_package(PkgConfig REQUIRED)
122-
pkg_search_module(GRPC REQUIRED grpc)
123-
pkg_search_module(GRPCPP REQUIRED grpc++)
124-
list(APPEND LIGHTSTEP_LINK_LIBRARIES ${GRPCPP_LDFLAGS} ${GRPC_LDFLAGS})
125-
include_directories(SYSTEM ${GRPC_INCLUDE_DIRS} ${GRPCPP_INCLUDE_DIRS})
126137
endif()
127138

128139
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)

0 commit comments

Comments
 (0)