2026-01-04 14:22:58 -08:00
|
|
|
apply plugin: 'org.photonvision.tools.WpilibTools'
|
2024-01-13 16:57:56 -08:00
|
|
|
|
2021-10-18 22:31:18 -04:00
|
|
|
import java.nio.file.Path
|
2021-01-16 20:41:47 -08:00
|
|
|
|
2024-11-07 20:10:14 -05:00
|
|
|
ext.licenseFile = file("$rootDir/LICENSE")
|
2021-01-18 22:12:57 -05:00
|
|
|
apply from: "${rootDir}/shared/common.gradle"
|
2021-01-14 21:45:26 -05:00
|
|
|
|
2024-01-13 16:57:56 -08:00
|
|
|
wpilibTools.deps.wpilibVersion = wpi.versions.wpilibVersion.get()
|
|
|
|
|
|
|
|
|
|
def nativeConfigName = 'wpilibNatives'
|
2025-10-20 10:45:54 -04:00
|
|
|
configurations {
|
|
|
|
|
wpilibNatives
|
|
|
|
|
}
|
2024-01-13 16:57:56 -08:00
|
|
|
def nativeTasks = wpilibTools.createExtractionTasks {
|
|
|
|
|
configurationName = nativeConfigName
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
nativeTasks.addToSourceSetResources(sourceSets.main)
|
|
|
|
|
|
2021-01-14 21:45:26 -05:00
|
|
|
dependencies {
|
2025-10-20 10:45:54 -04:00
|
|
|
wpilibNatives project(path: ':photon-targeting', configuration: 'wpilibNatives')
|
|
|
|
|
wpilibNatives wpilibTools.deps.wpilib("wpimath")
|
|
|
|
|
wpilibNatives wpilibTools.deps.wpilib("wpinet")
|
|
|
|
|
wpilibNatives wpilibTools.deps.wpilib("wpiutil")
|
|
|
|
|
wpilibNatives wpilibTools.deps.wpilib("ntcore")
|
|
|
|
|
wpilibNatives wpilibTools.deps.wpilib("cscore")
|
|
|
|
|
wpilibNatives wpilibTools.deps.wpilib("apriltag")
|
|
|
|
|
wpilibNatives wpilibTools.deps.wpilib("hal")
|
|
|
|
|
wpilibNatives wpilibTools.deps.wpilibOpenCv("frc" + openCVYear, wpi.versions.opencvVersion.get())
|
|
|
|
|
|
2025-12-09 02:39:41 -06:00
|
|
|
// These stay as implementation dependencies since they don't have native code that gets packaged
|
2021-11-21 17:22:56 -08:00
|
|
|
implementation 'org.zeroturnaround:zt-zip:1.14'
|
2023-06-17 21:47:18 -07:00
|
|
|
implementation "org.xerial:sqlite-jdbc:3.41.0.0"
|
2025-12-11 23:28:18 -05:00
|
|
|
implementation 'com.diozero:diozero-core:1.4.1'
|
2026-01-02 16:55:12 -06:00
|
|
|
implementation 'com.github.oshi:oshi-core:6.9.1'
|
2025-12-09 02:39:41 -06:00
|
|
|
|
|
|
|
|
// The JNI libraries use wpilibNatives, the java libraries use implementation
|
|
|
|
|
if (jniPlatform == "linuxarm64") {
|
|
|
|
|
wpilibNatives("org.photonvision:rknn_jni-jni:$rknnVersion:$wpilibNativeName") {
|
|
|
|
|
transitive = false
|
|
|
|
|
}
|
|
|
|
|
wpilibNatives("org.photonvision:rubik_jni-jni:$rubikVersion:$wpilibNativeName") {
|
|
|
|
|
transitive = false
|
|
|
|
|
}
|
|
|
|
|
wpilibNatives("org.photonvision:photon-libcamera-gl-driver-jni:$libcameraDriverVersion:$wpilibNativeName") {
|
|
|
|
|
transitive = false
|
|
|
|
|
}
|
2024-05-26 18:43:06 -05:00
|
|
|
}
|
2025-12-09 02:39:41 -06:00
|
|
|
|
2024-05-26 18:43:06 -05:00
|
|
|
implementation("org.photonvision:rknn_jni-java:$rknnVersion") {
|
|
|
|
|
transitive = false
|
|
|
|
|
}
|
2025-12-09 02:39:41 -06:00
|
|
|
|
2025-08-09 10:02:55 -05:00
|
|
|
implementation("org.photonvision:rubik_jni-java:$rubikVersion") {
|
|
|
|
|
transitive = false
|
|
|
|
|
}
|
2025-12-09 02:39:41 -06:00
|
|
|
|
2024-05-10 12:09:01 -04:00
|
|
|
implementation "org.photonvision:photon-libcamera-gl-driver-java:$libcameraDriverVersion"
|
2024-01-05 12:26:17 -07:00
|
|
|
|
|
|
|
|
implementation "org.photonvision:photon-mrcal-java:$mrcalVersion"
|
|
|
|
|
|
|
|
|
|
// Only include mrcal natives on platforms that we build for
|
|
|
|
|
if (!(jniPlatform in [
|
|
|
|
|
"osxx86-64",
|
2024-05-19 17:35:40 -07:00
|
|
|
"osxarm64"
|
2024-01-05 12:26:17 -07:00
|
|
|
])) {
|
2025-12-06 13:10:47 -05:00
|
|
|
wpilibNatives("org.photonvision:photon-mrcal-jni:$mrcalVersion:$wpilibNativeName") {
|
2024-05-26 18:43:06 -05:00
|
|
|
transitive = false
|
|
|
|
|
}
|
2024-01-05 12:26:17 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
testImplementation group: 'org.junit-pioneer' , name: 'junit-pioneer', version: '2.2.0'
|
2021-01-14 21:45:26 -05:00
|
|
|
}
|
2021-01-16 20:41:47 -08:00
|
|
|
|
2023-11-22 20:08:23 -05:00
|
|
|
task writeCurrentVersion {
|
2024-11-16 21:30:34 -05:00
|
|
|
doLast {
|
|
|
|
|
def versionFileIn = file("${rootDir}/shared/PhotonVersion.java.in")
|
|
|
|
|
writePhotonVersionFile(versionFileIn, Path.of("$buildDir", "generated", "java", "org", "photonvision", "PhotonVersion.java"),
|
|
|
|
|
versionString)
|
|
|
|
|
}
|
2021-01-16 20:41:47 -08:00
|
|
|
}
|
2024-11-16 21:30:34 -05:00
|
|
|
// https://github.com/wpilibsuite/allwpilib/blob/main/wpilibj/build.gradle#L52
|
|
|
|
|
sourceSets.main.java.srcDir "${buildDir}/generated/java/"
|
2021-01-16 20:41:47 -08:00
|
|
|
|
2024-11-16 21:30:34 -05:00
|
|
|
compileJava.dependsOn writeCurrentVersion
|