mirror of
https://github.com/corda/corda.git
synced 2025-02-03 09:41:10 +00:00
Merge pull request #331 from joshuawarner32/gradle-artifact-update
Gradle artifact update
This commit is contained in:
commit
8bd28937df
135
build.gradle
135
build.gradle
@ -13,32 +13,75 @@ apply plugin: 'ivy-publish'
|
||||
apply plugin: 'java'
|
||||
apply plugin: 'artifactory-publish'
|
||||
|
||||
enum SupportedOS implements OperatingSystem {
|
||||
LINUX, WINDOWS, MACOSX;
|
||||
|
||||
public static final SupportedOS CURRENT;
|
||||
|
||||
static {
|
||||
String p = System.properties['os.name']
|
||||
switch(p.replaceAll(' ', '').toLowerCase()) {
|
||||
case ~/.*linux.*/: CURRENT = LINUX; break;
|
||||
case ~/.*darwin.*/: CURRENT = MACOSX; break;
|
||||
case ~/.*osx.*/: CURRENT = MACOSX; break;
|
||||
case ~/.*win.*/: CURRENT = WINDOWS; break;
|
||||
default:
|
||||
String m = "SupportedOS: unrecognized platform: ${p}"
|
||||
println(m)
|
||||
throw new IllegalArgumentException(m)
|
||||
}
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return toString().toLowerCase()
|
||||
}
|
||||
|
||||
public String getDisplayName() {
|
||||
return getName()
|
||||
}
|
||||
public boolean isCurrent() { return this == CURRENT }
|
||||
public boolean isFreeBSD() { return false }
|
||||
public boolean isLinux() { return this == LINUX }
|
||||
public boolean isMacOsX() { return this == MACOSX }
|
||||
public boolean isSolaris() { return false }
|
||||
public boolean isWindows() { return this == WINDOWS }
|
||||
|
||||
}
|
||||
|
||||
public String adjustArch(String arch) {
|
||||
switch(arch) {
|
||||
case ~/.*64.*/: return 'x86_64'
|
||||
default: return 'i386'
|
||||
}
|
||||
}
|
||||
|
||||
ext {
|
||||
currentPlatform = SupportedOS.CURRENT.getName()
|
||||
currentArch = adjustArch(System.properties['os.arch'])
|
||||
currentPlatformArch = "${currentPlatform}-${currentArch}"
|
||||
|
||||
platform = project.hasProperty('platform') ? platform : currentPlatform
|
||||
arch = project.hasProperty('arch') ? arch : currentArch
|
||||
platformArch = "${platform}-${arch}"
|
||||
|
||||
java_home = System.properties.'java.home'
|
||||
if(java_home.endsWith("/jre")) {
|
||||
java_home = java_home.substring(0, java_home.length() - "/jre".length())
|
||||
}
|
||||
java_home = java_home
|
||||
|
||||
}
|
||||
|
||||
model {
|
||||
platforms {
|
||||
if(project.hasProperty("platform") && project.hasProperty("arch")) {
|
||||
create("${platform}-${arch}") {
|
||||
operatingSystem "${platform}"
|
||||
architecture "${arch}"
|
||||
}
|
||||
} else {
|
||||
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"
|
||||
create(platformArch) {
|
||||
operatingSystem SupportedOS.valueOf(platform.toUpperCase())
|
||||
architecture "${arch}"
|
||||
}
|
||||
if(platformArch != currentPlatformArch) {
|
||||
create(currentPlatformArch) {
|
||||
operatingSystem SupportedOS.CURRENT
|
||||
architecture "${currentArch}"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -49,7 +92,7 @@ model {
|
||||
executable "make"
|
||||
args "platform=${platform.operatingSystem.name}",
|
||||
"arch=${platform.architecture.name}"
|
||||
environment JAVA_HOME: "/usr/local/java"
|
||||
environment JAVA_HOME: java_home
|
||||
}
|
||||
|
||||
assemble {
|
||||
@ -74,9 +117,6 @@ sourceSets {
|
||||
java {
|
||||
srcDir 'classpath'
|
||||
}
|
||||
resources {
|
||||
srcDir 'classpath'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -92,6 +132,10 @@ task javadocJar(type: Jar) {
|
||||
}
|
||||
}
|
||||
|
||||
jar {
|
||||
baseName "classpath-avian"
|
||||
}
|
||||
|
||||
task install {
|
||||
dependsOn assemble, publish
|
||||
}
|
||||
@ -105,16 +149,37 @@ publishing {
|
||||
}
|
||||
|
||||
publications {
|
||||
def binSuffix=""
|
||||
def publishBinSuffix="bin"
|
||||
|
||||
ivy(IvyPublication) {
|
||||
from components.java
|
||||
|
||||
artifact(javadocJar)
|
||||
|
||||
artifact("vm.pro") {
|
||||
name "vm"
|
||||
type "proguard"
|
||||
extension "pro"
|
||||
}
|
||||
|
||||
module "classpath-avian"
|
||||
}
|
||||
|
||||
create("tools-avian-${currentPlatformArch}", IvyPublication) {
|
||||
module "tools-avian-${currentPlatformArch}"
|
||||
|
||||
def publishBinSuffix = currentPlatform == "windows" ? "exe" : "bin"
|
||||
def binSuffix = currentPlatform == "windows" ? ".exe" : ""
|
||||
artifact("${buildDir}/${currentPlatform}-${currentArch}/binaryToObject/binaryToObject") {
|
||||
name "binaryToObject"
|
||||
type publishBinSuffix
|
||||
extension binSuffix
|
||||
}
|
||||
}
|
||||
|
||||
platforms.each { platform ->
|
||||
def binSuffix=""
|
||||
def publishBinSuffix="bin"
|
||||
|
||||
create(platform.name, IvyPublication) {
|
||||
def nativeBuildDir = "${buildDir}/${platform.operatingSystem.name}-${platform.architecture.name}"
|
||||
|
||||
@ -123,18 +188,12 @@ publishing {
|
||||
binSuffix = ".${publishBinSuffix}"
|
||||
}
|
||||
|
||||
module "${project.name}-${platform.name}"
|
||||
module "runtime-avian-${platform.name}"
|
||||
|
||||
artifact("${nativeBuildDir}/avian${binSuffix}") {
|
||||
name "avian"
|
||||
type publishBinSuffix
|
||||
extension publishBinSuffix
|
||||
}
|
||||
|
||||
artifact("${nativeBuildDir}/binaryToObject/binaryToObject") {
|
||||
name "binaryToObject"
|
||||
type publishBinSuffix
|
||||
extension publishBinSuffix
|
||||
extension binSuffix
|
||||
}
|
||||
|
||||
artifact("${nativeBuildDir}/libavian.a") {
|
||||
|
@ -1,4 +1,4 @@
|
||||
org.gradle.daemon=true
|
||||
|
||||
group=com.readytalk
|
||||
group=com.readytalk.avian
|
||||
version=1.1.0-SNAPSHOT
|
Loading…
x
Reference in New Issue
Block a user