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