plugins { id 'java' id 'jacoco' id 'com.diffplug.gradle.spotless' version '3.26.0' } allprojects { repositories { mavenCentral() } } java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 withJavadocJar() withSourcesJar() } wrapper { gradleVersion = '6.1.1' } spotless { java { removeUnusedImports() googleJavaFormat() } format 'gradle', { target '**/*.gradle' trimTrailingWhitespace() indentWithTabs() } } // cmake runs will inform us of the build directory of the current run def cmakeBuildDir = System.properties['cmakeBuildDir'] def cmakeJavaDir = "${cmakeBuildDir}/java" def cmakeNativeLibDir = "${cmakeJavaDir}/native-lib" def cmakeNativeJniDir = "${cmakeJavaDir}/native-jni" def cmakeBuildOutputDir = "${cmakeJavaDir}/build" version = rootProject.file('../VERSION_NUMBER').text.trim() compileJava { options.compilerArgs += ["-h", "${project.buildDir}/headers/"] } sourceSets.test { // add test resource files resources.srcDirs += [ "${rootProject.projectDir}/../csharp/testdata", "${rootProject.projectDir}/../onnxruntime/test/testdata", "${rootProject.projectDir}/../java/testdata" ] if (cmakeBuildDir != null) { // add compiled native libs resources.srcDirs += [ cmakeNativeLibDir, cmakeNativeJniDir ] } } if (cmakeBuildDir != null) { // generate tasks to be called from cmake task jniJar(type: Jar) { classifier = 'jni' from cmakeNativeJniDir } task libJar(type: Jar) { classifier = 'lib' from cmakeNativeLibDir } task allJar(type: Jar) { classifier = 'all' from sourceSets.main.output from cmakeNativeJniDir from cmakeNativeLibDir } task cmakeBuild(type: Copy) { from project.buildDir include 'libs/**' include 'docs/**' into cmakeBuildOutputDir } cmakeBuild.dependsOn jar cmakeBuild.dependsOn jniJar cmakeBuild.dependsOn libJar cmakeBuild.dependsOn allJar cmakeBuild.dependsOn sourcesJar cmakeBuild.dependsOn javadocJar cmakeBuild.dependsOn javadoc task cmakeCheck(type: Copy) { from project.buildDir include 'reports/**' into cmakeBuildOutputDir } cmakeCheck.dependsOn check } dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-api:5.1.1' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.1.1' testImplementation 'com.google.protobuf:protobuf-java:3.10.0' } test { useJUnitPlatform() testLogging { events "passed", "skipped", "failed" } } jacocoTestReport { reports { xml.enabled true csv.enabled true html.destination file("${buildDir}/jacocoHtml") } }