Skip to content

Commit a3e6227

Browse files
committed
Update for Initial 2027
1 parent 1599355 commit a3e6227

File tree

5 files changed

+25
-32
lines changed

5 files changed

+25
-32
lines changed

.github/workflows/ci.yml

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,17 @@ jobs:
88
fail-fast: false
99
matrix:
1010
include:
11-
- container: wpilib/roborio-cross-ubuntu:2025-22.04
12-
artifact-name: Athena
13-
build-options: "-Ponlylinuxathena"
14-
- container: wpilib/raspbian-cross-ubuntu:bookworm-22.04
15-
artifact-name: Arm32
16-
build-options: "-Ponlylinuxarm32"
17-
- container: wpilib/aarch64-cross-ubuntu:bookworm-22.04
11+
- container: wpilib/systemcore-cross-ubuntu:2025-24.04
12+
artifact-name: SystemCore
13+
build-options: "-Ponlylinuxsystemcore"
14+
- container: wpilib/aarch64-cross-ubuntu:bookworm-24.04
1815
artifact-name: Arm64
1916
build-options: "-Ponlylinuxarm64"
2017
- container: wpilib/ubuntu-base:22.04
2118
artifact-name: Linux
2219
build-options: ""
2320
name: "Build - ${{ matrix.artifact-name }}"
24-
runs-on: ubuntu-22.04
21+
runs-on: ubuntu-24.04
2522
container: ${{ matrix.container }}
2623
steps:
2724
- uses: actions/checkout@v4
@@ -39,7 +36,7 @@ jobs:
3936
path: build/allOutputs
4037

4138
build-host:
42-
env:
39+
env:
4340
MACOSX_DEPLOYMENT_TARGET: 13.3
4441
strategy:
4542
fail-fast: false

ExampleVendorJson.json

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@
2626
"windowsx86-64",
2727
"linuxarm64",
2828
"linuxx86-64",
29-
"linuxathena",
30-
"linuxarm32",
29+
"linuxsystemcore",
3130
"osxuniversal"
3231
]
3332
}
@@ -45,8 +44,7 @@
4544
"windowsx86-64",
4645
"linuxarm64",
4746
"linuxx86-64",
48-
"linuxathena",
49-
"linuxarm32",
47+
"linuxsystemcore",
5048
"osxuniversal"
5149
]
5250
},
@@ -62,8 +60,7 @@
6260
"windowsx86-64",
6361
"linuxarm64",
6462
"linuxx86-64",
65-
"linuxathena",
66-
"linuxarm32",
63+
"linuxsystemcore",
6764
"osxuniversal"
6865
]
6966
}

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ A driver library is built. This should contain all low level code you want to ac
1111
A native C++ library is built. This has access to all of wpilib, and access to the driver library. This should implment the standard wpilib interfaces.
1212

1313
## Customizing
14-
For Java, the library name will be the folder name the build is started from, so rename the folder to the name of your choosing.
14+
For Java, the library name will be the folder name the build is started from, so rename the folder to the name of your choosing.
1515

1616
For the native impl, you need to change the library name in the exportsConfigs block of build.gradle, the components block of build.gradle, and the taskList input array name in publish.gradle.
1717

@@ -20,6 +20,6 @@ For the driver, change the library name in privateExportsConfigs, the driver nam
2020
For the maven artifact names, those are all in publish.gradle about 40 lines down.
2121

2222
## Building and editing
23-
This uses gradle, and uses the same base setup as a standard GradleRIO robot project. This means you build with `./gradlew build`, and can install the native toolchain with `./gradlew installRoboRIOToolchain`. If you open this project in VS Code with the wpilib extension installed, you will get intellisense set up for both C++ and Java.
23+
This uses gradle, and uses the same base setup as a standard GradleRIO robot project. This means you build with `./gradlew build`, and can install the native toolchain with `./gradlew installSystemCoreToolchain`. If you open this project in VS Code with the wpilib extension installed, you will get intellisense set up for both C++ and Java.
2424

25-
By default, this template builds against the latest WPILib development build. To build against the last WPILib tagged release, build with `./gradlew build -PreleaseMode`.
25+
By default, this template builds against the latest WPILib development build. To build against the last WPILib tagged release, build with `./gradlew build -PreleaseMode`.

build.gradle

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,18 @@ plugins {
55
id 'java'
66
id 'google-test'
77
id 'edu.wpi.first.wpilib.repositories.WPILibRepositoriesPlugin' version '2025.0'
8-
id 'edu.wpi.first.NativeUtils' version '2025.9.0'
8+
id 'edu.wpi.first.NativeUtils' version '2025.12.1'
99
id 'edu.wpi.first.GradleJni' version '1.1.0'
1010
id 'edu.wpi.first.GradleVsCode' version '2.1.0'
1111
}
1212

1313
// WPILib Version
14-
ext.wpilibVersion = "2025.+"
14+
ext.wpilibVersion = "2027.+"
1515

1616
repositories {
1717
mavenCentral()
1818
}
19+
wpilibRepositories.use2027Repos()
1920
if (project.hasProperty('releaseMode')) {
2021
wpilibRepositories.addAllReleaseRepositories(project)
2122
} else {
@@ -40,6 +41,7 @@ dependencies {
4041
implementation "edu.wpi.first.wpiutil:wpiutil-java:$wpilibVersion"
4142
implementation "edu.wpi.first.wpimath:wpimath-java:$wpilibVersion"
4243
implementation "edu.wpi.first.wpiunits:wpiunits-java:$wpilibVersion"
44+
implementation "edu.wpi.first.datalog:datalog-java:$wpilibVersion"
4345
implementation "edu.wpi.first.hal:hal-java:$wpilibVersion"
4446
implementation "org.ejml:ejml-simple:0.43.1"
4547
implementation "com.fasterxml.jackson.core:jackson-annotations:2.15.2"
@@ -61,7 +63,7 @@ test {
6163
}
6264
}
6365

64-
if (project.hasProperty('onlylinuxathena') || project.hasProperty('onlylinuxarm32') || project.hasProperty('onlylinuxarm64') || project.hasProperty('onlywindowsarm64') || project.hasProperty('onlylinuxsystemcore')) {
66+
if (project.hasProperty('onlylinuxarm64') || project.hasProperty('onlywindowsarm64') || project.hasProperty('onlylinuxsystemcore')) {
6567
test.enabled = false
6668
}
6769

@@ -115,15 +117,14 @@ model {
115117
binaries.all {
116118
lib library: 'VendorDriver', linkage: 'shared'
117119
}
118-
nativeUtils.useRequiredLibrary(it, 'wpilib_shared')
120+
nativeUtils.useRequiredLibrary(it, 'wpilib_shared_2027')
119121
}
120122

121123
VendorDriver(JniNativeLibrarySpec) {
122124
enableCheckTask true
123125
javaCompileTasks << compileJava
124-
jniCrossCompileOptions << JniCrossCompileOptions(nativeUtils.wpi.platforms.roborio)
126+
jniCrossCompileOptions << JniCrossCompileOptions(nativeUtils.wpi.platforms.systemcore)
125127
// Leave these for future proofing
126-
jniCrossCompileOptions << JniCrossCompileOptions(nativeUtils.wpi.platforms.linuxarm32)
127128
jniCrossCompileOptions << JniCrossCompileOptions(nativeUtils.wpi.platforms.linuxarm64)
128129
sources {
129130
cpp {
@@ -137,7 +138,7 @@ model {
137138
}
138139
}
139140

140-
nativeUtils.useRequiredLibrary(it, "driver_shared")
141+
nativeUtils.useRequiredLibrary(it, "driver_shared_2027")
141142
}
142143
}
143144
testSuites {
@@ -162,7 +163,7 @@ model {
162163
}
163164
}
164165

165-
nativeUtils.useRequiredLibrary(it, "wpilib_executable_shared", "googletest_static")
166+
nativeUtils.useRequiredLibrary(it, "wpilib_shared_2027", "googletest_static")
166167
}
167168

168169
VendorDriverTest {
@@ -172,7 +173,7 @@ model {
172173
include '**/*.cpp'
173174
}
174175
}
175-
nativeUtils.useRequiredLibrary(it, "wpilib_executable_shared", "googletest_static")
176+
nativeUtils.useRequiredLibrary(it, "wpilib_shared_2027", "googletest_static")
176177
}
177178
}
178179
}

config.gradle

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
import org.gradle.internal.os.OperatingSystem
22

33
nativeUtils.addWpiNativeUtils()
4-
nativeUtils.withCrossRoboRIO()
5-
nativeUtils.withCrossLinuxArm32()
4+
nativeUtils.withCrossSystemCore()
65
nativeUtils.withCrossLinuxArm64()
76

87
nativeUtils {
98
wpi {
109
configureDependencies {
1110
wpiVersion = wpilibVersion
1211
opencvYear = "frc2025"
13-
niLibVersion = "2025.0.0"
1412
opencvVersion = "4.10.0-2"
1513
}
1614
}
@@ -22,10 +20,10 @@ nativeUtils.wpi.addWarningsAsErrors()
2220
nativeUtils.setSinglePrintPerPlatform()
2321

2422
model {
25-
// Uncomment this, and remove lines below it to enable builds for just roborio
23+
// Uncomment this, and remove lines below it to enable builds for just systemcore
2624
// components {
2725
// all {
28-
// targetPlatform nativeUtils.wpi.platforms.roborio
26+
// targetPlatform nativeUtils.wpi.platforms.systemcore
2927
// }
3028
// }
3129
components {

0 commit comments

Comments
 (0)