|
2 | 2 | # Copyright (C) 2022 Intel Corporation
|
3 | 3 | # Copyright (c) 2022 Dell Inc, or its subsidiaries.
|
4 | 4 |
|
5 |
| -all: |
6 |
| - rm -rf ./v1alpha1/{autogen.md,gen,google} |
7 |
| - mkdir -p ./v1alpha1/gen/{go,cpp,python,java} |
| 5 | +# Make a variable named ','. Used to pass arguments with commas to protoc_compile. |
| 6 | +, := , |
8 | 7 |
|
9 |
| - docker run --user=$$(id -u):$$(id -g) --rm -v "${PWD}":/defs -v "${PWD}/../common/v1":/common namely/protoc-all:1.47_2 -i /common --lint -d v1alpha1 -l go -o ./v1alpha1/gen/go/ --go-source-relative |
10 |
| - docker run --user=$$(id -u):$$(id -g) --rm -v "${PWD}":/defs -v "${PWD}/../common/v1":/common namely/protoc-all:1.47_2 -i /common --lint -d v1alpha1 -l cpp -o ./v1alpha1/gen/cpp/ --go-source-relative |
11 |
| - docker run --user=$$(id -u):$$(id -g) --rm -v "${PWD}":/defs -v "${PWD}/../common/v1":/common namely/protoc-all:1.47_2 -i /common --lint -d v1alpha1 -l python -o ./v1alpha1/gen/python/ --go-source-relative |
12 |
| - docker run --user=$$(id -u):$$(id -g) --rm -v "${PWD}":/defs -v "${PWD}/../common/v1":/common namely/protoc-all:1.47_2 -i /common --lint -d v1alpha1 -l java -o ./v1alpha1/gen/java/ --go-source-relative |
| 8 | +CURRENT_VERSION := v1alpha1 |
| 9 | +COMMON_VERSION := v1 |
13 | 10 |
|
14 |
| - # protoc doesn't include annotation and http googleapis, so we have to get them here |
| 11 | +define protoc_compile |
| 12 | + mkdir -p $(CURRENT_VERSION)/gen/$(1) |
| 13 | + protoc --proto_path=../common/$(COMMON_VERSION) --proto_path=$(CURRENT_VERSION) \ |
| 14 | + --$(1)_out=$(CURRENT_VERSION)/gen/$(1) \ |
| 15 | + $(2) \ |
| 16 | + $(CURRENT_VERSION)/*.proto |
| 17 | +endef |
| 18 | + |
| 19 | +all: python cpp go doc lint |
| 20 | + |
| 21 | +$(CURRENT_VERSION)/google: |
15 | 22 | curl -kL https://github.com/googleapis/googleapis/archive/master.tar.gz | tar --strip=1 -zxvf - googleapis-master/google/api
|
16 |
| - mv google "${PWD}"/v1alpha1/ |
17 |
| - docker run --user=$$(id -u):$$(id -g) --rm --entrypoint=sh -v "${PWD}/../common/v1":/common -v "${PWD}"/v1alpha1/:/out -w /out ghcr.io/docker-multiarch/google-api-linter:1.36.0 -c "api-linter -I /common /out/*.proto --output-format summary" |
18 |
| - docker run --user=$$(id -u):$$(id -g) --rm --entrypoint=sh -v "${PWD}/../common/v1":/common -v "${PWD}"/v1alpha1/:/out -w /out -v "${PWD}"/v1alpha1:/protos pseudomuto/protoc-gen-doc -c "protoc -I /common -I /protos --doc_out=/out --doc_opt=markdown,autogen.md /protos/*.proto /common/*.proto" |
19 |
| - rm -rf "${PWD}"/v1alpha1/google |
| 23 | + mv google "$(CURRENT_VERSION)/" |
| 24 | + |
| 25 | +python: $(CURRENT_VERSION)/google |
| 26 | + $(call protoc_compile,python,) |
| 27 | + |
| 28 | +cpp: $(CURRENT_VERSION)/google |
| 29 | + $(call protoc_compile,cpp,) |
| 30 | + |
| 31 | +go: $(CURRENT_VERSION)/google |
| 32 | + $(call protoc_compile,go,) |
| 33 | + mv $(CURRENT_VERSION)/gen/go/github.com/opiproject/opi-api/storage/$(CURRENT_VERSION)/gen/go/* $(CURRENT_VERSION)/gen/go/ |
| 34 | + |
| 35 | +doc: $(CURRENT_VERSION)/google |
| 36 | + $(call protoc_compile,doc,--doc_opt=markdown$(,)autogen.md) |
| 37 | + |
| 38 | +lint: $(CURRENT_VERSION)/google |
| 39 | + api-linter -I$(CURRENT_VERSION)/ -I../common/$(COMMON_VERSION) $(CURRENT_VERSION)/*proto |
| 40 | + |
| 41 | +clean: |
| 42 | + rm -rf $(CURRENT_VERSION)/google |
0 commit comments