apply plugin: 'java-library'

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(21)
    }
    modularity.inferModulePath.set(true)
    withSourcesJar()
    withJavadocJar()
}

jar {
    manifest {
        attributes('Implementation-Version': project.version)
    }
    duplicatesStrategy = DuplicatesStrategy.INCLUDE
}

tasks.withType(JavaCompile).configureEach {
    doFirst {
        options.fork = true
        options.forkOptions.jvmArgs += ['-Duser.language=en', '-Duser.country=US']
        options.encoding = 'UTF-8'
        options.compilerArgs.add('-Xlint:all')
        // enforce presence of module-info.java
        options.compilerArgs.add("--module-path")
        options.compilerArgs.add(classpath.asPath)
        classpath = files()
    }
}

tasks.withType(Javadoc).configureEach {
    doFirst {
        options.addStringOption('Xdoclint:none', '-quiet')
        options.encoding = 'UTF-8'
    }
}

tasks.withType(JavaExec).configureEach {
    doFirst {
        jvmArguments.add("--module-path")
        jvmArguments.add(classpath.asPath)
        classpath = files()
    }
}
