Commit 488162db authored by zhangkun83's avatar zhangkun83

Gradle script to publish protoc binaries

parent 82524fe5
#!/bin/bash
# Override the default value set in configure.ac that has '-g' which produces
# huge binary.
export CXXFLAGS=-DNDEBUG
cd $(dirname "$0")/.. && ./configure --disable-shared && make &&
cd src && (strip protoc || strip protoc.exe)
apply plugin: 'maven'
apply plugin: 'java'
apply plugin: 'osdetector'
apply plugin: 'signing'
description = 'Pre-compiled protoc (protobuf compiler) artifacts'
group = 'com.google.protobuf'
version = '3.0.0-alpha-3-pre'
buildscript {
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
classpath 'com.google.gradle:osdetector-gradle-plugin:0.1.0-SNAPSHOT'
}
}
repositories {
mavenCentral()
mavenLocal()
}
signing {
sign configurations.archives
}
def artifactFile = 'target/protoc.exe' as File
task buildProtoc(type: Exec) {
commandLine './build-protoc.sh'
}
task prepareArtifact(type: Copy, dependsOn: buildProtoc) {
from '../src/' as File
into artifactFile.parent
include 'protoc', 'protoc.exe'
rename 'protoc', 'protoc.exe'
}
artifacts {
archives(artifactFile) {
classifier osdetector.classifier
type "exe"
extension "exe"
builtBy prepareArtifact
}
}
uploadArchives.repositories.mavenDeployer {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
if (rootProject.hasProperty("ossrhUsername")
&& rootProject.hasProperty("ossrhPassword")) {
authentication(userName: ossrhUsername, password: ossrhPassword)
}
}
snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
if (rootProject.hasProperty("ossrhUsername")
&& rootProject.hasProperty("ossrhPassword")) {
authentication(userName: ossrhUsername, password: ossrhPassword)
}
}
}
[
install.repositories.mavenInstaller,
uploadArchives.repositories.mavenDeployer,
]*.pom*.whenConfigured { pom ->
pom.project {
name "$project.group:$project.name"
description project.description
url 'https://github.com/google/protobuf'
scm {
connection 'scm:svn:https://github.com/google/protobuf.git'
developerConnection 'scm:svn:git@github.com:google/protobuf.git'
url 'https://github.com/google/protobuf'
}
licenses {
license {
name 'BSD 3-Clause'
url 'http://opensource.org/licenses/BSD-3-Clause'
}
}
developers {
developer {
id "com.google.protobuf"
name "Protobuf Contributors"
email "protobuf@googlegroups.com"
url "https://github.com/google/protobuf"
organization = "Google, Inc."
organizationUrl "https://www.google.com"
}
}
}
}
// Exe files are skipped by Maven by default. Override it.
[
install.repositories.mavenInstaller,
uploadArchives.repositories.mavenDeployer,
]*.addFilter('all') {artifact, file -> true}
task wrapper(type: Wrapper) {
gradleVersion = '2.0'
}
rootProject.name = 'protoc'
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment