mirror of https://github.com/grpc/grpc-java.git
88 lines
2.3 KiB
Groovy
88 lines
2.3 KiB
Groovy
apply plugin: "cpp"
|
|
apply plugin: "protobuf"
|
|
|
|
import org.apache.tools.ant.taskdefs.condition.Os
|
|
|
|
description = 'The protoc plugin for gRPC Java'
|
|
|
|
buildscript {
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
dependencies {
|
|
classpath libraries.protobuf_plugin
|
|
}
|
|
}
|
|
|
|
executables {
|
|
java_plugin {
|
|
baseName "$protocPluginBaseName"
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compile project(':grpc-stub'),
|
|
libraries.protobuf
|
|
}
|
|
|
|
binaries.all {
|
|
if (toolChain in Gcc || toolChain in Clang) {
|
|
// Support Gcc 4.6 by using c++0x instead of c++11
|
|
cppCompiler.args "--std=c++0x"
|
|
if (System.env.CXXFLAGS) {
|
|
cppCompiler.args System.env.CXXFLAGS
|
|
}
|
|
if (System.env.CPPFLAGS) {
|
|
cppCompiler.args System.env.CPPFLAGS
|
|
}
|
|
linker.args "-lprotoc", "-lprotobuf"
|
|
if (System.env.LDFLAGS) {
|
|
linker.args System.env.LDFLAGS
|
|
}
|
|
} else if (toolChain in VisualCpp) {
|
|
cppCompiler.args "/EHsc", "/MD"
|
|
if (rootProject.hasProperty('protobuf.include')) {
|
|
cppCompiler.args "/I" + rootProject.properties['protobuf.include']
|
|
}
|
|
linker.args "libprotobuf.lib", "libprotoc.lib"
|
|
if (rootProject.hasProperty('protobuf.libs')) {
|
|
linker.args "/LIBPATH:" + rootProject.properties['protobuf.libs']
|
|
}
|
|
}
|
|
}
|
|
|
|
protobufCodeGenPlugins = ["java_plugin:$javaPluginPath"]
|
|
|
|
generateTestProto.dependsOn 'java_pluginExecutable'
|
|
// Ignore test for the moment on Windows. It will be easier to run once the
|
|
// gradle protobuf plugin can support nano.
|
|
if (!Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
test.dependsOn('testGolden','testNanoGolden')
|
|
}
|
|
|
|
task testGolden(type: Exec, dependsOn: 'generateTestProto') {
|
|
if (!Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
executable "diff"
|
|
} else {
|
|
executable "fc"
|
|
}
|
|
// File isn't found on Windows if last slash is forward-slash
|
|
def slash = System.getProperty("file.separator")
|
|
args "$buildDir/generated-sources/test/io/grpc/testing/integration" + slash + "TestServiceGrpc.java",
|
|
"$projectDir/src/test/golden/TestService.java.txt"
|
|
}
|
|
|
|
task testNanoGolden(type: Exec, dependsOn: 'java_pluginExecutable') {
|
|
doFirst {
|
|
temporaryDir.createNewFile();
|
|
}
|
|
|
|
environment 'TEST_TMP_DIR', temporaryDir
|
|
commandLine './src/test/run_nano_test.sh'
|
|
}
|
|
|
|
[
|
|
install.repositories.mavenInstaller,
|
|
uploadArchives.repositories.mavenDeployer,
|
|
]*.addFilter('none') { artifact, file -> false }
|