25 lines
730 B
Makefile
25 lines
730 B
Makefile
PROTOC := $(PWD)/bin/protoc
|
|
PROTO_FILES := $(shell find src -name '*.proto')
|
|
TARGETS := $(patsubst src/%.proto,gen/cc/%.pb.cc,$(PROTO_FILES))
|
|
TARGETS += $(patsubst src/%.proto,gen/py/%_pb2.py,$(PROTO_FILES))
|
|
TARGETS += $(patsubst src/%.proto,gen/java/%.java,$(PROTO_FILES))
|
|
|
|
|
|
gen/cc/%.pb.cc:src/%.proto
|
|
mkdir -p $(dir $@)
|
|
$(PROTOC) -I=$(shell dirname $^) --cpp_out=$(shell dirname $@) $^
|
|
|
|
|
|
gen/py/%_pb2.py:src/%.proto
|
|
mkdir -p $(dir $@)
|
|
$(PROTOC) -I=$(shell dirname $^) --python_out=$(shell dirname $@) $^
|
|
|
|
|
|
gen/java/%.java:src/%.proto
|
|
mkdir -p $(dir $@)
|
|
$(PROTOC) -I=$(shell dirname $^) --java_out=$(shell dirname $(shell dirname $@)) $^
|
|
find $(shell dirname $@) -iname $(notdir $@) -exec mv -v {} $@ \;
|
|
|
|
|
|
all: $(TARGETS)
|