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/build.gradle b/build.gradle
new file mode 100644
index 0000000..aac1e12
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,104 @@
+plugins {
+ id 'base'
+ id 'edu.wpi.first.wpilib.versioning.WPILibVersioningPlugin' version '2.3'
+ id 'edu.wpi.first.NativeUtils' version '2.1.2'
+ id 'edu.wpi.first.GradleJni' version '0.3.1'
+ id 'edu.wpi.first.GradleVsCode' version '0.7.1'
+ id 'idea'
+ id 'visual-studio'
+ id 'com.gradle.build-scan' version '2.0.2'
+ id 'net.ltgt.errorprone' version '0.6' apply false
+ id 'com.github.johnrengelman.shadow' version '4.0.3' apply false
+}
+
+repositories {
+ mavenCentral()
+}
+
+buildScan {
+ termsOfServiceUrl = 'https://gradle.com/terms-of-service'
+ termsOfServiceAgree = 'yes'
+
+ publishAlways()
+}
+
+ext.licenseFile = files("$rootDir/LICENSE.txt", "$rootDir/ThirdPartyNotices.txt")
+
+// Ensure that the WPILibVersioningPlugin is setup by setting the release type, if releaseType wasn't
+// already specified on the command line
+if (!hasProperty('releaseType')) {
+ WPILibVersion {
+ releaseType = 'dev'
+ }
+}
+
+def pubVersion
+if (project.hasProperty("publishVersion")) {
+ pubVersion = project.publishVersion
+} else {
+ pubVersion = WPILibVersion.version
+}
+
+def outputsFolder = file("$buildDir/allOutputs")
+
+def versionFile = file("$outputsFolder/version.txt")
+
+task outputVersions() {
+ description = 'Prints the versions of wpilib to a file for use by the downstream packaging project'
+ group = 'Build'
+ outputs.files(versionFile)
+
+ doFirst {
+ buildDir.mkdir()
+ outputsFolder.mkdir()
+ }
+
+ doLast {
+ versionFile.write pubVersion
+ }
+}
+
+task libraryBuild() {}
+
+build.dependsOn outputVersions
+
+task copyAllOutputs(type: Copy) {
+ destinationDir outputsFolder
+}
+
+build.dependsOn copyAllOutputs
+copyAllOutputs.dependsOn outputVersions
+
+ext.addTaskToCopyAllOutputs = { task ->
+ copyAllOutputs.dependsOn task
+ copyAllOutputs.inputs.file task.archivePath
+ copyAllOutputs.from task.archivePath
+}
+
+subprojects {
+ apply plugin: 'eclipse'
+ apply plugin: 'idea'
+
+ def subproj = it
+
+ plugins.withType(NativeComponentPlugin) {
+ subproj.apply plugin: MultiBuilds
+ }
+
+ apply from: "${rootDir}/shared/java/javastyle.gradle"
+
+ repositories {
+ mavenCentral()
+ }
+
+ // Disables doclint in java 8.
+ if (JavaVersion.current().isJava8Compatible()) {
+ tasks.withType(Javadoc) {
+ options.addStringOption('Xdoclint:none', '-quiet')
+ }
+ }
+}
+
+wrapper {
+ gradleVersion = '5.0'
+}