...

Text file src/github.com/grpc-ecosystem/grpc-gateway/v2/Makefile

Documentation: github.com/grpc-ecosystem/grpc-gateway/v2

     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