plugins {
	id 'idea'
    id 'java-library'
}

group 'schule.ngb'
version '0.0.34-SNAPSHOT'

java {
	withSourcesJar()
	withJavadocJar()
}

compileJava {
    options.release = 11
}

repositories {
    mavenCentral()
}

dependencies {
    runtimeOnly 'com.googlecode.soundlibs:jlayer:1.0.1.4'
	runtimeOnly 'com.googlecode.soundlibs:tritonus-share:0.3.7.4'
	runtimeOnly 'com.googlecode.soundlibs:mp3spi:1.9.5.4'

	compileOnlyApi 'colt:colt:1.2.0'
	//api 'colt:colt:1.2.0'
	//api 'net.sourceforge.parallelcolt:parallelcolt:0.10.1'

    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
	testImplementation 'org.junit.jupiter:junit-jupiter-params:5.8.1'
	testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}

jar {
	manifest {
		attributes 'Class-Path': '.'
	}
}

tasks.register('jarMP3SPI', Jar) {
	group "build"
	description "Build jar with MP3SPI included"

	archiveClassifier = 'mp3spi'
	duplicatesStrategy = 'exclude'
	// archivesBaseName = 'zeichenmaschine-mp3spi'
	from {
		configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
	}
	with jar
}

task buildAll {
	group "build"
	description "Build all jar packages"

	dependsOn 'jar'
	dependsOn 'jarMP3SPI'
	dependsOn 'sourcesJar'
	dependsOn 'javadocJar'
}

javadoc {
	options {
		encoding = "UTF-8"
		overview = "src/resources/java/overview.html"
		// title = "Die Zeichenmaschine"

		// options.links 'https://docs.oracle.com/javase/8/docs/api/'
		// options.links 'https://docs.oracle.com/javaee/7/api'
		options.links 'https://docs.oracle.com/en/java/javase/11/docs/api'
	}
	options.addStringOption("charset", "UTF-8")
}

task mkdocs(type: Exec) {
	group "documentation"
	description "Build MKDocs site"

	workingDir "${projectDir}"
	commandLine ".venv/bin/python", "-m", "mkdocs", "build"
}

task buildDocs {
	group "documentation"
	description "Run all documentation tasks"

	dependsOn 'javadoc'
	dependsOn 'javadocJar'
	dependsOn 'mkdocs'
}

test {
	useJUnitPlatform()
}
