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.
111 lines
3.4 KiB
Groovy
111 lines
3.4 KiB
Groovy
plugins {
|
|
id "cpp"
|
|
id "google-test-test-suite"
|
|
id "edu.wpi.first.GradleRIO2027" version "2027.0.0-alpha-2"
|
|
}
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
jcenter()
|
|
}
|
|
|
|
wpi.maven.useLocal = false
|
|
wpi.maven.useDevelopment = false
|
|
wpi.versions.wpilibVersion = "2027.0.0-alpha-4"
|
|
|
|
// Define my targets (SystemCore) and artifacts (deployable files)
|
|
// This is added by GradleRIO's backing project DeployUtils.
|
|
deploy {
|
|
targets {
|
|
systemcore(getTargetTypeClass('SystemCore')) {
|
|
// Team number is loaded either from the .wpilib/wpilib_preferences.json
|
|
// or from command line. If not found an exception will be thrown.
|
|
// You can use getTeamOrDefault(team) instead of getTeamNumber if you
|
|
// want to store a team number in this file.
|
|
team = project.frc.getTeamOrDefault(5940)
|
|
debug = project.frc.getDebugOrDefault(false)
|
|
|
|
artifacts {
|
|
// First part is artifact name, 2nd is artifact type
|
|
// getTargetTypeClass is a shortcut to get the class type using a string
|
|
|
|
frcCpp(getArtifactTypeClass('FRCNativeArtifact')) {
|
|
}
|
|
|
|
// Static files artifact
|
|
frcStaticFileDeploy(getArtifactTypeClass('FileTreeArtifact')) {
|
|
files = project.fileTree('src/main/deploy')
|
|
directory = '/home/systemcore/deploy'
|
|
deleteOldFiles = false // Change to true to delete files on SystemCore that no
|
|
// longer exist in deploy directory of this project
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
def deployArtifact = deploy.targets.systemcore.artifacts.frcCpp
|
|
|
|
// Set this to true to enable desktop support.
|
|
def includeDesktopSupport = true
|
|
|
|
// Set to true to run simulation in debug mode
|
|
wpi.cpp.debugSimulation = false
|
|
|
|
// Default enable simgui
|
|
wpi.sim.addGui().defaultEnabled = true
|
|
// Enable DS but not by default
|
|
wpi.sim.addDriverstation()
|
|
|
|
model {
|
|
components {
|
|
frcUserProgram(NativeExecutableSpec) {
|
|
targetPlatform wpi.platforms.systemcore
|
|
if (includeDesktopSupport) {
|
|
targetPlatform wpi.platforms.desktop
|
|
}
|
|
|
|
sources.cpp {
|
|
source {
|
|
srcDir 'src/main/cpp'
|
|
include '**/*.cpp', '**/*.cc'
|
|
}
|
|
exportedHeaders {
|
|
srcDir 'src/main/include'
|
|
}
|
|
}
|
|
|
|
// Set deploy task to deploy this component
|
|
deployArtifact.component = it
|
|
|
|
// Enable run tasks for this component
|
|
wpi.cpp.enableExternalTasks(it)
|
|
|
|
// Enable simulation for this component
|
|
wpi.sim.enable(it)
|
|
// Defining my dependencies. In this case, WPILib (+ friends), and vendor libraries.
|
|
wpi.cpp.vendor.cpp(it)
|
|
wpi.cpp.deps.wpilib(it)
|
|
}
|
|
}
|
|
testSuites {
|
|
frcUserProgramTest(GoogleTestTestSuiteSpec) {
|
|
testing $.components.frcUserProgram
|
|
|
|
sources.cpp {
|
|
source {
|
|
srcDir 'src/test/cpp'
|
|
include '**/*.cpp'
|
|
}
|
|
}
|
|
|
|
// Enable run tasks for this component
|
|
wpi.cpp.enableExternalTasks(it)
|
|
|
|
wpi.cpp.vendor.cpp(it)
|
|
wpi.cpp.deps.wpilib(it)
|
|
wpi.cpp.deps.googleTest(it)
|
|
}
|
|
}
|
|
}
|