plugins {
  id 'java'
  id 'application'
  id 'org.javamodularity.moduleplugin' version '1.8.12'
  id 'org.openjfx.javafxplugin' version '0.0.13'
  id 'org.beryx.jlink' version '2.25.0'
}

group 'org.to'
version '1.0-SNAPSHOT'

repositories {
  mavenCentral()
}

ext {
  junitVersion = '5.10.2'
}

sourceCompatibility = '23'
targetCompatibility = '23'

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

application {
  mainModule = 'org.to.telegramfinalproject'
  mainClass = 'org.to.telegramfinalproject.HelloApplication'
}

javafx {
  version = '17.0.6'
  modules = ['javafx.controls', 'javafx.fxml', 'javafx.web', 'javafx.swing' , 'javafx.media']
}

dependencies {
    // JavaFX UI Libraries
    implementation 'org.controlsfx:controlsfx:11.2.1'
    implementation('com.dlsc.formsfx:formsfx-core:11.6.0') {
        exclude group: 'org.openjfx'
    }
    implementation 'org.postgresql:postgresql:42.7.3'
    implementation('net.synedra:validatorfx:0.5.0') {
        exclude group: 'org.openjfx'
    }
    implementation 'org.json:json:20231013'
    implementation 'org.kordamp.ikonli:ikonli-javafx:12.3.1'
    implementation 'org.kordamp.bootstrapfx:bootstrapfx-core:0.4.0'
    implementation('eu.hansolo:tilesfx:21.0.3') {
        exclude group: 'org.openjfx'
    }

    test {
        useJUnitPlatform()
    }

    jlink {
        imageZip = project.file("${buildDir}/distributions/app-${javafx.platform.classifier}.zip")
        options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
        launcher {
            name = 'app'
        }
    }

    jlinkZip {
        group = 'distribution'
    }
}