mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-19 00:41:41 +00:00
This PR updates everything for 2027. This includes removing GradleRIO, simplifying our wpilib version defintion, updating APIs, updating to Java 21, and more. Note that photonlibpy is failing because robotpy has not been fully updated yet. Examples are omitted because they need to be updated for our new PhotonPoseEstimator API and still need some changes from WPILIB. photonlib windows build is failing because we're waiting for some upstream changes. Finally, images are failing since they don't have Java 21 yet.
82 lines
2.9 KiB
Groovy
82 lines
2.9 KiB
Groovy
apply plugin: 'org.photonvision.tools.WpilibTools'
|
|
|
|
import java.nio.file.Path
|
|
|
|
ext.licenseFile = file("$rootDir/LICENSE")
|
|
ext.externalLicensesFolder = file("$rootDir/ExternalLicenses")
|
|
apply from: "${rootDir}/shared/common.gradle"
|
|
|
|
wpilibTools.deps.wpilibVersion = wpilibVersion
|
|
|
|
def nativeConfigName = 'wpilibNatives'
|
|
configurations {
|
|
wpilibNatives
|
|
}
|
|
def nativeTasks = wpilibTools.createExtractionTasks {
|
|
configurationName = nativeConfigName
|
|
}
|
|
|
|
nativeTasks.addToSourceSetResources(sourceSets.main)
|
|
|
|
dependencies {
|
|
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("datalog")
|
|
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, openCVversion)
|
|
|
|
// These stay as implementation dependencies since they don't have native code that gets packaged
|
|
implementation 'org.zeroturnaround:zt-zip:1.14'
|
|
implementation "org.xerial:sqlite-jdbc:3.41.0.0"
|
|
implementation 'com.diozero:diozero-core:1.4.1'
|
|
implementation 'com.github.oshi:oshi-core:6.9.1'
|
|
|
|
// The JNI libraries use wpilibNatives, the java libraries use implementation
|
|
if (jniPlatform == "linuxarm64") {
|
|
wpilibNatives("org.photonvision:rknn_jni-jni:$rknnVersion:$jniPlatform") {
|
|
transitive = false
|
|
}
|
|
wpilibNatives("org.photonvision:rubik_jni-jni:$rubikVersion:$jniPlatform") {
|
|
transitive = false
|
|
}
|
|
wpilibNatives("org.photonvision:photon-libcamera-gl-driver-jni:$libcameraDriverVersion:$jniPlatform") {
|
|
transitive = false
|
|
}
|
|
}
|
|
|
|
implementation("org.photonvision:rknn_jni-java:$rknnVersion") {
|
|
transitive = false
|
|
}
|
|
|
|
implementation("org.photonvision:rubik_jni-java:$rubikVersion") {
|
|
transitive = false
|
|
}
|
|
|
|
implementation "org.photonvision:photon-libcamera-gl-driver-java:$libcameraDriverVersion"
|
|
|
|
implementation "org.photonvision:photon-mrcal-java:$mrcalVersion"
|
|
|
|
wpilibNatives("org.photonvision:photon-mrcal-jni:$mrcalVersion:$jniPlatform") {
|
|
transitive = false
|
|
}
|
|
|
|
testImplementation group: 'org.junit-pioneer' , name: 'junit-pioneer', version: '2.2.0'
|
|
}
|
|
|
|
task writeCurrentVersion {
|
|
doLast {
|
|
def versionFileIn = file("${rootDir}/shared/PhotonVersion.java.in")
|
|
writePhotonVersionFile(versionFileIn, Path.of("$buildDir", "generated", "java", "org", "photonvision", "PhotonVersion.java"),
|
|
versionString)
|
|
}
|
|
}
|
|
// https://github.com/wpilibsuite/allwpilib/blob/main/wpilibj/build.gradle#L52
|
|
sourceSets.main.java.srcDir "${buildDir}/generated/java/"
|
|
|
|
compileJava.dependsOn writeCurrentVersion
|