mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
Outputs are now sent. Ensure only the proper number of outputs are actually sent though. Also adds match time, and proper enable tags.
97 lines
3.8 KiB
Groovy
97 lines
3.8 KiB
Groovy
apply plugin: 'cpp'
|
|
apply plugin: 'edu.wpi.first.NativeUtils'
|
|
apply plugin: ExtraTasks
|
|
|
|
if (!project.hasProperty('onlyAthena')) {
|
|
ext.skipAthena = true
|
|
apply from: "${rootDir}/shared/config.gradle"
|
|
|
|
model {
|
|
components {
|
|
"${pluginName}"(NativeLibrarySpec) {
|
|
sources {
|
|
cpp {
|
|
source {
|
|
srcDirs = ['src/main/native/cpp']
|
|
includes = ["**/*.cpp"]
|
|
}
|
|
exportedHeaders {
|
|
srcDirs = ["src/main/native/include"]
|
|
}
|
|
}
|
|
}
|
|
binaries.all {
|
|
if (it instanceof StaticLibraryBinarySpec) {
|
|
it.buildable = false
|
|
return
|
|
}
|
|
lib project: ':hal', library: 'hal', linkage: 'shared'
|
|
if (project.hasProperty('includeNtCore')) {
|
|
lib project: ':ntcore', library: 'ntcore', linkage: 'shared'
|
|
}
|
|
if (project.hasProperty('includeWpiutil')) {
|
|
lib project: ':wpiutil', library: 'wpiutil', linkage: 'shared'
|
|
}
|
|
}
|
|
}
|
|
"${pluginName}Dev"(NativeExecutableSpec) {
|
|
sources {
|
|
cpp {
|
|
source {
|
|
srcDirs = ['src/dev/native/cpp']
|
|
includes = ["**/*.cpp"]
|
|
}
|
|
exportedHeaders {
|
|
srcDirs = ["src/dev/native/include"]
|
|
}
|
|
}
|
|
}
|
|
binaries.all {
|
|
lib project: ':hal', library: 'hal', linkage: 'shared'
|
|
lib library: pluginName
|
|
if (project.hasProperty('includeNtCore')) {
|
|
lib project: ':ntcore', library: 'ntcore', linkage: 'shared'
|
|
}
|
|
lib project: ':wpiutil', library: 'wpiutil', linkage: 'shared'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
apply from: "${rootDir}/shared/plugins/publish.gradle"
|
|
}
|
|
|
|
model {
|
|
tasks {
|
|
def c = $.components
|
|
if (!project.hasProperty('onlyAthena')) {
|
|
project.tasks.create('runCpp', Exec) {
|
|
group = 'WPILib'
|
|
description = "Run the ${pluginName}Dev executable"
|
|
def found = false
|
|
def systemArch = getCurrentArch()
|
|
c.each {
|
|
if (it in NativeExecutableSpec && it.name == "${pluginName}Dev") {
|
|
it.binaries.each {
|
|
if (!found) {
|
|
def arch = it.targetPlatform.architecture.name
|
|
if (arch == systemArch) {
|
|
dependsOn it.tasks.install
|
|
commandLine it.tasks.install.runScriptFile.get().asFile.toString()
|
|
// it.tasks.install.libs.each { lib ->
|
|
// if (lib.name.contains(pluginName)) {
|
|
// def filePath = it.tasks.install.installDirectory.get().toString() + File.separatorChar + 'lib' + File.separatorChar + lib.name
|
|
// environment('HALSIM_EXTENSIONS', filePath)
|
|
// }
|
|
// }
|
|
found = true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|