Fix MacOS OpenCV library loading and use wpi buildTools versions (#978)

* Bump to beta 2

* Reduce copy paste spam going forwards

* Bump gradle

* oops

* fix gradlew

* update gradle wrapper props

* remove unused imports

* Update node task

* Fix shadowjar

* fix more deps

* ?

* core works

* revert changes to index

* Formatting fixes

* Update config.gradle

* Fix PhotonLib gradle

* fix tests and sim loading native libraries

* re-enable macos build

* fix?

* Update build.gradle

---------

Co-authored-by: Matt <matthew.morley.ca@gmail.com>
This commit is contained in:
Sriman Achanta
2023-10-25 20:27:56 -04:00
committed by GitHub
parent f3fb0109f9
commit 63147786b9
18 changed files with 195 additions and 206 deletions

View File

@@ -1,31 +1,33 @@
import java.nio.file.Path
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
// Plugins
apply plugin: "jacoco"
apply plugin: "java"
apply plugin: "jacoco"
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
wpilibTools.deps.wpilibVersion = wpilibVersion
wpilibTools.deps.wpilibVersion = wpi.versions.wpilibVersion.get()
def nativeConfigName = 'wpilibTestNative'
def nativeConfig = configurations.create(nativeConfigName)
def nativeTasks = wpilibTools.createExtractionTasks {
configurationName = nativeConfigName
}
nativeTasks.addToSourceSetResources(sourceSets.main)
nativeConfig.dependencies.add wpilibTools.deps.wpilib("wpimath")
nativeConfig.dependencies.add wpilibTools.deps.wpilib("wpinet")
nativeConfig.dependencies.add wpilibTools.deps.wpilib("wpiutil")
nativeConfig.dependencies.add wpilibTools.deps.wpilib("ntcore")
nativeConfig.dependencies.add wpilibTools.deps.wpilib("cscore")
nativeConfig.dependencies.add wpilibTools.deps.wpilib("apriltag")
nativeConfig.dependencies.add wpilibTools.deps.wpilib("hal")
nativeConfig.dependencies.add wpilibTools.deps.wpilibOpenCv("frc" + wpi.frcYear.get(), wpi.versions.opencvVersion.get())
dependencies {
// Jackson
implementation "com.fasterxml.jackson.core:jackson-annotations:2.12.4"
implementation "com.fasterxml.jackson.core:jackson-core:2.12.4"
implementation "com.fasterxml.jackson.core:jackson-databind:2.12.4"
// Apache commons
implementation group: "org.apache.commons", name: "commons-lang3", version: "3.12.0"
implementation group: "commons-io", name: "commons-io", version: "2.11.0"
implementation group: "commons-cli", name: "commons-cli", version: "1.5.0"
implementation "org.apache.commons:commons-collections4:4.4"
implementation "org.apache.commons:commons-exec:1.3"
// WPILib deps
implementation wpilibTools.deps.wpilibJava("wpiutil")
implementation wpilibTools.deps.wpilibJava("cameraserver")
@@ -35,13 +37,23 @@ dependencies {
implementation wpilibTools.deps.wpilibJava("ntcore")
implementation wpilibTools.deps.wpilibJava("hal")
implementation wpilibTools.deps.wpilibJava("wpilibj")
implementation wpilibTools.deps.wpilibOpenCvJava("frc" + wpi.frcYear.get(), wpi.versions.opencvVersion.get())
implementation "edu.wpi.first.thirdparty.frc2024.opencv:opencv-java:$openCVversion"
implementation "edu.wpi.first.thirdparty.frc2024.opencv:opencv-jni:$openCVversion:$jniPlatform"
// Jackson
implementation group: "com.fasterxml.jackson.core", name: "jackson-annotations", version: wpi.versions.jacksonVersion.get()
implementation group: "com.fasterxml.jackson.core", name: "jackson-core", version: wpi.versions.jacksonVersion.get()
implementation group: "com.fasterxml.jackson.core", name: "jackson-databind", version: wpi.versions.jacksonVersion.get()
implementation "org.ejml:ejml-simple:0.42"
// Apache commons
implementation group: "org.apache.commons", name: "commons-lang3", version: "3.12.0"
implementation group: "commons-io", name: "commons-io", version: "2.11.0"
implementation group: "commons-cli", name: "commons-cli", version: "1.5.0"
implementation "org.apache.commons:commons-collections4:4.4"
implementation "org.apache.commons:commons-exec:1.3"
implementation group: "org.ejml", name: "ejml-simple", version: wpi.versions.ejmlVersion.get()
implementation group: "us.hebi.quickbuf", name: "quickbuf-runtime", version: wpi.versions.quickbufVersion.get();
// test stuff
testImplementation("org.junit.jupiter:junit-jupiter:5.8.2")
// wpilib serde
@@ -57,7 +69,7 @@ test {
finalizedBy jacocoTestReport
}
task testHeadless(type: Test) {
tasks.register('testHeadless', Test) {
group = "verification"
systemProperty("java.awt.headless", "true")
useJUnitPlatform()
@@ -65,13 +77,12 @@ task testHeadless(type: Test) {
workingDir = "../"
}
task generateJavaDocs(type: Javadoc) {
tasks.register('generateJavaDocs', Javadoc) {
source = sourceSets.main.allJava
classpath = sourceSets.main.compileClasspath
destinationDir = file("${projectDir}/build/docs")
}
jacoco {
toolVersion = "0.8.9"
reportsDirectory = layout.buildDirectory.dir('customJacocoReportDir')

View File

@@ -1,3 +1,5 @@
apply plugin: "edu.wpi.first.NativeUtils"
// Configure Native-Utils WPI Plugin
nativeUtils.addWpiNativeUtils()
nativeUtils.withCrossRoboRIO()
@@ -6,15 +8,12 @@ nativeUtils.withCrossLinuxArm64()
// Configure WPI dependencies.
nativeUtils.wpi.configureDependencies {
opencvYear = 'frc2024'
googleTestYear = "frc2023"
wpiVersion = wpilibVersion
wpimathVersion = wpilibVersion
niLibVersion = "2024.1.1"
opencvYear = 'frc2024'
opencvVersion = openCVversion
googleTestYear = "frc2023"
niLibVersion = "2024.1.1"
googleTestVersion = "1.12.1-2"
imguiVersion = "1.86-1"
}
// Configure warnings and errors