Also generating py and java files, setting output to separate "gen" tree.

This commit is contained in:
Dan Buch
2012-05-07 22:28:13 -04:00
parent 36a4930ef0
commit af3b05be3d
5 changed files with 2193 additions and 3 deletions

View File

@@ -1,9 +1,24 @@
PROTOC := $(PWD)/bin/protoc
TARGETS := $(patsubst %.proto,%.pb.cc,$(shell find src -name '*.proto'))
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))
%.pb.cc:%.proto
$(PROTOC) -I=$(shell dirname $^) --cpp_out=$(shell dirname $^) $^
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)