mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
This removes a number of large binary files from the repo and enables vendors to depend on these libraries separately.
105 lines
4.1 KiB
Groovy
105 lines
4.1 KiB
Groovy
apply plugin: 'cpp'
|
|
apply plugin: 'edu.wpi.first.NativeUtils'
|
|
apply plugin: ExtraTasks
|
|
|
|
ext {
|
|
chipObjectComponents = ["$pluginName".toString(), "${pluginName}Dev".toString(), "${pluginName}Test".toString()]
|
|
netCommComponents = ["$pluginName".toString(), "${pluginName}Dev".toString(), "${pluginName}Test".toString()]
|
|
useNiJava = false
|
|
}
|
|
|
|
apply from: "${rootDir}/shared/nilibraries.gradle"
|
|
|
|
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
|
|
}
|
|
project(':hal').addHalDependency(it, '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 {
|
|
project(':hal').addHalDependency(it, '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
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|