import com.github.vlsi.gradle.crlf.CrLfSpec import com.github.vlsi.gradle.crlf.LineEndings plugins { `java-library` id("com.github.vlsi.crlf") } dependencies { api(projects.darklafPropertyLoader) compileOnly(libs.javaxAnnotations) } fun Jar.includeLicenses() { CrLfSpec(LineEndings.LF).run { into("META-INF") { filteringCharset = "UTF-8" duplicatesStrategy = DuplicatesStrategy.EXCLUDE textFrom("$rootDir/licenses/INTELLIJ_LICENSE.txt") textFrom("$rootDir/licenses/INTELLIJ_NOTICE.txt") } } } tasks.jar { includeLicenses() } val generateIconAccessor by tasks.registering { val generatedDir = project.buildDir.resolve("generated/iconAccessor") sourceSets.main.configure { java.srcDir(generatedDir) } doFirst { sourceSets.main.configure { val propertyFile = project.file("iconAccessorSpec.properties") val allIconsName = "AllIcons" generatedDir.mkdirs() val packageName = "com.github.weisj.darklaf.iconset" generatedDir.resolve("${packageName.replace('.', '/')}/$allIconsName.java").apply { parentFile.mkdirs() createNewFile() writeText(createIconAccessor(propertyFile, packageName, allIconsName)) } } } } tasks.compileJava.configure { dependsOn(generateIconAccessor) }