-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
84 lines (74 loc) · 2.71 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
plugins {
id 'base'
id 'java'
id 'java-library'
id 'application'
id 'com.github.johnrengelman.shadow' version '7.1.1'
id 'edu.wpi.first.wpilib.repositories.WPILibRepositoriesPlugin' version '2020.2'
id 'edu.wpi.first.WpilibTools' version '1.0.0'
}
repositories {
mavenCentral()
}
wpilibRepositories.addAllDevelopmentRepositories(project)
def nativeConfigName = 'wpilibNatives'
def nativeTasks = wpilibTools.createExtractionTasks {
configurationName = nativeConfigName
// Uses default resourceFileName, "ResourceInformation.json"
}
nativeTasks.addToSourceSetResources(sourceSets.main)
// wpilibTools.deps.wpilibVersion = "2023.+"
// The tip (above) doesn't always work, but the tag (below) does.
wpilibTools.deps.wpilibVersion = "2023.1.1-beta-6"
def nativeConfig = configurations.create(nativeConfigName)
// Ntcore uses wpinet and wpiutil, wpimath uses wpiutil,
// so include all four here:
nativeConfig.dependencies.add wpilibTools.deps.wpilib('ntcore')
nativeConfig.dependencies.add wpilibTools.deps.wpilib("wpinet")
nativeConfig.dependencies.add wpilibTools.deps.wpilib("wpiutil")
nativeConfig.dependencies.add wpilibTools.deps.wpilib("wpimath")
dependencies {
api "org.ejml:ejml-simple:0.41" // for wpimath
api "org.msgpack:msgpack-core:0.9.3"
api "org.msgpack:jackson-dataformat-msgpack:0.9.3"
api "com.fasterxml.jackson.core:jackson-annotations:2.10.0"
api "com.fasterxml.jackson.core:jackson-core:2.10.0"
api "com.fasterxml.jackson.core:jackson-databind:2.10.0"
// each native lib must have its java lib here:
api wpilibTools.deps.wpilibJava("ntcore")
api wpilibTools.deps.wpilibJava("wpinet")
api wpilibTools.deps.wpilibJava("wpiutil")
api wpilibTools.deps.wpilibJava("wpimath")
}
def theMainClassName = "org.truher.radar.Main"
application {
mainClass = theMainClassName
}
import org.gradle.jvm.tasks.Jar
tasks.withType(Jar).configureEach {
manifest {
attributes["Implementation-Version"] = 0.1 as String
attributes["Built-Date"] = Instant.now().toString()
attributes["Main-Class"] = theMainClassName
}
}
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
tasks.withType(ShadowJar).configureEach {
archiveBaseName = "Radar"
archiveVersion = ""
exclude("module-info.class")
archiveClassifier.set(wpilibTools.platformMapper.currentPlatform.platformName)
}
task copyAllOutputs(type: Copy) {
destinationDir file("$buildDir/allOutputs")
}
build.dependsOn copyAllOutputs
def addTaskToCopyAllOutputs (task) {
copyAllOutputs.dependsOn task
copyAllOutputs.inputs.file task.archivePath
copyAllOutputs.from task.archivePath
}
addTaskToCopyAllOutputs(shadowJar)
wrapper {
gradleVersion = '7.5.1'
}