Protobuf: added Makefile for building JAR and protoc-executable

This commit is contained in:
dsavvinov
2016-08-09 12:14:37 +03:00
parent ba8e2f0e84
commit 1826db5936
2 changed files with 48 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
CXX = g++
CXXFLAGS = -O2 -std=c++11
LDFLAGS = -lprotoc -lprotobuf
BUILDDIR = build
EXE = $(BUILDDIR)/protoc
JAR = $(BUILDDIR)/protokot-runtime.jar
# C++ part
PROTOC_DIR = compiler/google/src/google/protobuf/compiler/kotlin
PROTOC_EXE = $(PROTOC_DIR)/protoc
# Kotlin part
RUNTIME_DIR = runtime
RUNTIME_JAR = $(RUNTIME_DIR)/build/libs/protokot-runtime.jar
all: $(EXE) $(JAR)
# Place protoc* into build directory
$(EXE): $(BUILDDIR) $(PROTOC_EXE)
cp $(PROTOC_EXE) $(EXE)
# Build Protobuf Compiler via delegating call to another Makefile
$(PROTOC_EXE):
$(MAKE) -C $(PROTOC_DIR)
# Place ProtoKot Runtime JAR into build directory
$(JAR): $(BUILDDIR) $(RUNTIME_JAR)
cp $(RUNTIME_JAR) $(JAR)
# Build ProtoKot Runtime via delegating call to Gradle Script
$(RUNTIME_JAR):
cd $(RUNTIME_DIR); gradle build
# Create auxillary directories
$(BINDIR):
mkdir -p $(BINDIR)
$(BUILDDIR):
mkdir -p $(BUILDDIR)
clean:
$(MAKE) -C $(PROTOC_DIR) clean
cd $(RUNTIME_DIR); gradle clean
rm -rf $(BUILDDIR)
.PHONY: clean all generate test
+1
View File
@@ -24,5 +24,6 @@ dependencies {
}
jar {
archiveName = "protokot-runtime.jar"
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}