Files
allwpilib/shared/plugins/setupBuild.gradle

97 lines
3.8 KiB
Groovy
Raw Normal View History

2018-04-29 13:29:07 -07:00
apply plugin: 'cpp'
apply plugin: 'edu.wpi.first.NativeUtils'
apply plugin: ExtraTasks
2018-04-29 13:29:07 -07:00
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
}
}
}
}
}
}
}
}
}