Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/kmcaster.git
plugins {
  id 'application'
}

group 'com.whitemagicsoftware'
version '2.0'

repositories {
  mavenCentral()
}

dependencies {
  // Provides command-line parsing functionality.
  implementation 'info.picocli:picocli:4.7.0'

  // Provides operating system detection functionality.
  implementation 'org.apache.commons:commons-lang3:3.12.0'

  // Provides SVG parsing and rendering functionality.
  implementation fileTree(include: ['**/*.jar'], dir: 'libs')

  // Provides ability to detect keystrokes outside of JVM.
  implementation 'com.github.kwhat:jnativehook:2.2.2'
}

compileJava.options.encoding = 'UTF-8'

tasks.withType(JavaCompile).configureEach {
  options.encoding = 'UTF-8'
}

sourceSets {
  main {
    java {
      srcDirs = ["src/main/java"]
    }
  }
}

compileJava {
  sourceCompatibility = '14'
  targetCompatibility = '14'

  options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}

application {
  applicationName = 'kmcaster'
  mainClassName = "com.whitemagicsoftware.${applicationName}.KmCaster"
}

jar {
  duplicatesStrategy = DuplicatesStrategy.EXCLUDE

  manifest {
    attributes 'Main-Class': mainClassName
  }

  from {
    (configurations.runtimeClasspath.findAll { !it.path.endsWith(".pom") }).collect {
      it.isDirectory() ? it : zipTree(it)
    }
  }

  archiveFileName = "${applicationName}.jar"

  exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'
}