mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-21 01:01:41 +00:00
123 lines
4.0 KiB
Groovy
123 lines
4.0 KiB
Groovy
plugins {
|
|
id 'java'
|
|
id 'com.github.johnrengelman.shadow' version '5.2.0'
|
|
id "com.diffplug.gradle.spotless" version "3.28.0"
|
|
id "application"
|
|
}
|
|
|
|
group 'org.photonvision'
|
|
version '2020.6.1'
|
|
|
|
mainClassName = "org.photonvision.server.Main"
|
|
|
|
sourceCompatibility = 11
|
|
|
|
repositories {
|
|
jcenter()
|
|
mavenCentral()
|
|
maven {
|
|
url = 'https://frcmaven.wpi.edu:443/artifactory/development'
|
|
}
|
|
}
|
|
ext {
|
|
wpilibVersion = '2020.3.2-75-g1557a4c'
|
|
openCVVersion = '3.4.7-2'
|
|
}
|
|
|
|
dependencies {
|
|
implementation "io.javalin:javalin:3.7.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 "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"
|
|
|
|
// 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
|
|
|
|
spotless {
|
|
java {
|
|
googleJavaFormat()
|
|
paddedCell()
|
|
indentWithTabs(2)
|
|
indentWithSpaces(4)
|
|
removeUnusedImports()
|
|
}
|
|
}
|