Gradle script to publish protoc binaries
This commit is contained in:
parent
82524fe5aa
commit
488162db1e
8
protoc-artifacts/build-protoc.sh
Executable file
8
protoc-artifacts/build-protoc.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/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)
|
@ -1,3 +1,113 @@
|
||||
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'
|
||||
}
|
||||
|
1
protoc-artifacts/settings.gradle
Normal file
1
protoc-artifacts/settings.gradle
Normal file
@ -0,0 +1 @@
|
||||
rootProject.name = 'protoc'
|
Loading…
Reference in New Issue
Block a user