| task javaSourceJar(type: Jar) { |
| description = 'Generates the source jar for java' |
| group = '' |
| baseName = libraryName |
| classifier = "sources" |
| duplicatesStrategy = 'exclude' |
| destinationDir = archiveReleaseDir |
| |
| dependsOn project(':arm:cpp').classes |
| from project(':arm:cpp').sourceSets.main.allJava |
| } |
| |
| task javaJavadocJar(type: Jar) { |
| description = 'Generates the javadoc jar for java' |
| group = '' |
| baseName = libraryName |
| classifier = "javadoc" |
| duplicatesStrategy = 'exclude' |
| destinationDir = archiveReleaseDir |
| |
| dependsOn project(':arm:cpp').javadoc |
| from project(':arm:cpp').javadoc.destinationDir |
| } |
| |
| task cppSources(type: Zip) { |
| description = 'Creates a zip of cpp sources.' |
| group = '' |
| destinationDir = archiveReleaseDir |
| baseName = libraryName |
| classifier = 'cppsources' |
| duplicatesStrategy = 'exclude' |
| |
| from(cppSrc) { |
| into 'src' |
| } |
| |
| from(cppInclude) { |
| into 'include' |
| } |
| } |
| |
| task copyToEclipse(type: Copy) { |
| description = 'Creates user zip of libraries, with shared c++ libs.' |
| group = '' |
| def userDir = System.getProperty("user.home") |
| destinationDir = file("${userDir}/wpilib/user/") |
| |
| // Copy include files from cpp project |
| from(file(cppInclude)) { |
| include '**/*.h' |
| into '/cpp/include' |
| } |
| |
| // Copy static binaries from cpp project |
| project(':arm:cpp').model { |
| binaries { |
| withType(StaticLibraryBinarySpec) { binary -> |
| from(binary.staticLibraryFile) { |
| include '*.a' |
| into '/cpp/lib' |
| } |
| } |
| } |
| } |
| |
| // copy driver include |
| from (file(driverInclude)) { |
| include '**/*.h' |
| into '/cpp/include' |
| } |
| |
| // Copy included driver library headers |
| from(file(driverLibraryInclude)) { |
| include '**/*.h' |
| into '/cpp/include' |
| } |
| |
| // Copy included driver library binaries |
| from(file(driverLibraryLib)) { |
| include '*.so*' |
| include '*.a*' |
| into '/cpp/lib' |
| } |
| |
| // Copy included driver library headers |
| from(file(cppLibraryInclude)) { |
| include '**/*.h' |
| into '/cpp/include' |
| } |
| |
| // Copy included driver library binaries |
| from(file(cppLibraryLib)) { |
| include '*.so*' |
| include '*.a*' |
| into '/cpp/lib' |
| } |
| |
| def javaProject = project(':arm:cpp') |
| dependsOn javaProject.jar |
| // Copy project java binary |
| from (file(javaProject.jar.archivePath)) { |
| into '/java/lib' |
| } |
| |
| |
| // If not embedded java, include java libs |
| if (!embedJavaLibraries) { |
| from(file(javaLibraryLoc)) { |
| include '*.jar' |
| include '*.so' |
| include '*.so.debug' |
| into '/java/lib' |
| } |
| } |
| |
| // Include java sources if set |
| if (includeJavaSources) { |
| dependsOn javaSourceJar |
| from (file(javaSourceJar.archivePath)) { |
| into '/java/lib' |
| } |
| } |
| |
| // Include java javadoc if set |
| if (includeJavaJavadoc) { |
| dependsOn javaJavadocJar |
| from (file(javaJavadocJar.archivePath)) { |
| into '/java/docs' |
| } |
| } |
| |
| // Include cpp sources if set |
| if (includeCppSources) { |
| from(file(cppSrc)) { |
| include '**/*.cpp' |
| include '**/*.h' |
| into "/cpp/src/$libraryName" |
| } |
| } |
| |
| // Include driver sources if set |
| if (includeDriverSources) { |
| from(file(driverSrc)) { |
| include '**/*.cpp' |
| include '**/*.h' |
| into "/cpp/src/$libraryName" |
| } |
| } |
| } |
| |
| |
| task userStaticArtifacts(type: Copy) { |
| description = 'Creates user zip of libraries, with static c++ libs.' |
| group = '' |
| destinationDir = releaseDir |
| duplicatesStrategy = 'exclude' |
| |
| // Copy include files from cpp project |
| from(file(cppInclude)) { |
| include '**/*.h' |
| into '/cpp/include' |
| } |
| |
| // Copy static binaries from cpp project |
| project(':arm:cpp').model { |
| binaries { |
| withType(StaticLibraryBinarySpec) { binary -> |
| from(binary.staticLibraryFile) { |
| include '*.a' |
| into '/cpp/lib' |
| } |
| } |
| } |
| } |
| |
| // copy driver include |
| from (file(driverInclude)) { |
| include '**/*.h' |
| into '/cpp/include' |
| } |
| |
| // Copy included driver library headers |
| from(file(driverLibraryInclude)) { |
| include '**/*.h' |
| into '/cpp/include' |
| } |
| |
| // Copy included driver library binaries |
| from(file(driverLibraryLib)) { |
| include '*.so*' |
| include '*.a*' |
| into '/cpp/lib' |
| } |
| |
| // Copy included driver library headers |
| from(file(cppLibraryInclude)) { |
| include '**/*.h' |
| into '/cpp/include' |
| } |
| |
| // Copy included driver library binaries |
| from(file(cppLibraryLib)) { |
| include '*.so*' |
| include '*.a*' |
| into '/cpp/lib' |
| } |
| |
| def javaProject = project(':arm:cpp') |
| dependsOn javaProject.jar |
| // Copy project java binary |
| from (file(javaProject.jar.archivePath)) { |
| into '/java/lib' |
| } |
| |
| // If not embedded java, include java libs |
| if (!embedJavaLibraries) { |
| from(file(javaLibraryLoc)) { |
| include '*.jar' |
| include '*.so' |
| include '*.so.debug' |
| into '/java/lib' |
| } |
| } |
| |
| // Include java sources if set |
| if (includeJavaSources) { |
| dependsOn javaSourceJar |
| from (file(javaSourceJar.archivePath)) { |
| into '/java/lib' |
| } |
| } |
| |
| // Include java javadoc if set |
| if (includeJavaJavadoc) { |
| dependsOn javaJavadocJar |
| from (file(javaJavadocJar.archivePath)) { |
| into '/java/docs' |
| } |
| } |
| |
| // Include cpp sources if set |
| if (includeCppSources) { |
| from(file(cppSrc)) { |
| include '**/*.cpp' |
| include '**/*.h' |
| into "/cpp/src/$libraryName" |
| } |
| } |
| |
| // Include driver sources if set |
| if (includeDriverSources) { |
| from(file(driverSrc)) { |
| include '**/*.cpp' |
| include '**/*.h' |
| into "/cpp/src/$libraryName" |
| } |
| } |
| } |
| |
| task doc(type: Exec){ |
| doFirst{ |
| mkdir "${releaseDir}/cpp/docs" |
| } |
| commandLine 'powershell', 'doxygen ctrlib.doxy' |
| } |
| |
| |
| project(':arm:cpp').tasks.whenTaskAdded { task -> |
| def name = task.name.toLowerCase() |
| if (name.contains("sharedlibrary") || name.contains("staticlibrary")) { |
| userStaticArtifacts.dependsOn task |
| copyToEclipse.dependsOn task |
| } |
| } |
| |
| |
| //build.dependsOn javaSourceJar |
| //build.dependsOn javaJavadocJar |
| //build.dependsOn cppSources |
| |
| build.dependsOn userStaticArtifacts |
| build.dependsOn doc |
| |
| doc.mustRunAfter userStaticArtifacts |
| |
| if (setCopyToEclipse) { |
| build.dependsOn copyToEclipse |
| } |