mirror of
https://github.com/PhotonVision/photonvision
synced 2026-07-05 03:21:40 +00:00
Split photon-server and photon-core (#211)
Uses multiple Gradle projects to support the split.
This commit is contained in:
@@ -1,103 +1,29 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'application'
|
||||
id 'com.github.johnrengelman.shadow' version '5.2.0'
|
||||
id "com.diffplug.gradle.spotless" version "3.28.0"
|
||||
id 'org.hidetake.ssh' version '2.10.1'
|
||||
id "jacoco"
|
||||
}
|
||||
|
||||
apply from: 'versioningHelper.gradle'
|
||||
evaluationDependsOn(':photon-core')
|
||||
|
||||
mainClassName = 'org.photonvision.Main'
|
||||
|
||||
group 'org.photonvision'
|
||||
version versionString
|
||||
|
||||
sourceCompatibility = 11
|
||||
|
||||
repositories {
|
||||
jcenter()
|
||||
mavenCentral()
|
||||
maven {
|
||||
url = "https://maven.photonvision.org/repository/internal/"
|
||||
}
|
||||
maven {
|
||||
url = 'https://frcmaven.wpi.edu:443/artifactory/development'
|
||||
}
|
||||
}
|
||||
|
||||
ext {
|
||||
wpilibVersion = '2020.3.2-99-g9f4de91'
|
||||
joglVersion = '2.4.0-rc-20200307'
|
||||
openCVVersion = '3.4.7-2'
|
||||
}
|
||||
apply from: '../common.gradle'
|
||||
|
||||
dependencies {
|
||||
implementation "io.javalin:javalin:3.7.0"
|
||||
// photon core
|
||||
implementation project(':photon-core')
|
||||
|
||||
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 "io.javalin:javalin:3.7.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"
|
||||
|
||||
// JOGL stuff (currently we only distribute for aarch64, which is Pi 4)
|
||||
implementation "org.jogamp.gluegen:gluegen-rt:$joglVersion"
|
||||
implementation "org.jogamp.jogl:jogl-all:$joglVersion"
|
||||
|
||||
// implementation "org.jogamp.gluegen:gluegen-rt:$joglVersion:natives-linux-amd64"
|
||||
// implementation "org.jogamp.gluegen:gluegen-rt:$joglVersion:natives-linux-armv6hf"
|
||||
implementation "org.jogamp.gluegen:gluegen-rt:$joglVersion:natives-linux-aarch64"
|
||||
// implementation "org.jogamp.gluegen:gluegen-rt:$joglVersion:natives-macosx-universal"
|
||||
// implementation "org.jogamp.gluegen:gluegen-rt:$joglVersion:natives-windows-amd64"
|
||||
|
||||
// implementation "org.jogamp.jogl:jogl-all:$joglVersion:natives-linux-amd64"
|
||||
// implementation "org.jogamp.jogl:jogl-all:$joglVersion:natives-linux-armv6hf"
|
||||
implementation "org.jogamp.jogl:jogl-all:$joglVersion:natives-linux-aarch64"
|
||||
// implementation "org.jogamp.jogl:jogl-all:$joglVersion:natives-macosx-universal"
|
||||
// implementation "org.jogamp.jogl:jogl-all:$joglVersion:natives-windows-amd64"
|
||||
|
||||
// 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 {
|
||||
@@ -106,19 +32,6 @@ shadowJar {
|
||||
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')) {
|
||||
@@ -139,28 +52,6 @@ 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")
|
||||
}
|
||||
}
|
||||
|
||||
run {
|
||||
if (project.hasProperty("profile")) {
|
||||
jvmArgs=[
|
||||
@@ -173,22 +64,6 @@ run {
|
||||
}
|
||||
}
|
||||
|
||||
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/**'
|
||||
)
|
||||
}))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
remotes {
|
||||
pi {
|
||||
|
||||
Reference in New Issue
Block a user