mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-30 02:31:44 +00:00
There is a shim for backwards compatibility, just like the frc namespace. As with the frc namespace, the library compiles without the shim.
159 lines
4.4 KiB
Groovy
159 lines
4.4 KiB
Groovy
defineNetworkTablesProperties()
|
|
defineWpiUtilProperties()
|
|
defineCsCoreProperties()
|
|
|
|
debugStripSetup(project)
|
|
|
|
def ntSourceDir = "$buildDir/ntSources"
|
|
|
|
model {
|
|
components {
|
|
wpilibc(NativeLibrarySpec) {
|
|
targetPlatform 'roborio-arm'
|
|
binaries.all {
|
|
tasks.withType(CppCompile) {
|
|
dependsOn generateCppVersion
|
|
cppCompiler.args "-DNAMESPACED_WPILIB"
|
|
cppCompiler.args "-DNAMESPACED_PRIORITY"
|
|
addNiLibraryLinks(linker, targetPlatform)
|
|
addNetworkTablesLibraryLinks(it, linker, targetPlatform)
|
|
addCsCoreLibraryLinks(it, linker, targetPlatform)
|
|
}
|
|
}
|
|
sources {
|
|
cpp {
|
|
source {
|
|
srcDirs = ["${project.shared}/src", "${project.athena}/src"]
|
|
includes = ['**/*.cpp']
|
|
}
|
|
exportedHeaders {
|
|
srcDirs = ["${project.shared}/include", "${project.athena}/include", netTablesInclude, wpiUtilInclude, csCoreInclude]
|
|
includes = ['**/*.h']
|
|
}
|
|
lib project: ':hal', library: 'HALAthena', linkage: 'shared'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
tasks { tasks ->
|
|
tasks.wpilibcZip.dependsOn tasks.wpilibcSharedLibrary
|
|
}
|
|
}
|
|
|
|
task wpilibcZip(type: Zip) {
|
|
description = 'Zips all of the libraries for wpilibc'
|
|
group = 'WPILib'
|
|
baseName = 'wpilibc'
|
|
destinationDir = project.buildDir
|
|
duplicatesStrategy = 'exclude'
|
|
|
|
// Include the shared library file and header files from this project
|
|
model {
|
|
binaries {
|
|
withType(SharedLibraryBinarySpec) { spec ->
|
|
from(spec.sharedLibraryFile) {
|
|
into 'lib'
|
|
}
|
|
from(new File(spec.sharedLibraryFile.absolutePath + ".debug")) {
|
|
into 'lib'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
from (file("${project.shared}/include")) {
|
|
into 'include'
|
|
}
|
|
|
|
from (file("${project.athena}/include")) {
|
|
into 'include'
|
|
}
|
|
|
|
// Finally, include all of the shared library objects from the ni directory
|
|
from(project.file('../ni-libraries/lib')) {
|
|
include 'libwpi.so'
|
|
into 'lib'
|
|
}
|
|
}
|
|
|
|
if (checkDoxygen()) {
|
|
configurations.create('doc')
|
|
dependencies {
|
|
doc ntcoreDep('cpp', 'sources', 'zip')
|
|
}
|
|
|
|
task unzipCppNtSources(type: Copy) {
|
|
description = 'Unzips the C++ networktables sources for doc creation.'
|
|
group = 'Dependencies'
|
|
configurations.doc.files.each {
|
|
from zipTree(it)
|
|
}
|
|
exclude 'META-INF/*'
|
|
into ntSourceDir
|
|
}
|
|
|
|
doxygen {
|
|
def halLocation = '../hal'
|
|
source new File("${project.shared}/src")
|
|
source new File("${project.shared}/include")
|
|
source new File("${project.athena}/src")
|
|
source new File("${project.athena}/include")
|
|
source new File("$ntSourceDir/src")
|
|
source new File("$ntSourceDir/include")
|
|
source new File("$halLocation/shared")
|
|
source new File("$halLocation/athena")
|
|
source new File("$halLocation/include")
|
|
// template file('cpp.doxy')
|
|
exclude 'nivision.h'
|
|
extension_mapping 'inc=C++'
|
|
project_name 'WPILibC++'
|
|
javadoc_autobrief true
|
|
recursive true
|
|
quiet true
|
|
warnings false
|
|
warn_if_doc_error false
|
|
warn_no_paramdoc false
|
|
warn_format false
|
|
warn_logfile false
|
|
warn_if_undocumented false
|
|
generate_latex false
|
|
html_timestamp true
|
|
generate_treeview true
|
|
outputDir new File("$buildDir/docs")
|
|
}
|
|
|
|
doxygen.dependsOn unzipCppNtSources
|
|
|
|
task doxygenZip(type: Zip) {
|
|
description = 'Generates doxygen zip file for publishing'
|
|
group = 'WPILib'
|
|
dependsOn doxygen
|
|
duplicatesStrategy = 'exclude'
|
|
|
|
from doxygen.outputDir
|
|
}
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
wpilibc(MavenPublication) {
|
|
artifact wpilibcZip
|
|
if (checkDoxygen()) {
|
|
artifact (doxygenZip) {
|
|
classifier = 'doxygen'
|
|
}
|
|
}
|
|
|
|
groupId 'edu.wpi.first.wpilibc'
|
|
artifactId 'athena'
|
|
version WPILibVersion.version
|
|
}
|
|
}
|
|
|
|
setupWpilibRepo(it)
|
|
}
|
|
|
|
clean {
|
|
ntSourceDir
|
|
}
|