Reject lower version of gRPC. (#145)
Signed-off-by: Tao He <sighingnow@gmail.com>
This commit is contained in:
parent
2ed6cacce9
commit
efa502831d
|
|
@ -87,7 +87,12 @@ else()
|
||||||
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindGRPC.cmake)
|
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindGRPC.cmake)
|
||||||
set(GRPC_LIBRARIES ${GPR_LIBRARY} ${GRPC_LIBRARY} ${GRPC_GRPC++_LIBRARY})
|
set(GRPC_LIBRARIES ${GPR_LIBRARY} ${GRPC_LIBRARY} ${GRPC_GRPC++_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
|
if(gRPC_FOUND AND gRPC_VERSION VERSION_LESS "1.13")
|
||||||
|
message(FATAL_ERROR "gRPC '${gRPC_VERSION}' is not supported, please install a newer gRPC library "
|
||||||
|
"by following the example below"
|
||||||
|
"\n"
|
||||||
|
" https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3/blob/master/.github/workflows/build-test.yml#L50-L75")
|
||||||
|
endif()
|
||||||
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/GenerateProtobufGRPC.cmake)
|
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/GenerateProtobufGRPC.cmake)
|
||||||
|
|
||||||
# will set `PROTOBUF_GENERATES`, indicates all generated .cc files, and a target `protobuf_generates`.
|
# will set `PROTOBUF_GENERATES`, indicates all generated .cc files, and a target `protobuf_generates`.
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,32 @@ set_target_properties(gRPC::grpc_cpp_plugin PROPERTIES
|
||||||
IMPORTED_LOCATION ${GRPC_CPP_PLUGIN}
|
IMPORTED_LOCATION ${GRPC_CPP_PLUGIN}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
file(
|
||||||
|
WRITE "${CMAKE_BINARY_DIR}/get_gRPC_version.cc"
|
||||||
|
[====[
|
||||||
|
#include <grpc++/grpc++.h>
|
||||||
|
#include <iostream>
|
||||||
|
int main() {
|
||||||
|
std::cout << grpc::Version(); // no newline to simplify CMake module
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
]====])
|
||||||
|
|
||||||
|
try_run(
|
||||||
|
_gRPC_GET_VERSION_STATUS
|
||||||
|
_gRPC_GET_VERSION_COMPILE_STATUS
|
||||||
|
"${CMAKE_BINARY_DIR}"
|
||||||
|
"${CMAKE_BINARY_DIR}/get_gRPC_version.cc"
|
||||||
|
LINK_LIBRARIES
|
||||||
|
gRPC::grpc++
|
||||||
|
gRPC::grpc
|
||||||
|
COMPILE_OUTPUT_VARIABLE _gRPC_GET_VERSION_COMPILE_OUTPUT
|
||||||
|
RUN_OUTPUT_VARIABLE gRPC_VERSION)
|
||||||
|
|
||||||
|
file(REMOVE "${CMAKE_BINARY_DIR}/get_gRPC_version.cc")
|
||||||
|
|
||||||
include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
|
include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(gRPC DEFAULT_MSG
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(gRPC
|
||||||
GPR_LIBRARY GRPC_LIBRARY GRPC_INCLUDE_DIR GRPC_GRPC++_REFLECTION_LIBRARY GRPC_CPP_PLUGIN)
|
FOUND_VAR gRPC_FOUND
|
||||||
|
REQUIRED_VARS GRPC_LIBRARY GPR_LIBRARY GRPC_INCLUDE_DIR GRPC_GRPC++_REFLECTION_LIBRARY GRPC_CPP_PLUGIN
|
||||||
|
VERSION_VAR gRPC_VERSION)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue