sourceCompatibility = '17'
targetCompatibility = '17'

dependencies {
    compileOnly group: 'org.fusesource.jansi', name: 'jansi', version: rootProject['verJansi']
    compileOnly group: 'org.jline', name: 'jline', version: rootProject['verJline']
    compileOnly group: 'org.jline', name: 'jline-reader', version: rootProject['verJline']
    compileOnly group: 'org.jline', name: 'jline-terminal', version: rootProject['verJline']
    compileOnly group: 'org.slf4j', name: 'slf4j-api', version: rootProject['verSlf4j']
    api group: 'com.google.code.gson', name: 'gson', version: rootProject['verGson']
    testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter', version: rootProject['verJunit']
    testImplementation group: 'org.jline', name: 'jline', version: rootProject['verJline']
    testImplementation group: 'org.jline', name: 'jline-reader', version: rootProject['verJline']
    testImplementation group: 'org.jline', name: 'jline-terminal', version: rootProject['verJline']
}

test {
    useJUnitPlatform()
    testLogging {
        events "passed", "skipped", "failed"
    }
}
jar {
    archiveClassifier.set('clean')
    manifest.attributes("Multi-Release": "true")
}

tasks.register('sourcesJar', Jar) {
    from sourceSets.main.allJava
    archiveClassifier.set('sources')
}

tasks.register('javadocJar', Jar) {
    from javadoc
    archiveClassifier.set('javadoc')
}

publishing {
    publications {
        launchercore(MavenPublication) {
            artifactId = 'launcher-core'
            artifact(jar) {
                classifier ""
            }
            artifact sourcesJar
            artifact javadocJar
            pom {
                name = 'GravitLauncher Core Utils'
                description = 'GravitLauncher Core Utils'
                url = 'https://gravitlauncher.com'
                licenses {
                    license {
                        name = 'GNU General Public License, Version 3.0'
                        url = 'https://www.gnu.org/licenses/gpl-3.0.html'
                    }
                }
                developers {
                    developer {
                        id = 'gravita'
                        name = 'Gravita'
                        email = 'gravita@gravit.pro'
                    }
                    developer {
                        id = 'zaxar163'
                        name = 'Zaxar163'
                        email = 'zahar.vcherachny@yandex.ru'
                    }
                }
                scm {
                    connection = 'scm:git:https://github.com/GravitLauncher/Launcher.git'
                    developerConnection = 'scm:git:ssh://git@github.com:GravitLauncher/Launcher.git'
                    url = 'https://gravitlauncher.com/'
                }
            }
        }
    }
}

signing {
    sign publishing.publications.launchercore
}