Protobuf: added Makefile for building JAR and protoc-executable
This commit is contained in:
@@ -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
|
||||||
@@ -24,5 +24,6 @@ dependencies {
|
|||||||
}
|
}
|
||||||
|
|
||||||
jar {
|
jar {
|
||||||
|
archiveName = "protokot-runtime.jar"
|
||||||
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
|
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user