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/cameraserver/build.gradle b/cameraserver/build.gradle
new file mode 100644
index 0000000..2b19454
--- /dev/null
+++ b/cameraserver/build.gradle
@@ -0,0 +1,80 @@
+ext {
+ nativeName = 'cameraserver'
+ devMain = 'edu.wpi.first.cameraserver.DevMain'
+}
+
+evaluationDependsOn(':ntcore')
+evaluationDependsOn(':cscore')
+evaluationDependsOn(':hal')
+
+apply from: "${rootDir}/shared/javacpp/setupBuild.gradle"
+
+dependencies {
+ compile project(':wpiutil')
+ compile project(':ntcore')
+ compile project(':cscore')
+ devCompile project(':wpiutil')
+ devCompile project(':ntcore')
+ devCompile project(':cscore')
+}
+
+ext {
+ sharedCvConfigs = [cameraserver : [],
+ cameraserverBase: [],
+ cameraserverDev : [],
+ cameraserverTest: []]
+ staticCvConfigs = [:]
+ useJava = true
+ useCpp = true
+}
+
+apply from: "${rootDir}/shared/opencv.gradle"
+
+model {
+ // Exports config is a utility to enable exporting all symbols in a C++ library on windows to a DLL.
+ // This removes the need for DllExport on a library. However, the gradle C++ builder has a bug
+ // where some extra symbols are added that cannot be resolved at link time. This configuration
+ // lets you specify specific symbols to exlude from exporting.
+ exportsConfigs {
+ cameraserver(ExportsConfig) {
+ x86ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
+ '_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
+ '_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
+ '_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
+ x64ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
+ '_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
+ '_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
+ '_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
+ }
+ }
+ components {}
+ binaries {
+ all {
+ if (!it.buildable || !(it instanceof NativeBinarySpec)) {
+ return
+ }
+ lib project: ':ntcore', library: 'ntcore', linkage: 'shared'
+ lib project: ':cscore', library: 'cscore', linkage: 'shared'
+ lib project: ':wpiutil', library: 'wpiutil', linkage: 'shared'
+ }
+ }
+ tasks {
+ def c = $.components
+ def found = false
+ def systemArch = getCurrentArch()
+ c.each {
+ if (it in NativeExecutableSpec && it.name == "${nativeName}Dev") {
+ it.binaries.each {
+ if (!found) {
+ def arch = it.targetPlatform.architecture.name
+ if (arch == systemArch) {
+ def filePath = it.tasks.install.installDirectory.get().toString() + File.separatorChar + 'lib'
+
+ found = true
+ }
+ }
+ }
+ }
+ }
+ }
+}