diff --git a/.travis.yml b/.travis.yml index d30a030bae..0d01043096 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,15 +1,12 @@ language: cpp env: global: - - secure: Pe7OLUvdk3DeTAShyaYsdAXBcnjdNOrtfTPt1mCP5+JKBUw3z0n7BpTgATVRBmkn866pDqxL0N3+jBgjKUpEpqOj23bTB2AeDdIzlYkFGvTd3GQQV1lMFn16I9LOgWJhkfICTJ1rIYiNf8xSkJoeKGB7eGUM0KGsTvelFfsaGVc= - - secure: OWgsHP9ijb7oLpZVJqlovccT+OO3uAWEZxVdT/rNFS1riGoTSwi1ptlHUw/lEZY1Lw1dEaSW6kfc2rqpTgsHOFQpcdJeK8E29TLn1x25kYaGzo6JY2wWi5q4I3IMRRcFEharXlucJUO6yZWqhDXZTD4J8yf+wXt4blSRrAXil50= - - secure: T19BYOl5UB5vTDD3Q2np0iHroPm1elHhCW7AOkUPnjXE+mwMTWQlRm1LxbZ+tv1dykUSlhBwdLP7dNWRzWa1JbAY6Y2SbMmwfdryZTBaELcXWsTcGOP80pKx1ruY30mQfyguVukfIZj8qvRSIMwXCYm+Do+XffC8fmqXSTBRulA= - - TERM=dumb - + - TERM=dumb + - secure: Pe7OLUvdk3DeTAShyaYsdAXBcnjdNOrtfTPt1mCP5+JKBUw3z0n7BpTgATVRBmkn866pDqxL0N3+jBgjKUpEpqOj23bTB2AeDdIzlYkFGvTd3GQQV1lMFn16I9LOgWJhkfICTJ1rIYiNf8xSkJoeKGB7eGUM0KGsTvelFfsaGVc= + # BINTRAY_USER + - secure: CauPpj2QrbgEaePEPQx+FDeZqc46HmWXHfdAyn+DA9g6np3RMyc+N/ESrJ9efc4E772rnxory2QRyyNffzi29ceNTpIzsIRDuk5WvvC+zePEsQm8kX1afsDK5g16QEvJN24jGSW9ci9uxuknqjeKVOukcFQdxssIyDe11tYWJeI= + # BINTRAY_API_KEY + - secure: Gao6KTkCbqrdCDI2hQswh1v+SpHBeF4hR1WXmCe9gjmPyJb731K2eWigQOrhPOw7Ns3nubo1FwCb5YevYmwPMLryh0f4sKJyqLL1MLbffNl5GttNF2oO3p73cJpgBfHdzabAMwAYGYbneqUZ0Qn4K8RkzXUaoBDv465KmZhqbA0= script: "./test/ci.sh" - after_success: -- make clean build -- ./gradlew artifactoryPublish -- make javadoc -- ".utility/push-javadoc-to-gh-pages.sh" +- "./gradlew artifactoryPublish" diff --git a/build.gradle b/build.gradle index f26469e800..12dc2ce42d 100644 --- a/build.gradle +++ b/build.gradle @@ -19,6 +19,36 @@ model { 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}" + } + } } } @@ -43,6 +73,22 @@ sourceSets { } } +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 { @@ -52,28 +98,36 @@ publishing { } 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}" - module "${project.name}-${platform.name}" - - artifact("${nativeBuildDir}/avian") { - name "avian" - type "bin" - extension "bin" + if(platform.operatingSystem.name == "windows") { + publishBinSuffix = "exe" + binSuffix = ".${publishBinSuffix}" } - artifact("${nativeBuildDir}/classpath.jar") { - name "classpath" - type "jar" + module "${project.name}-${platform.name}" + + artifact("${nativeBuildDir}/avian${binSuffix}") { + name "avian" + type publishBinSuffix + extension publishBinSuffix } artifact("${nativeBuildDir}/binaryToObject/binaryToObject") { name "binaryToObject" - type "bin" - extension "bin" + type publishBinSuffix + extension publishBinSuffix } artifact("${nativeBuildDir}/libavian.a") { @@ -86,6 +140,10 @@ publishing { } } +artifactoryPublish { + dependsOn assemble +} + artifactory { contextUrl = "http://oss.jfrog.org" @@ -106,7 +164,9 @@ artifactory { } defaults { - publications 'linux-x86_64' + platforms.each { + publications it.name + } } } } diff --git a/makefile b/makefile index d309ad5a7b..8e59ddfff8 100755 --- a/makefile +++ b/makefile @@ -1527,14 +1527,6 @@ tarball: (cd .. && tar --exclude=build --exclude='.*' --exclude='*~' -cjf \ avian/build/avian-$(version).tar.bz2 avian) -.PHONY: javadoc -javadoc: - $(JAVA_HOME)/bin/javadoc -sourcepath classpath -d build/javadoc -subpackages avian:java \ - -windowtitle "Avian v$(version) Class Library API" \ - -doctitle "Avian v$(version) Class Library API" \ - -header "Avian v$(version)" \ - -bottom "http://oss.readytalk.com/avian" - .PHONY: clean-current clean-current: @echo "removing $(build)"