// Plugins apply plugin: "java" apply plugin: "jacoco" java { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } wpilibTools.deps.wpilibVersion = wpi.versions.wpilibVersion.get() def nativeConfigName = 'wpilibTestNative' def nativeConfig = configurations.create(nativeConfigName) def nativeTasks = wpilibTools.createExtractionTasks { configurationName = nativeConfigName } nativeTasks.addToSourceSetResources(sourceSets.main) nativeConfig.dependencies.add wpilibTools.deps.wpilib("wpimath") nativeConfig.dependencies.add wpilibTools.deps.wpilib("wpinet") nativeConfig.dependencies.add wpilibTools.deps.wpilib("wpiutil") nativeConfig.dependencies.add wpilibTools.deps.wpilib("ntcore") nativeConfig.dependencies.add wpilibTools.deps.wpilib("cscore") nativeConfig.dependencies.add wpilibTools.deps.wpilib("apriltag") nativeConfig.dependencies.add wpilibTools.deps.wpilib("hal") nativeConfig.dependencies.add wpilibTools.deps.wpilibOpenCv("frc" + wpi.frcYear.get(), wpi.versions.opencvVersion.get()) dependencies { // WPILib deps implementation wpilibTools.deps.wpilibJava("wpiutil") implementation wpilibTools.deps.wpilibJava("cameraserver") implementation wpilibTools.deps.wpilibJava("cscore") implementation wpilibTools.deps.wpilibJava("wpinet") implementation wpilibTools.deps.wpilibJava("wpimath") implementation wpilibTools.deps.wpilibJava("ntcore") implementation wpilibTools.deps.wpilibJava("hal") implementation wpilibTools.deps.wpilibJava("wpilibj") implementation wpilibTools.deps.wpilibOpenCvJava("frc" + wpi.frcYear.get(), wpi.versions.opencvVersion.get()) // Jackson implementation group: "com.fasterxml.jackson.core", name: "jackson-annotations", version: wpi.versions.jacksonVersion.get() implementation group: "com.fasterxml.jackson.core", name: "jackson-core", version: wpi.versions.jacksonVersion.get() implementation group: "com.fasterxml.jackson.core", name: "jackson-databind", version: wpi.versions.jacksonVersion.get() // Apache commons implementation group: "org.apache.commons", name: "commons-lang3", version: "3.12.0" implementation group: "commons-io", name: "commons-io", version: "2.11.0" implementation group: "commons-cli", name: "commons-cli", version: "1.5.0" implementation "org.apache.commons:commons-collections4:4.4" implementation "org.apache.commons:commons-exec:1.3" implementation group: "org.ejml", name: "ejml-simple", version: wpi.versions.ejmlVersion.get() implementation group: "us.hebi.quickbuf", name: "quickbuf-runtime", version: wpi.versions.quickbufVersion.get(); testImplementation("org.junit.jupiter:junit-jupiter:5.8.2") // wpilib serde implementation 'us.hebi.quickbuf:quickbuf-runtime:1.3.2' } test { useJUnitPlatform() testLogging { events "passed", "skipped", "failed", "standardOut", "standardError" } workingDir = new File("${rootDir}") finalizedBy jacocoTestReport } tasks.register('testHeadless', Test) { group = "verification" systemProperty("java.awt.headless", "true") useJUnitPlatform() exclude '**/*BenchmarkTest*' workingDir = "../" } tasks.register('generateJavaDocs', Javadoc) { source = sourceSets.main.allJava classpath = sourceSets.main.compileClasspath destinationDir = file("${projectDir}/build/docs") } jacoco { toolVersion = "0.8.9" reportsDirectory = layout.buildDirectory.dir('customJacocoReportDir') } jacocoTestReport { dependsOn testHeadless reports { xml.required = true csv.required = false html.outputLocation = layout.buildDirectory.dir('jacocoHtml') } afterEvaluate { classDirectories.setFrom(files(classDirectories.files.collect { fileTree(dir: it, exclude: "edu/wpi/**" ) })) } }