-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbuild.gradle
111 lines (89 loc) · 3.62 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
import edu.wpi.first.gradlerio.deploy.roborio.RoboRIO
plugins {
id "java"
id "org.jetbrains.kotlin.jvm" version "1.9.0" //1.7.21
id "edu.wpi.first.GradleRIO" version "2024.3.1"
}
version = "24.0.1"
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
def ROBOT_MAIN_CLASS = "org.strykeforce.thirdcoast.DummyMain"
deploy {
targets {
roborio(getTargetTypeClass('RoboRIO')) {
team = project.frc.getTeamNumber()
debug = project.frc.getDebugOrDefault(false)
artifacts {
frcJava(getArtifactTypeClass('FRCJavaArtifact')) {}
frcStaticFileDeploy(getArtifactTypeClass('FileTreeArtifact')) {
files = project.fileTree('src/main/deploy')
directory = '/home/lvuser/deploy'
}
}
}
}
}
def deployArtifact = deploy.targets.roborio.artifacts.frcJava
wpi.java.debugJni = false
def includeDesktopSupport = false
repositories {
mavenLocal()
mavenCentral()
jcenter()
}
// Defining my dependencies. In this case, WPILib (+ friends), and vendor libraries.
// Also defines JUnit 4.
dependencies {
implementation wpi.java.deps.wpilib()
implementation wpi.java.vendor.java()
roborioDebug wpi.java.deps.wpilibJniDebug(wpi.platforms.roborio)
roborioDebug wpi.java.vendor.jniDebug(wpi.platforms.roborio)
roborioRelease wpi.java.deps.wpilibJniRelease(wpi.platforms.roborio)
roborioRelease wpi.java.vendor.jniRelease(wpi.platforms.roborio)
nativeDebug wpi.java.deps.wpilibJniDebug(wpi.platforms.desktop)
nativeDebug wpi.java.vendor.jniDebug(wpi.platforms.desktop)
simulationDebug wpi.sim.enableDebug()
nativeRelease wpi.java.deps.wpilibJniRelease(wpi.platforms.desktop)
nativeRelease wpi.java.vendor.jniRelease(wpi.platforms.desktop)
simulationRelease wpi.sim.enableRelease()
// We need to add the Kotlin stdlib in order to use most Kotlin language features.
// implementation "org.jetbrains.kotlin:kotlin-stdlib"
// App
implementation("org.jline:jline-terminal:3.20.0")
implementation("org.jline:jline-reader:3.20.0")
implementation("net.consensys.cava:cava-toml:0.5.0")
// Logging
implementation('io.github.microutils:kotlin-logging-jvm:3.0.5') //2.1.21
implementation('ch.qos.logback:logback-classic:1.3.5')
// Koin
// implementation("org.koin:koin-core:1.0.2")
// implementation("org.koin:koin-logger-slf4j:1.0.2")
// testImplementation("org.koin:koin-test:1.0.2")
implementation("io.insert-koin:koin-core:4.0.0") //3.0.1
implementation("io.insert-koin:koin-logger-slf4j:4.0.0") //3.0.1
implementation("io.insert-koin:koin-test:4.0.0") //3.0.1
// Testing
testImplementation(platform("org.junit:junit-bom:5.9.0"))
testImplementation("org.junit.jupiter:junit-jupiter")
testImplementation("org.assertj:assertj-core:3.23.1")
// testImplementation("com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0")
testImplementation("org.mockito.kotlin:mockito-kotlin:5.4.0")
testRuntimeOnly('ch.qos.logback:logback-classic:1.4.4')
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
kotlinOptions {
jvmTarget = "17"
}
}
test {
useJUnitPlatform()
}
jar {
from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
manifest edu.wpi.first.gradlerio.GradleRIOPlugin.javaManifest(ROBOT_MAIN_CLASS)
duplicatesStrategy = DuplicatesStrategy.INCLUDE
}
// Configure jar and deploy tasks
deployArtifact.jarTask = jar
wpi.java.configureExecutableTasks(jar)
wpi.java.configureTestTasks(test)