Squashed 'third_party/allwpilib_2019/' content from commit bd05dfa1c

Change-Id: I2b1c2250cdb9b055133780c33593292098c375b7
git-subtree-dir: third_party/allwpilib_2019
git-subtree-split: bd05dfa1c7cca74c4fac451e7b9d6a37e7b53447
diff --git a/wpilibcExamples/publish.gradle b/wpilibcExamples/publish.gradle
new file mode 100644
index 0000000..ec645ae
--- /dev/null
+++ b/wpilibcExamples/publish.gradle
@@ -0,0 +1,94 @@
+apply plugin: 'maven-publish'
+
+def pubVersion
+if (project.hasProperty("publishVersion")) {
+    pubVersion = project.publishVersion
+} else {
+    pubVersion = WPILibVersion.version
+}
+
+def baseExamplesArtifactId = 'examples'
+def baseTemplatesArtifactId = 'templates'
+def baseCommandsArtifactId = 'commands'
+def artifactGroupId = 'edu.wpi.first.wpilibc'
+
+def examplesZipBaseName = '_GROUP_edu_wpi_first_wpilibc_ID_examples_CLS'
+def templatesZipBaseName = '_GROUP_edu_wpi_first_wpilibc_ID_templates_CLS'
+def commandsZipBaseName = '_GROUP_edu_wpi_first_wpilibc_ID_commands_CLS'
+
+def outputsFolder = file("$project.buildDir/outputs")
+
+task cppExamplesZip(type: Zip) {
+    destinationDir = outputsFolder
+    baseName = examplesZipBaseName
+
+    from(licenseFile) {
+        into '/'
+    }
+
+    from('src/main/cpp/examples') {
+        into 'examples'
+    }
+}
+
+task cppTemplatesZip(type: Zip) {
+    destinationDir = outputsFolder
+    baseName = templatesZipBaseName
+
+    from(licenseFile) {
+        into '/'
+    }
+
+    from('src/main/cpp/templates') {
+        into 'templates'
+    }
+}
+
+task cppCommandsZip(type: Zip) {
+    destinationDir = outputsFolder
+    baseName = commandsZipBaseName
+
+    from(licenseFile) {
+        into '/'
+    }
+
+    from('src/main/cpp/commands') {
+        into 'commands'
+    }
+}
+
+build.dependsOn cppTemplatesZip
+build.dependsOn cppExamplesZip
+build.dependsOn cppCommandsZip
+
+addTaskToCopyAllOutputs(cppTemplatesZip)
+addTaskToCopyAllOutputs(cppExamplesZip)
+addTaskToCopyAllOutputs(cppCommandsZip)
+
+publishing {
+    publications {
+        examples(MavenPublication) {
+            artifact cppExamplesZip
+
+            artifactId = baseExamplesArtifactId
+            groupId artifactGroupId
+            version pubVersion
+        }
+
+        templates(MavenPublication) {
+            artifact cppTemplatesZip
+
+            artifactId = baseTemplatesArtifactId
+            groupId artifactGroupId
+            version pubVersion
+        }
+
+        commands(MavenPublication) {
+            artifact cppCommandsZip
+
+            artifactId = baseCommandsArtifactId
+            groupId artifactGroupId
+            version pubVersion
+        }
+    }
+}