apply plugin: 'org.photonvision.tools.WpilibTools' import java.nio.file.Path ext.licenseFile = file("$rootDir/LICENSE") apply from: "${rootDir}/shared/common.gradle" wpilibTools.deps.wpilibVersion = wpi.versions.wpilibVersion.get() 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("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()) // 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