Update build setup for raspbian and debug binaries (#1384)

- Build both debug and release binaries
- Append "d" to debug libraries in the style of opencv
- Split shared and static classifiers
- Add raspbian support
This commit is contained in:
Thad House
2018-10-27 00:19:38 -07:00
committed by Peter Johnson
parent 8ff81f5a2a
commit a8aacd3657
41 changed files with 565 additions and 343 deletions

View File

@@ -50,7 +50,7 @@ addTaskToCopyAllOutputs(cppHeadersZip)
model {
publishing {
def pluginTaskList = createComponentZipTasks($.components, pluginName, zipBaseName, Zip, project, { task, value ->
def pluginTaskList = createComponentZipTasks($.components, [pluginName], zipBaseName, Zip, project, { task, value ->
value.each { binary ->
if (binary.buildable) {
if (binary instanceof SharedLibraryBinarySpec) {
@@ -63,21 +63,12 @@ model {
}
})
def allTask
if (!project.hasProperty('jenkinsBuild')) {
allTask = createAllCombined(pluginTaskList, pluginName, zipBaseName, Zip, project)
}
publications {
cpp(MavenPublication) {
pluginTaskList.each {
artifact it
}
if (!project.hasProperty('jenkinsBuild')) {
artifact allTask
}
artifact cppHeadersZip
artifact cppSourcesZip

View File

@@ -41,8 +41,10 @@ if (!project.hasProperty('onlyAthena')) {
lib project: ':wpiutil', library: 'wpiutil', linkage: 'shared'
}
}
appendDebugPathToBinaries(binaries)
}
"${pluginName}Dev"(NativeExecutableSpec) {
targetBuildTypes 'debug'
sources {
cpp {
source {
@@ -55,12 +57,16 @@ if (!project.hasProperty('onlyAthena')) {
}
}
binaries.all {
project(':hal').addHalDependency(it, 'shared')
lib library: pluginName
if (project.hasProperty('includeNtCore')) {
lib project: ':ntcore', library: 'ntcore', linkage: 'shared'
if (!project.hasProperty('onlyAthena') && !project.hasProperty('onlyRaspbian')) {
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'
} else {
it.buildable = false
}
lib project: ':wpiutil', library: 'wpiutil', linkage: 'shared'
}
}
}
@@ -72,7 +78,7 @@ if (!project.hasProperty('onlyAthena')) {
model {
tasks {
def c = $.components
if (!project.hasProperty('onlyAthena')) {
if (!project.hasProperty('onlyAthena') && !project.hasProperty('onlyRaspbian')) {
project.tasks.create('runCpp', Exec) {
group = 'WPILib'
description = "Run the ${pluginName}Dev executable"