Files
PhotonVision/photon-server/build.gradle
Matt b3436765e1 3d, camera calibration, backend settings hookup (#80)
* Implement new UI backend stuff

* Kinda partially add resolution accuracy list

* camera calibration go brrrrrrrr

* ayyyy calibration works

* Maybe fix grouping

* Reorganize camera view

* Fix settings not getting sent

* Make pretty (#4)

* Reorganize camera view

* Apply some cosmetic layout changes to the cameras page

* Fix pipeline rollback bug when starting on non-dashboard pages

Co-authored-by: Matt <matthew.morley.ca@gmail.com>

* Fix naming mismatch

* Mostly make stuff work

* rename robot-relative pose to camera-relative pose

* SolvePNP memes, fix isFovConfigurable

* Change config path to photonvision_config

* netmask go poof, fix zip download?

* Update index.js

* Fix multi cam stuff?

* Use LinearFilter instead

* Fix multicam

* aaa

* start adding restart device and restart program, fix square size bug

* Add some debug stuff

* oop

* Start fixing tests

* Fix tests

* Make target box proportinal

* run spotless

* Make crosshair h o t p i n k

* Address review comments

* Address review 2 electric booaloo

* Possibly implement vendor FOV?

* Make centroid crosshair gren

* actually use FOV

* Fix tests

* actually fix tests

Co-authored-by: Declan Freeman-Gleason <declanfreemangleason@gmail.com>
2020-08-14 12:39:21 -07:00

162 lines
5.0 KiB
Groovy

plugins {
id 'java'
id 'application'
id 'com.github.johnrengelman.shadow' version '5.2.0'
id "com.diffplug.gradle.spotless" version "3.28.0"
id "jacoco"
}
apply from: 'versioningHelper.gradle'
mainClassName = 'org.photonvision.Main'
group 'org.photonvision'
version versionString
sourceCompatibility = 11
repositories {
jcenter()
mavenCentral()
maven {
url = 'https://frcmaven.wpi.edu:443/artifactory/development'
}
}
ext {
wpilibVersion = '2020.3.2-99-g9f4de91'
openCVVersion = '3.4.7-2'
}
dependencies {
implementation "io.javalin:javalin:3.7.0"
compile group: 'eu.xeli', name: 'jpigpio_2.12', version: '0.1.0'
implementation "com.fasterxml.jackson.core:jackson-annotations:2.10.0"
implementation "com.fasterxml.jackson.core:jackson-core:2.10.0"
implementation "com.fasterxml.jackson.core:jackson-databind:2.10.0"
implementation "org.msgpack:msgpack-core:0.8.20"
implementation "org.msgpack:jackson-dataformat-msgpack:0.8.20"
implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.9'
implementation "org.apache.commons:commons-math3:3.6.1"
implementation group: 'commons-io', name: 'commons-io', version: '2.6'
implementation group: 'commons-cli', name: 'commons-cli', version: '1.4'
implementation "org.apache.commons:commons-collections4:4.4"
implementation "org.apache.commons:commons-exec:1.3"
// wpilib stuff
implementation "edu.wpi.first.wpiutil:wpiutil-java:$wpilibVersion"
implementation "edu.wpi.first.cameraserver:cameraserver-java:$wpilibVersion"
implementation "edu.wpi.first.cscore:cscore-java:$wpilibVersion"
compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:linuxaarch64bionic"
compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:linuxraspbian"
compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:linuxx86-64"
compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:osxx86-64"
compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:windowsx86-64"
implementation "edu.wpi.first.ntcore:ntcore-java:$wpilibVersion"
compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:linuxaarch64bionic"
compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:linuxraspbian"
compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:linuxx86-64"
compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:osxx86-64"
compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:windowsx86-64"
implementation "edu.wpi.first.thirdparty.frc2020.opencv:opencv-java:$openCVVersion"
compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:linuxaarch64bionic"
compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:linuxraspbian"
compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:linuxx86-64"
compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:osxx86-64"
compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:windowsx86-64"
compile "org.slf4j:slf4j-simple:1.8.0-beta4"
// Zip
compile "org.zeroturnaround:zt-zip:1.14"
// test stuff
testImplementation('org.junit.jupiter:junit-jupiter:5.6.0')
}
shadowJar {
configurations = [project.configurations.runtimeClasspath]
archiveFileName.set("photonvision-${project.version}.jar")
}
test {
useJUnitPlatform()
testLogging {
events "passed", "skipped", "failed", "standardOut", "standardError"
}
}
task testHeadless(type: Test) {
group = 'verification'
systemProperty("java.awt.headless", "true")
useJUnitPlatform()
}
task runNpmOnClient(type: Exec) {
workingDir "${projectDir}/../photon-client"
if (System.getProperty('os.name').toLowerCase(Locale.ROOT).contains('windows')) {
commandLine 'cmd', '/c', 'npm run build'
} else {
commandLine 'npm', 'run', 'build'
}
}
task copyClientUIToResources(type: Copy) {
from "${projectDir}/../photon-client/dist/"
into "${projectDir}/src/main/resources/web/"
}
task buildAndCopyUI {}
buildAndCopyUI.dependsOn copyClientUIToResources
copyClientUIToResources.dependsOn runNpmOnClient
copyClientUIToResources.shouldRunAfter runNpmOnClient
task generateJavaDocs(type: Javadoc) {
source = sourceSets.main.allJava
classpath = sourceSets.main.compileClasspath
destinationDir = file("${projectDir}/build/docs")
}
spotless {
java {
googleJavaFormat()
paddedCell()
indentWithTabs(2)
indentWithSpaces(4)
removeUnusedImports()
}
java {
target "src/*/java/org/**/*.java"
licenseHeaderFile "$rootDir/LicenseHeader.txt"
targetExclude("src/main/java/org/photonvision/PhotonVersion.java")
}
}
jacocoTestReport {
dependsOn test // Tests are required to run before generating the report
reports {
xml.enabled true
}
afterEvaluate {
classDirectories.setFrom(files(classDirectories.files.collect {
fileTree(dir: it,
exclude: 'edu/wpi/**'
)
}))
}
}