-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmakefile
More file actions
36 lines (27 loc) · 1.25 KB
/
makefile
File metadata and controls
36 lines (27 loc) · 1.25 KB
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
BASE_DIR = ./micro_services_protobuf
LAUNCH_PYTHON_DIR = course_score_query edu_admin_center mycqu_service notification_center control_center
LAUNCH_SWIFT_DIR = control_center cos_manager
ADDITIONAL_FILE = common.proto
PY_TARGET_DIR = ./proto_build/python
SWIFT_TARGET_DIR = ./proto_build/swift
PY_PACKAGE_DIR = ./python_package
PYTHON_SRC = $(shell find $(foreach dir, $(LAUNCH_PYTHON_DIR), $(BASE_DIR)/$(dir) ) -name "*.proto") $(BASE_DIR)/$(ADDITIONAL_FILE)
SWIFT_SRC = $(shell find $(foreach dir, $(LAUNCH_SWIFT_DIR), $(BASE_DIR)/$(dir) ) -name "*.proto" ) $(BASE_DIR)/$(ADDITIONAL_FILE)
.PHONY:clean
%/.:
@mkdir -p "$@"
all: python swift
python: | $(PY_TARGET_DIR)/.
python -m grpc_tools.protoc -I. --python_out=$(PY_TARGET_DIR) --pyi_out=$(PY_TARGET_DIR) --grpc_python_out=$(PY_TARGET_DIR) \
$(PYTHON_SRC)
find $(PY_TARGET_DIR) -type d -exec touch {}/__init__.py \;
rm -f $(PY_TARGET_DIR)/__init__.py;
cp -r $(PY_TARGET_DIR)/* $(PY_PACKAGE_DIR)/
swift: | $(SWIFT_TARGET_DIR)/.
protoc $(SWIFT_SRC) \
--plugin=/usr/local/bin/protoc-gen-swift \
--swift_opt=Visibility=Public \
--swift_out=$(SWIFT_TARGET_DIR) \
--plugin=/usr/local/bin/protoc-gen-grpc-swift \
--grpc-swift_opt=Visibility=Public \
--grpc-swift_out=$(SWIFT_TARGET_DIR);