mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-19 00:41:41 +00:00
Fixes spotless on windows flagging every line for being LF instead of CRLF. Developers may need to reclone to fix their local history.
117 lines
3.7 KiB
Groovy
117 lines
3.7 KiB
Groovy
plugins {
|
|
id "cpp"
|
|
id "google-test-test-suite"
|
|
id "edu.wpi.first.GradleRIO" version "2023.4.2"
|
|
|
|
id "com.dorongold.task-tree" version "2.1.0"
|
|
}
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
jcenter()
|
|
}
|
|
|
|
apply from: "${rootDir}/../shared/examples_common.gradle"
|
|
|
|
// Define my targets (RoboRIO) and artifacts (deployable files)
|
|
// This is added by GradleRIO's backing project DeployUtils.
|
|
deploy {
|
|
targets {
|
|
roborio(getTargetTypeClass('RoboRIO')) {
|
|
// 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/lvuser/deploy'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
def deployArtifact = deploy.targets.roborio.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) {
|
|
// We don't need to build for roborio -- if we do, we need to install
|
|
// a roborio toolchain every time we build in CI
|
|
// Ideally, we'd be able to set the roborio toolchain as optional, but
|
|
// I can't figure out how to set that environment variable from build.gradle
|
|
// (see https://github.com/wpilibsuite/native-utils/blob/2917c69fb5094e36d499c465f047dab81c68446c/ToolchainPlugin/src/main/java/edu/wpi/first/toolchain/ToolchainGraphBuildService.java#L71)
|
|
// for now, commented out
|
|
|
|
// targetPlatform wpi.platforms.roborio
|
|
|
|
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)
|
|
}
|
|
}
|
|
}
|