mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-20 00:51:41 +00:00
This allowed us to drop a few Apache Commons dependencies, which is good for reducing JAR size and the number of things we need to pull in.
127 lines
4.9 KiB
Groovy
127 lines
4.9 KiB
Groovy
// Plugins
|
|
apply plugin: "java"
|
|
apply plugin: "jacoco"
|
|
|
|
java {
|
|
sourceCompatibility = JavaVersion.VERSION_17
|
|
targetCompatibility = JavaVersion.VERSION_17
|
|
}
|
|
|
|
wpilibTools.deps.wpilibVersion = wpilibVersion
|
|
|
|
// Tell gradlerio what version of things to use (that we care about)
|
|
// See: https://github.com/wpilibsuite/GradleRIO/blob/main/src/main/java/edu/wpi/first/gradlerio/wpi/WPIVersionsExtension.java
|
|
wpi.getVersions().getOpencvVersion().convention(openCVversion);
|
|
wpi.getVersions().getWpilibVersion().convention(wpilibVersion);
|
|
wpi.getVersions().getWpimathVersion().convention(wpimathVersion);
|
|
|
|
dependencies {
|
|
implementation project(':photon-targeting')
|
|
|
|
implementation "io.javalin:javalin:$javalinVersion"
|
|
|
|
implementation 'org.msgpack:msgpack-core:0.9.0'
|
|
implementation 'org.msgpack:jackson-dataformat-msgpack:0.9.0'
|
|
|
|
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.wpilibJava("apriltag")
|
|
implementation wpilibTools.deps.wpilibJava("wpiunits")
|
|
implementation wpilibTools.deps.wpilibOpenCvJava("frc" + openCVYear, wpi.versions.opencvVersion.get())
|
|
|
|
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()
|
|
|
|
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();
|
|
|
|
implementation "commons-io:commons-io:2.11.0"
|
|
implementation "commons-cli:commons-cli:1.5.0"
|
|
implementation "org.apache.commons:commons-exec:1.3"
|
|
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.0'
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.0'
|
|
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.0'
|
|
}
|
|
|
|
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")
|
|
|
|
options.addBooleanOption("Xdoclint:html,missing,reference,syntax", true)
|
|
options.addBooleanOption('html5', true)
|
|
|
|
if (JavaVersion.current().isJava8Compatible() && project.hasProperty('docWarningsAsErrors')) {
|
|
// Treat javadoc warnings as errors.
|
|
//
|
|
// The second argument '-quiet' is a hack. The one parameter
|
|
// addStringOption() doesn't work, so we add '-quiet', which is added
|
|
// anyway by gradle. See https://github.com/gradle/gradle/issues/2354.
|
|
//
|
|
// See JDK-8200363 (https://bugs.openjdk.java.net/browse/JDK-8200363)
|
|
// for information about the nonstandard -Xwerror option. JDK 15+ has
|
|
// -Werror.
|
|
options.addStringOption('Xwerror', '-quiet')
|
|
}
|
|
|
|
if (JavaVersion.current().isJava11Compatible()) {
|
|
if (!JavaVersion.current().isJava12Compatible()) {
|
|
options.addBooleanOption('-no-module-directories', true)
|
|
}
|
|
doLast {
|
|
// This is a work-around for https://bugs.openjdk.java.net/browse/JDK-8211194. Can be removed once that issue is fixed on JDK's side
|
|
// Since JDK 11, package-list is missing from javadoc output files and superseded by element-list file, but a lot of external tools still need it
|
|
// Here we generate this file manually
|
|
new File(destinationDir, 'package-list').text = new File(destinationDir, 'element-list').text
|
|
}
|
|
}
|
|
}
|
|
|
|
jacoco {
|
|
toolVersion = "0.8.10"
|
|
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/**"
|
|
)
|
|
}))
|
|
}
|
|
}
|