Merge branch 'native'

This merges the work to generate native installers for Windows, Linux
and OS X using the JavaFX Gradle plugin. See #66 for details.
This commit is contained in:
Chris Beams 2014-10-03 18:37:55 +02:00
commit de35c1ba0c
No known key found for this signature in database
GPG Key ID: 3D214F8F5BC5ED73
16 changed files with 115 additions and 14 deletions

View File

@ -1,6 +1,12 @@
language: java
jdk: oraclejdk8
install:
- "sudo apt-get purge openjdk*"
- "sudo add-apt-repository -y ppa:webupd8team/java"
- "sudo apt-get update"
- "sudo apt-get install oracle-java8-installer"
notifications:
irc:
channels: chat.freenode.net#bitsquare

View File

@ -1,25 +1,25 @@
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.github.rholder:gradle-one-jar:1.0.4'
}
}
apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'gradle-one-jar'
apply from: 'gradle/javafx.gradle'
version = '0.1.0-SNAPSHOT'
sourceCompatibility = 1.8
mainClassName = 'io.bitsquare.BitSquare'
sourceSets.main.resources.srcDirs += 'src/main/java'
task executableJar(type: OneJar) {
mainClass = project.mainClassName
archiveName = 'bitsquare.jar'
javafx {
appID 'Bitsquare'
appName 'Bitsquare'
mainClass 'io.bitsquare.BitSquare'
profiles {
windows {
javaRuntime = 'C:/Program Files/Java/jdk1.8.0_20/jre'
bundleArguments = [
'win.msi.productVersion' : '0.1.0'
]
}
}
}
repositories {

95
gradle/javafx.gradle Normal file
View File

@ -0,0 +1,95 @@
/*
* Bootstrap script for the Gradle JavaFX Plugin.
* (based on http://plugins.jasoft.fi/vaadin.plugin)
*
* The script will add the plugin to the build script
* dependencies and apply the plugin to the project. If you do not want
* this behavior you can copy and paste the below configuration into your
* own build script and define your own repository and version for the plugin.
*/
import org.gradle.api.GradleException;
buildscript {
repositories {
maven {
name = 'JavaFX Gradle plugin'
url = 'http://dl.bintray.com/content/shemnon/javafx-gradle/'
}
maven {
name = 'CloudBees snapshots'
url = 'http://repository-javafx-gradle-plugin.forge.cloudbees.com/snapshot'
}
ivy {
name = 'CloudBees snapshots'
url = 'http://repository-javafx-gradle-plugin.forge.cloudbees.com/snapshot'
}
jcenter()
}
dependencies {
try {
assert (jfxrtDir != null)
} catch (RuntimeException re) {
ext.jfxrtDir = "."
}
ext.searchFile = {Map<String, Closure> places, List<String> searchPaths, String searchID ->
File result = null;
places.each { k, v ->
if (result != null) return;
project.logger.debug("Looking for $searchID in $k")
def dir = v()
if (dir == null) {
project.logger.debug("$k not set")
} else {
project.logger.debug("$k is $dir")
searchPaths.each { s ->
if (result != null) return;
File f = new File(dir, s);
project.logger.debug("Trying $f.path")
if (f.exists() && f.file) {
project.logger.debug("found $searchID as $result")
result = f;
}
}
}
}
if (!result?.file) {
throw new GradleException("Could not find $searchID, please set one of ${places.keySet()}");
} else {
project.logger.info("$searchID: ${result}")
return result
}
}
ext.findJFXJar = {
return searchFile([
'jfxrtDir in Gradle Properties': {jfxrtDir},
'JFXRT_HOME in System Environment': {System.env['JFXRT_HOME']},
'JAVA_HOME in System Environment': {System.env['JAVA_HOME']},
'java.home in JVM properties': {System.properties['java.home']}
],
['jfxrt.jar', 'lib/jfxrt.jar', 'lib/ext/jfxrt.jar', 'jre/lib/jfxrt.jar', 'jre/lib/ext/jfxrt.jar'],
'JavaFX Runtime Jar')
}
ext.findAntJavaFXJar = {
return searchFile([
'jfxrtDir in Gradle Properties': {jfxrtDir},
'JFXRT_HOME in System Environment': {System.env['JFXRT_HOME']},
'JAVA_HOME in System Environment': {System.env['JAVA_HOME']},
'java.home in JVM properties': {System.properties['java.home']}
],
['ant-javafx.jar', 'lib/ant-javafx.jar', '../lib/ant-javafx.jar'],
'JavaFX Packager Tools')
}
classpath 'org.bitbucket.shemnon.javafxplugin:gradle-javafx-plugin:8.1.1'
classpath project.files(findAntJavaFXJar())
classpath project.files(findJFXJar())
}
}
if (!project.plugins.findPlugin(org.bitbucket.shemnon.javafxplugin.JavaFXPlugin)) {
project.apply(plugin: org.bitbucket.shemnon.javafxplugin.JavaFXPlugin)
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.