Skip to content
Snippets Groups Projects
build.gradle 4.12 KiB
Newer Older
Nils Christian Ehmke's avatar
Nils Christian Ehmke committed
apply plugin: 'application'
apply plugin: 'eclipse'

mainClassName = 'kieker.gui.view.MainWindow'
version = '1.0-SNAPSHOT'

sourceCompatibility = '1.7'
targetCompatibility = '1.7'

repositories {
	mavenCentral()
	maven { url 'https://swt-repo.googlecode.com/svn/repo/' }
	maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } 
}

configurations { 
	windowsX86Runtime
	windowsX64Runtime
	linuxX86Runtime
	linuxX64Runtime
  
  providedCompile 
}

dependencies {
  // One of the runtime dependencies has to be used during the compilation. Modify this entry for Eclipse depending on your development JRE.
  providedCompile 'org.eclipse.swt:org.eclipse.swt.win32.win32.x86_64:4.4'
  
	windowsX86Runtime 'org.eclipse.swt:org.eclipse.swt.win32.win32.x86:4.4'
	windowsX64Runtime 'org.eclipse.swt:org.eclipse.swt.win32.win32.x86_64:4.4'
	linuxX86Runtime 'org.eclipse.swt:org.eclipse.swt.gtk.linux.x86:4.4'
	linuxX64Runtime 'org.eclipse.swt:org.eclipse.swt.gtk.linux.x86_64:4.4'
	
	compile 'net.sourceforge.teetime:teetime:1.0-SNAPSHOT'
  compile 'net.kieker-monitoring:kieker:1.11-SNAPSHOT'
  compile files('lib/kieker-teetime-stages-1.0-SNAPSHOT.jar')
  
  compile 'org.eclipse:jface:3.2.1-M20060908-1000'
}

// Add the provided-scoped dependencies to the classpaths
sourceSets.main.compileClasspath += configurations.providedCompile
eclipse.classpath.plusConfigurations += [configurations.providedCompile]

def commonStartScriptConfiguration = {
    mainClassName = project.mainClassName
    applicationName = 'start' 
    outputDir = new File(project.buildDir, 'scripts')
    classpath = jar.outputs.files + project.configurations.runtime 
}

task createStartScriptWinX86(type: CreateStartScripts) {
	configure commonStartScriptConfiguration
  classpath += project.configurations.windowsX86Runtime
}

task createStartScriptWinX64(type: CreateStartScripts) {
	configure commonStartScriptConfiguration
  classpath += project.configurations.windowsX64Runtime
}

task createStartScriptLinuxX86(type: CreateStartScripts) {
	configure commonStartScriptConfiguration
  classpath += project.configurations.linuxX86Runtime 
}

task createStartScriptLinuxX64(type: CreateStartScripts) {
	configure commonStartScriptConfiguration
  classpath += project.configurations.linuxX64Runtime
}

def commonDistBinConfiguration = {
  into('lib') {
    from configurations.runtime
    from jar.archivePath 
  }
}

task distBinWinX86(type: Zip, dependsOn: [jar, createStartScriptWinX86]) {
	description = 'Bundles the project as a JVM application with OS specific libs and script for Windows x86.'
	classifier = 'windows_x86'
	
	configure commonDistBinConfiguration
	
	into ('bin') {
		from createStartScriptWinX86.getWindowsScript()
	}
	
  into('lib') {
  from configurations.windowsX86Runtime
  }
}

task distBinWinX64(type: Zip, dependsOn: [jar, createStartScriptWinX64]) {
	description = 'Bundles the project as a JVM application with OS specific libs and script for Windows x64.'
	classifier = 'windows_x64'
	
	configure commonDistBinConfiguration
	
	into ('bin') {
		from createStartScriptWinX64.getWindowsScript()
	}

  into('lib') {
    from configurations.windowsX64Runtime
  }
}

task distBinLinuxX86(type: Tar, dependsOn: [jar, createStartScriptLinuxX86]) {
	description = 'Bundles the project as a JVM application with OS specific libs and script for Linux x86.'
	classifier = 'linux_x86'
	compression = Compression.GZIP
	
	configure commonDistBinConfiguration
	
	into ('bin') {
		from createStartScriptLinuxX86.getUnixScript()
	}
	
  into('lib') {
    from configurations.linuxX86Runtime
  }
}

task distBinLinuxX64(type: Tar, dependsOn: [jar, createStartScriptLinuxX64]) {
	description = 'Bundles the project as a JVM application with OS specific libs and script for Linux x64.'
	classifier = 'linux_x64'
	compression = Compression.GZIP
	
	configure commonDistBinConfiguration
	
	into ('bin') {
		from createStartScriptLinuxX64.getUnixScript()
	}
	
  into('lib') {
    from configurations.linuxX64Runtime
  }
}

task distAllBin(dependsOn: [distBinWinX86, distBinWinX64, distBinLinuxX86, distBinLinuxX64]) {
	description = 'Bundles the project as a JVM application with OS specific libs and scripts for all platforms.'
}