...
1# This is a Makefile which maintains files automatically generated but to be
2# shipped together with other files.
3# You don't have to rebuild these targets by yourself unless you develop
4# gRPC-Gateway itself.
5
6EXAMPLE_CLIENT_DIR=examples/internal/clients
7ECHO_EXAMPLE_SPEC=examples/internal/proto/examplepb/echo_service.swagger.json
8ECHO_EXAMPLE_SRCS=$(EXAMPLE_CLIENT_DIR)/echo/client.go \
9 $(EXAMPLE_CLIENT_DIR)/echo/response.go \
10 $(EXAMPLE_CLIENT_DIR)/echo/configuration.go \
11 $(EXAMPLE_CLIENT_DIR)/echo/api_echo_service.go \
12 $(EXAMPLE_CLIENT_DIR)/echo/model_examplepb_simple_message.go \
13 $(EXAMPLE_CLIENT_DIR)/echo/model_examplepb_embedded.go
14ABE_EXAMPLE_SPEC=examples/internal/proto/examplepb/a_bit_of_everything.swagger.json
15ABE_EXAMPLE_SRCS=$(EXAMPLE_CLIENT_DIR)/abe/model_a_bit_of_everything_nested.go \
16 $(EXAMPLE_CLIENT_DIR)/abe/api_a_bit_of_everything_service.go \
17 $(EXAMPLE_CLIENT_DIR)/abe/client.go \
18 $(EXAMPLE_CLIENT_DIR)/abe/api_camel_case_service_name.go \
19 $(EXAMPLE_CLIENT_DIR)/abe/configuration.go \
20 $(EXAMPLE_CLIENT_DIR)/abe/api_echo_rpc.go \
21 $(EXAMPLE_CLIENT_DIR)/abe/model_examplepb_a_bit_of_everything.go \
22 $(EXAMPLE_CLIENT_DIR)/abe/model_examplepb_a_bit_of_everything_repeated.go \
23 $(EXAMPLE_CLIENT_DIR)/abe/model_examplepb_body.go \
24 $(EXAMPLE_CLIENT_DIR)/abe/model_examplepb_numeric_enum.go \
25 $(EXAMPLE_CLIENT_DIR)/abe/model_examplepb_update_v2_request.go \
26 $(EXAMPLE_CLIENT_DIR)/abe/model_message_path_enum_nested_path_enum.go \
27 $(EXAMPLE_CLIENT_DIR)/abe/model_nested_deep_enum.go \
28 $(EXAMPLE_CLIENT_DIR)/abe/model_pathenum_path_enum.go \
29 $(EXAMPLE_CLIENT_DIR)/abe/model_protobuf_field_mask.go \
30 $(EXAMPLE_CLIENT_DIR)/abe/response.go
31UNANNOTATED_ECHO_EXAMPLE_SPEC=examples/internal/proto/examplepb/unannotated_echo_service.swagger.json
32UNANNOTATED_ECHO_EXAMPLE_SRCS=$(EXAMPLE_CLIENT_DIR)/unannotatedecho/client.go \
33 $(EXAMPLE_CLIENT_DIR)/unannotatedecho/response.go \
34 $(EXAMPLE_CLIENT_DIR)/unannotatedecho/configuration.go \
35 $(EXAMPLE_CLIENT_DIR)/unannotatedecho/model_examplepb_unannotated_simple_message.go \
36 $(EXAMPLE_CLIENT_DIR)/unannotatedecho/api_unannotated_echo_service.go
37RESPONSE_BODY_EXAMPLE_SPEC=examples/internal/proto/examplepb/response_body_service.swagger.json
38RESPONSE_BODY_EXAMPLE_SRCS=$(EXAMPLE_CLIENT_DIR)/responsebody/client.go \
39 $(EXAMPLE_CLIENT_DIR)/responsebody/response.go \
40 $(EXAMPLE_CLIENT_DIR)/responsebody/configuration.go \
41 $(EXAMPLE_CLIENT_DIR)/responsebody/model_examplepb_repeated_response_body_out.go \
42 $(EXAMPLE_CLIENT_DIR)/responsebody/model_examplepb_repeated_response_body_out_response.go \
43 $(EXAMPLE_CLIENT_DIR)/responsebody/model_examplepb_repeated_response_strings.go \
44 $(EXAMPLE_CLIENT_DIR)/responsebody/model_examplepb_response_body_out.go \
45 $(EXAMPLE_CLIENT_DIR)/responsebody/model_examplepb_response_body_out_response.go \
46 $(EXAMPLE_CLIENT_DIR)/responsebody/model_response_response_type.go \
47 $(EXAMPLE_CLIENT_DIR)/responsebody/api_response_body_service.go
48GENERATE_UNBOUND_METHODS_EXAMPLE_SPEC=examples/internal/proto/examplepb/generate_unbound_methods.swagger.json
49GENERATE_UNBOUND_METHODS_EXAMPLE_SRCS=$(EXAMPLE_CLIENT_DIR)/generateunboundmethods/client.go \
50 $(EXAMPLE_CLIENT_DIR)/generateunboundmethods/response.go \
51 $(EXAMPLE_CLIENT_DIR)/generateunboundmethods/configuration.go \
52 $(EXAMPLE_CLIENT_DIR)/generateunboundmethods/model_examplepb_generate_unbound_methods_simple_message.go \
53 $(EXAMPLE_CLIENT_DIR)/generateunboundmethods/api_generate_unbound_methods.go
54
55EXAMPLE_CLIENT_SRCS=$(ECHO_EXAMPLE_SRCS) $(ABE_EXAMPLE_SRCS) $(UNANNOTATED_ECHO_EXAMPLE_SRCS) $(RESPONSE_BODY_EXAMPLE_SRCS) $(GENERATE_UNBOUND_METHODS_EXAMPLE_SRCS)
56SWAGGER_CODEGEN=swagger-codegen
57
58$(ECHO_EXAMPLE_SRCS): $(ECHO_EXAMPLE_SPEC)
59 $(SWAGGER_CODEGEN) generate -i $(ECHO_EXAMPLE_SPEC) \
60 -l go -o examples/internal/clients/echo --additional-properties packageName=echo
61 @rm -f $(EXAMPLE_CLIENT_DIR)/echo/README.md \
62 $(EXAMPLE_CLIENT_DIR)/echo/git_push.sh
63$(ABE_EXAMPLE_SRCS): $(ABE_EXAMPLE_SPEC)
64 $(SWAGGER_CODEGEN) generate -i $(ABE_EXAMPLE_SPEC) \
65 -l go -o examples/internal/clients/abe --additional-properties packageName=abe
66 @rm -f $(EXAMPLE_CLIENT_DIR)/abe/README.md \
67 $(EXAMPLE_CLIENT_DIR)/abe/git_push.sh
68$(UNANNOTATED_ECHO_EXAMPLE_SRCS): $(UNANNOTATED_ECHO_EXAMPLE_SPEC)
69 $(SWAGGER_CODEGEN) generate -i $(UNANNOTATED_ECHO_EXAMPLE_SPEC) \
70 -l go -o examples/internal/clients/unannotatedecho --additional-properties packageName=unannotatedecho
71 @rm -f $(EXAMPLE_CLIENT_DIR)/unannotatedecho/README.md \
72 $(EXAMPLE_CLIENT_DIR)/unannotatedecho/git_push.sh
73$(RESPONSE_BODY_EXAMPLE_SRCS): $(RESPONSE_BODY_EXAMPLE_SPEC)
74 $(SWAGGER_CODEGEN) generate -i $(RESPONSE_BODY_EXAMPLE_SPEC) \
75 -l go -o examples/internal/clients/responsebody --additional-properties packageName=responsebody
76 @rm -f $(EXAMPLE_CLIENT_DIR)/responsebody/README.md \
77 $(EXAMPLE_CLIENT_DIR)/responsebody/git_push.sh
78$(GENERATE_UNBOUND_METHODS_EXAMPLE_SRCS): $(GENERATE_UNBOUND_METHODS_EXAMPLE_SPEC)
79 $(SWAGGER_CODEGEN) generate -i $(GENERATE_UNBOUND_METHODS_EXAMPLE_SPEC) \
80 -l go -o examples/internal/clients/generateunboundmethods --additional-properties packageName=generateunboundmethods
81 @rm -f $(EXAMPLE_CLIENT_DIR)/generateunboundmethods/README.md \
82 $(EXAMPLE_CLIENT_DIR)/generateunboundmethods/git_push.sh
83
84install:
85 go install github.com/bufbuild/buf/cmd/buf@v1.14.0
86 go install \
87 ./protoc-gen-openapiv2 \
88 ./protoc-gen-grpc-gateway
89
90proto:
91 # These generation steps are run in order so that later steps can
92 # overwrite files produced by previous steps, if necessary.
93 buf generate
94 # Remove generated gateway in runtime tests, causes import cycle
95 rm ./runtime/internal/examplepb/non_standard_names.pb.gw.go
96 # Remove generated_input.proto files, bazel genrule relies on these
97 # *not* being generated (to avoid conflicts).
98 rm ./examples/internal/proto/examplepb/generated_input.pb.go
99 rm ./examples/internal/proto/examplepb/generated_input_grpc.pb.go
100 rm ./examples/internal/proto/examplepb/generated_input.pb.gw.go
101 buf generate \
102 --template ./examples/internal/proto/examplepb/openapi_merge.buf.gen.yaml \
103 --path ./examples/internal/proto/examplepb/openapi_merge_a.proto \
104 --path ./examples/internal/proto/examplepb/openapi_merge_b.proto
105 buf generate \
106 --template ./examples/internal/proto/examplepb/standalone_echo_service.buf.gen.yaml \
107 --path examples/internal/proto/examplepb/unannotated_echo_service.proto
108 mv examples/internal/proto/examplepb/unannotated_echo_service.pb.gw.go examples/internal/proto/standalone/
109 buf generate \
110 --template ./examples/internal/proto/examplepb/unannotated_echo_service.buf.gen.yaml \
111 --path examples/internal/proto/examplepb/unannotated_echo_service.proto
112 buf generate \
113 --template ./examples/internal/proto/examplepb/generate_unbound_methods.buf.gen.yaml \
114 --path examples/internal/proto/examplepb/generate_unbound_methods.proto
115 buf generate \
116 --template ./examples/internal/proto/examplepb/use_go_template.buf.gen.yaml \
117 --path examples/internal/proto/examplepb/use_go_template.proto
118 buf generate \
119 --template ./examples/internal/proto/examplepb/ignore_comment.buf.gen.yaml \
120 --path examples/internal/proto/examplepb/ignore_comment.proto
121 buf generate \
122 --template ./examples/internal/proto/examplepb/remove_internal_comment.buf.gen.yaml \
123 --path examples/internal/proto/examplepb/remove_internal_comment.proto
124 buf generate \
125 --template ./examples/internal/proto/examplepb/visibility_rule_preview_echo_service.buf.gen.yaml \
126 --path examples/internal/proto/examplepb/visibility_rule_echo_service.proto
127 mv examples/internal/proto/examplepb/visibility_rule_echo_service.swagger.json examples/internal/proto/examplepb/visibility_rule_preview_echo_service.swagger.json
128 buf generate \
129 --template ./examples/internal/proto/examplepb/visibility_rule_internal_echo_service.buf.gen.yaml \
130 --path examples/internal/proto/examplepb/visibility_rule_echo_service.proto
131 mv examples/internal/proto/examplepb/visibility_rule_echo_service.swagger.json examples/internal/proto/examplepb/visibility_rule_internal_echo_service.swagger.json
132 buf generate \
133 --template ./examples/internal/proto/examplepb/visibility_rule_none_echo_service.buf.gen.yaml \
134 --path examples/internal/proto/examplepb/visibility_rule_echo_service.proto
135 mv examples/internal/proto/examplepb/visibility_rule_echo_service.swagger.json examples/internal/proto/examplepb/visibility_rule_none_echo_service.swagger.json
136 buf generate \
137 --template ./examples/internal/proto/examplepb/visibility_rule_preview_and_internal_echo_service.buf.gen.yaml \
138 --path examples/internal/proto/examplepb/visibility_rule_echo_service.proto
139 mv examples/internal/proto/examplepb/visibility_rule_echo_service.swagger.json examples/internal/proto/examplepb/visibility_rule_preview_and_internal_echo_service.swagger.json
140 buf generate \
141 --template ./examples/internal/proto/examplepb/visibility_rule_enums_as_ints_echo_service.buf.gen.yaml \
142 --path examples/internal/proto/examplepb/visibility_rule_echo_service.proto
143 mv examples/internal/proto/examplepb/visibility_rule_echo_service.swagger.json examples/internal/proto/examplepb/visibility_rule_enums_as_ints_echo_service.swagger.json
144
145generate: proto $(ECHO_EXAMPLE_SRCS) $(ABE_EXAMPLE_SRCS) $(UNANNOTATED_ECHO_EXAMPLE_SRCS) $(RESPONSE_BODY_EXAMPLE_SRCS) $(GENERATE_UNBOUND_METHODS_EXAMPLE_SRCS)
146
147test: proto
148 go test -short -race ./...
149 go test -race ./examples/internal/integration -args -network=unix -endpoint=test.sock
150
151clean:
152 find . -type f -name '*.pb.go' -delete
153 find . -type f -name '*.swagger.json' -delete
154 find . -type f -name '*.pb.gw.go' -delete
155 rm -f $(EXAMPLE_CLIENT_SRCS)
156
157.PHONY: generate test clean proto install
View as plain text