| 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" |
| 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 |
| } |