sourceSets { sim } dependencies { simCompile sourceSets.shared.output simCompile project(':simulation:JavaGazebo') simCompile ntcoreDep('java', 'desktop') simRuntime ntcoreDep('java', 'desktop') } task wpilibjSimJar(type: Jar, dependsOn: simClasses) { description = 'Creates the WPILibJSimulation Jar' group = 'WPILib Simulation' duplicatesStrategy = 'exclude' doFirst { def addClasspath = { classpath -> classpath.files.findAll { it.exists() }.each { if (!file(it).directory) { from zipTree(it.path) } } } addClasspath sourceSets.shared.runtimeClasspath addClasspath sourceSets.sim.runtimeClasspath } from sourceSets.sim.output from sourceSets.shared.output baseName 'wpilibjSimulation' } task wpilibjSimSources(type: Jar, dependsOn: simClasses) { description = 'Creates the wpilibjSimulation sources jar for the maven publishing routine' group = 'WPILib' classifier = 'sources' duplicatesStrategy = 'exclude' from sourceSets.sim.allJava from sourceSets.shared.allJava } task wpilibjSimJavadoc(type: Javadoc) { description = 'Generates javadoc for the simulation components' group = 'WPILib' source sourceSets.sim.allJava, sourceSets.shared.allJava destinationDir = file("$buildDir/docs/java-simulation") classpath = files([sourceSets.sim.compileClasspath, sourceSets.shared.compileClasspath]) } task wpilibjSimJavadocJar(type: Jar, dependsOn: wpilibjSimJavadoc) { description = 'Creates the wpilibjSimulation javadoc jar for the maven publishing routine' group = 'WPILib' classifier = 'javadoc' duplicatesStrategy = 'exclude' from wpilibjSimJavadoc.destinationDir } //we need to move the simulation jars to the install directory task copyJars(type: Copy, dependsOn: wpilibjSimJar) { description = 'copy wpilibj simulation jar to make simulation zip' group = 'WPILib Simulation' from wpilibjSimJar.archivePath into "$simulationInstallDir/jar" } build.dependsOn wpilibjSimJar