-
Notifications
You must be signed in to change notification settings - Fork 3
/
Makefile
146 lines (122 loc) · 4.24 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
.PHONY: generate
generate:
protoc \
-I. \
--go_out=paths=source_relative:. \
s12/protobuf/proto/*.proto s12/flags/permissions/*.proto
ARCH := $(shell uname -p)
ifeq ($(ARCH), arm)
SYS_ROOT = /opt/homebrew/
else
SYS_ROOT = /usr/local/
endif
CXX = g++
CPPFLAGS += -I$(SYS_ROOT)include -pthread
LDFLAGS += -L$(SYS_ROOT)lib -lprotoc -lprotobuf -lpthread -ldl
CXXFLAGS += -std=c++17
protoc-gen-cruxclient: \
protobuf/protoc-gen-cruxclient/cruxclient_generator.o \
protobuf/protoc-gen-cruxclient/legacy_generator.o \
protobuf/protoc-gen-cruxclient/api_generator.o \
protobuf/protoc-gen-cruxclient/mock_service_generator.o
$(CXX) $^ $(LDFLAGS) -o $@
.PHONY: install-govalidator
install-govalidator:
go install ./protobuf/protoc-gen-govalidator
.PHONY: install-logger
go install github.com/SafetyCulture/s12-proto/protobuf/protoc-gen-logger
.PHONY: install-s12perm
install-s12perm: generate
go install ./protobuf/protoc-gen-s12perm
.PHONY: install-cruxclient
install-cruxclient: protoc-gen-cruxclient
install protoc-gen-cruxclient $(SYS_ROOT)/bin/protoc-gen-cruxclient
.PHONY: install
install: install-govalidator install-logger
.PHONY: govalidator
govalidator: install-govalidator
protoc \
-I./protobuf/protoc-gen-govalidator/example \
-I$(GOPATH)/src \
-I. \
--go_out=paths=source_relative:protobuf/protoc-gen-govalidator/example \
--govalidator_out=paths=source_relative:protobuf/protoc-gen-govalidator/example \
protobuf/protoc-gen-govalidator/example/*.proto
.PHONY: govalidator-test
govalidator-test:
go test github.com/SafetyCulture/s12-proto/protobuf/protoc-gen-govalidator/example
.PHONY: govalidator-valtest
govalidator-valtest: install-govalidator
protoc \
-I./protobuf/protoc-gen-govalidator/valtest \
-I$(GOPATH)/src \
-I. \
--go_out=paths=source_relative:protobuf/protoc-gen-govalidator/valtest \
--govalidator_out=paths=source_relative:protobuf/protoc-gen-govalidator/valtest \
protobuf/protoc-gen-govalidator/valtest/*.proto
PLAYGROUND=./protobuf/protoc-gen-govalidator/playground
PLAYGROUND_GEN=$(PLAYGROUND)/gen
playground-req-object: # Generate the code-generator-request object
ifeq ($(shell which protoc-gen-debug),)
go install github.com/lyft/protoc-gen-star/protoc-gen-debug@latest
endif
protoc \
-I$(PLAYGROUND) \
-I$(GOPATH)/src \
-I. \
--plugin=protoc-gen-debug=$(shell which protoc-gen-debug) \
--debug_out="${PLAYGROUND}:${PLAYGROUND}" \
$(PLAYGROUND)/*.proto
.PHONY: govalidator-valtest1
playground-generated-code: install-govalidator # Generates code from protobuf files
protoc \
-I$(PLAYGROUND) \
-I$(GOPATH)/src \
-I. \
--go_out=paths=source_relative:$(PLAYGROUND_GEN) \
--govalidator_out=paths=source_relative:$(PLAYGROUND_GEN) \
$(PLAYGROUND)/*.proto
.PHONY: govalidator-valtest-test
govalidator-valtest-test:
go test github.com/SafetyCulture/s12-proto/protobuf/protoc-gen-govalidator/valtest
.PHONY: s12perm
s12perm: install-s12perm
protoc \
-I./protobuf/protoc-gen-s12perm/example \
-I$(GOPATH)/src \
-I. \
--s12perm_out=paths=source_relative:protobuf/protoc-gen-s12perm/example \
protobuf/protoc-gen-s12perm/example/*proto
.PHONY: s12perm-test
s12perm-test: s12perm
cd protobuf/protoc-gen-s12perm/example && go test
.PHONY: logger
logger: install-logger
protoc \
-I./protobuf/protoc-gen-logger/example \
-I$(GOPATH)/src \
--gogo_out=:protobuf/protoc-gen-logger/example \
--logger_out=:protobuf/protoc-gen-logger/example \
protobuf/protoc-gen-logger/example/*.proto
.PHONY: cruxclient
cruxclient: install-cruxclient
protoc \
-I./protobuf/protoc-gen-cruxclient/proto \
--plugin=protoc-gen-grpc=$(SYS_ROOT)bin/grpc_cpp_plugin \
--cpp_out=:protobuf/protoc-gen-cruxclient/generated \
--grpc_out=:protobuf/protoc-gen-cruxclient/generated \
--cruxclient_out=:protobuf/protoc-gen-cruxclient/generated \
protobuf/protoc-gen-cruxclient/proto/routeguide/v1/*.proto
.PHONY: install-gogrpcmock
install-gogrpcmock:
go install github.com/SafetyCulture/s12-proto/protobuf/protoc-gen-gogrpcmock
.PHONY: gogrpcmock
gogrpcmock: install-gogrpcmock
protoc \
-I./protobuf/protoc-gen-gogrpcmock/example \
-I./protobuf \
--gogo_out=plugin=grpc=:protobuf/protoc-gen-gogrpcmock/example \
--gogrpcmock_out=:protobuf/protoc-gen-gogrpcmock/example \
protobuf/protoc-gen-gogrpcmock/example/*.proto
.PHONY: example
example: govalidator logger