plugins {
	id 'java-library'
	id 'com.github.johnrengelman.shadow' version '7.1.2'
}

sourceCompatibility = '1.11'
targetCompatibility = '1.11'

compileJava {
	// Suppress warnings about internal api usage - https://stackoverflow.com/a/19553686/6238618
	options.fork = true
	options.forkOptions.executable = 'javac'
	options.compilerArgs << '-XDignore.symbol.file'
}

shadowJar {
	exclude 'OSGI-OPT/'  // args4j garbage
}

repositories {
	mavenCentral()
}

dependencies {
	compileOnly 'org.projectlombok:lombok:1.18.22'
	annotationProcessor 'org.projectlombok:lombok:1.18.22'

	implementation 'args4j:args4j:2.33'
	implementation 'net.lingala.zip4j:zip4j:2.9.1'
	implementation 'net.java.dev.jna:jna-platform:5.9.0'
	implementation 'com.github.oshi:oshi-core:5.8.6'
	implementation 'org.simpleframework:simple-xml:2.7.1'
	implementation 'javax.xml.bind:jaxb-api:2.3.1'
	implementation 'com.formdev:flatlaf:1.6.5'
	implementation 'com.squareup.okhttp3:okhttp:4.9.3'
	implementation 'com.squareup.okhttp3:okhttp-urlconnection:4.9.3'
	implementation 'org.slf4j:slf4j-nop:1.7.32'
//	implementation "com.squareup.okhttp3:okhttp:4.9.0" //missing JavaNetCookieJar
}

jar {
	manifest {
		attributes "Main-Class": "com.sheepit.client.standalone.Worker"
	}
	
	from {
		configurations.implementation.collect { it.isDirectory() ? it : zipTree(it) }
	}
}

sourceSets {
	main {
		java {
			srcDirs = ['src']
		}
		resources {
			srcDirs = ['resources']
		}
	}
	
	test {
		java {
			srcDirs = ['test']
		}
	}
}
