corda/build.gradle

176 lines
3.2 KiB
Groovy

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:2.2.4'
}
}
apply plugin: 'native-component'
apply plugin: 'ivy-publish'
apply plugin: 'java'
apply plugin: 'artifactory-publish'
model {
platforms {
create("linux-x86_64") {
operatingSystem "linux"
architecture "x86_64"
}
create("linux-i386") {
operatingSystem "linux"
architecture "i386"
}
create("windows-x86_64") {
operatingSystem "windows"
architecture "x86_64"
}
create("windows-i386") {
operatingSystem "windows"
architecture "i386"
}
}
tasks {
platforms.each { platform ->
task "build${platform.name}"(type: Exec) {
executable "make"
args "platform=${platform.operatingSystem.name}",
"arch=${platform.architecture.name}"
environment JAVA_HOME: "/usr/local/java"
}
assemble {
dependsOn "build${platform.name}"
}
}
}
}
tasks.withType(JavaCompile) {
sourceCompatibility = "1.6"
targetCompatibility = "1.6"
options.with {
encoding = "UTF-8"
bootClasspath = sourceSets.main.output.classesDir
}
}
sourceSets {
main {
java {
srcDir 'classpath'
}
resources {
srcDir 'classpath'
}
}
}
javadoc {
title = "Avian v${version} Class Library API"
}
task javadocJar(type: Jar) {
dependsOn javadoc
classifier = 'javadoc'
from {
javadoc.destinationDir
}
}
task install {
dependsOn assemble, publish
}
publishing {
repositories {
ivy {
url "${System.env.HOME}/.ivy2/local"
layout 'maven'
}
}
publications {
def binSuffix=""
def publishBinSuffix="bin"
ivy(IvyPublication) {
from components.java
artifact(javadocJar)
}
platforms.each { platform ->
create(platform.name, IvyPublication) {
def nativeBuildDir = "${buildDir}/${platform.operatingSystem.name}-${platform.architecture.name}"
if(platform.operatingSystem.name == "windows") {
publishBinSuffix = "exe"
binSuffix = ".${publishBinSuffix}"
}
module "${project.name}-${platform.name}"
artifact("${nativeBuildDir}/avian${binSuffix}") {
name "avian"
type publishBinSuffix
extension publishBinSuffix
}
artifact("${nativeBuildDir}/binaryToObject/binaryToObject") {
name "binaryToObject"
type publishBinSuffix
extension publishBinSuffix
}
artifact("${nativeBuildDir}/libavian.a") {
name "libavian"
type "a"
extension "a"
}
}
}
}
}
artifactoryPublish {
dependsOn assemble
}
artifactory {
contextUrl = "http://oss.jfrog.org"
resolve {
repository {
repoKey = 'libs-releases'
}
}
publish {
repository {
repoKey = 'oss-snapshot-local'
username = System.env.BINTRAY_USER
password = System.env.BINTRAY_API_KEY
ivy {
ivyLayout = "[organisation]/[module]/[revision]/ivy-[revision].xml"
}
}
defaults {
platforms.each {
publications it.name
}
}
}
}
task wrapper(type: Wrapper) {
gradleVersion = '2.0'
}