blob: e63111152588b2e04bb62d855ec409a865f8be29 [file] [log] [blame]
import org.gradle.language.base.internal.ProjectLayout
repositories {
mavenCentral()
}
apply plugin: 'cpp'
apply plugin: 'java'
apply plugin: 'visual-studio'
apply plugin: 'edu.wpi.first.NativeUtils'
apply from: '../config.gradle'
dependencies {
compile project(':wpilibj')
compile 'edu.wpi.first.wpiutil:wpiutil-java:+'
compile 'edu.wpi.first.ntcore:ntcore-java:+'
}
model {
dependencyConfigs {
wpiutil(DependencyConfig) {
groupId = 'edu.wpi.first.wpiutil'
artifactId = 'wpiutil-cpp'
headerClassifier = 'headers'
ext = 'zip'
version = '+'
sharedConfigs = [ FRCUserProgram: [] ]
}
ntcore(DependencyConfig) {
groupId = 'edu.wpi.first.ntcore'
artifactId = 'ntcore-cpp'
headerClassifier = 'headers'
ext = 'zip'
version = '+'
sharedConfigs = [ FRCUserProgram: [] ]
}
cscore(DependencyConfig) {
groupId = 'edu.wpi.first.cscore'
artifactId = 'cscore-cpp'
headerClassifier = 'headers'
ext = 'zip'
version = '+'
sharedConfigs = [ FRCUserProgram: [] ]
}
opencv(DependencyConfig) {
groupId = 'org.opencv'
artifactId = 'opencv-cpp'
headerClassifier = 'headers'
ext = 'zip'
version = '3.2.0'
sharedConfigs = [ FRCUserProgram: [] ]
}
}
components {
FRCUserProgram(NativeExecutableSpec) {
sources {
cpp {
source {
srcDirs = ['src/main/native/cpp']
}
exportedHeaders {
srcDirs = ['src/main/native/headers']
}
}
}
binaries.all { binary->
project(':ni-libraries').addNiLibrariesToLinker(binary)
project(':hal').addHalToLinker(binary)
project(':wpilibc').addWpilibCCompilerArguments(binary)
project(':wpilibc').addWpilibCToLinker(binary)
}
}
}
tasks {
runCpp(Exec) {
def found = false
$.components.each {
if (it in NativeExecutableSpec && it.name == 'FRCUserProgram') {
it.binaries.each {
if (!found) {
def arch = it.targetPlatform.architecture.name
if (arch == 'x86-64' || arch == 'x86') {
dependsOn it.tasks.install
commandLine it.tasks.install.runScript
found = true
}
}
}
}
}
}
installAthena(Task) {
$.binaries.each {
if (it in NativeExecutableBinarySpec && it.targetPlatform.architecture.name == 'athena') {
dependsOn it.tasks.install
}
}
}
}
}