1
+ cmake_minimum_required (VERSION 3.20)
2
+
3
+ project (protoc-gen-grpc-c)
4
+
5
+ set (PROTO_C_FILE "protobuf-c.proto" )
6
+ set (PROTO_C_DIR "${PROJECT_SOURCE_DIR} /../protobuf-c/" )
7
+
8
+ include_directories ("${PROJECT_SOURCE_DIR} /" )
9
+ include_directories ("${PROTO_C_DIR} " )
10
+
11
+ find_package (protobuf CONFIG REQUIRED)
12
+ find_package (protobuf-c CONFIG REQUIRED)
13
+
14
+ add_custom_command (
15
+ OUTPUT ${PROTO_C_DIR} /protobuf-c/protobuf-c.pb.cc
16
+ COMMAND ${PROTOBUF_PROTOC_EXECUTABLE} --cpp_out=${PROTO_C_DIR} /protobuf-c/ --proto_path=${PROTO_C_DIR} /protobuf-c/ ${PROTO_C_FILE}
17
+ )
18
+
19
+ # add the executable
20
+ add_executable (protoc-gen-grpc-c
21
+ ${PROTO_C_DIR} /protobuf-c/protobuf-c.pb.cc
22
+ ${PROTO_C_DIR} /protoc-c/c_bytes_field.cc
23
+ ${PROTO_C_DIR} /protoc-c/c_enum.cc
24
+ ${PROTO_C_DIR} /protoc-c/c_enum_field.cc
25
+ ${PROTO_C_DIR} /protoc-c/c_extension.cc
26
+ ${PROTO_C_DIR} /protoc-c/c_field.cc
27
+ ${PROTO_C_DIR} /protoc-c/c_file.cc
28
+ ${PROTO_C_DIR} /protoc-c/c_generator.cc
29
+ ${PROTO_C_DIR} /protoc-c/c_helpers.cc
30
+ ${PROTO_C_DIR} /protoc-c/c_message.cc
31
+ ${PROTO_C_DIR} /protoc-c/c_message_field.cc
32
+ ${PROTO_C_DIR} /protoc-c/c_primitive_field.cc
33
+ ${PROTO_C_DIR} /protoc-c/c_service.cc
34
+ ${PROTO_C_DIR} /protoc-c/c_string_field.cc
35
+ grpc_c_file.cc
36
+ grpc_c_generator.cc
37
+ grpc_c_helpers.cc
38
+ grpc_c_message.cc
39
+ grpc_c_service.cc
40
+ main.cc )
41
+
42
+ TARGET_LINK_LIBRARIES (protoc-gen-grpc-c PRIVATE protobuf::libprotoc protobuf::libprotobuf protobuf-c::protobuf-c )
43
+
44
+ install (TARGETS protoc-gen-grpc-c DESTINATION bin
45
+ PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
46
+ GROUP_EXECUTE GROUP_READ
47
+ WORLD_EXECUTE WORLD_READ)
0 commit comments