mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-21 01:01:43 +00:00
This will allow us at the user code side to determine to include old commands, new commands or both.
109 lines
4.1 KiB
Groovy
109 lines
4.1 KiB
Groovy
import org.gradle.language.base.internal.ProjectLayout
|
|
|
|
apply plugin: 'cpp'
|
|
apply plugin: 'visual-studio'
|
|
apply plugin: 'edu.wpi.first.NativeUtils'
|
|
apply plugin: ExtraTasks
|
|
|
|
apply from: '../shared/config.gradle'
|
|
|
|
ext {
|
|
sharedCvConfigs = [wpilibcIntegrationTests: []]
|
|
staticCvConfigs = [:]
|
|
useJava = false
|
|
useCpp = true
|
|
staticGtestConfigs = [wpilibcIntegrationTests: []]
|
|
}
|
|
|
|
apply from: "${rootDir}/shared/opencv.gradle"
|
|
|
|
apply from: "${rootDir}/shared/googletest.gradle"
|
|
|
|
ext {
|
|
chipObjectComponents = ['wpilibcIntegrationTests']
|
|
netCommComponents = ['wpilibcIntegrationTests']
|
|
useNiJava = false
|
|
}
|
|
|
|
apply from: "${rootDir}/shared/nilibraries.gradle"
|
|
|
|
model {
|
|
components {
|
|
wpilibcIntegrationTests(NativeExecutableSpec) {
|
|
targetBuildTypes 'debug'
|
|
baseName = 'FRCUserProgram'
|
|
nativeUtils.useRequiredLibrary(it, 'googletest_static')
|
|
binaries.all { binary ->
|
|
if (binary.targetPlatform.name == nativeUtils.wpi.platforms.roborio) {
|
|
binary.sources {
|
|
athenaCpp(CppSourceSet) {
|
|
source {
|
|
srcDirs = ['src/main/native/cpp']
|
|
includes = ['**/*.cpp']
|
|
}
|
|
exportedHeaders {
|
|
srcDirs = ['src/main/native/include']
|
|
includes = ['**/*.h']
|
|
}
|
|
}
|
|
}
|
|
binary.tasks.withType(CppCompile) {
|
|
cppCompiler.args "-Wno-missing-field-initializers"
|
|
cppCompiler.args "-Wno-unused-variable"
|
|
cppCompiler.args "-Wno-error=deprecated-declarations"
|
|
}
|
|
lib project: ':wpilibOldCommands', library: 'wpilibOldCommands', linkage: 'shared'
|
|
lib project: ':wpilibc', library: 'wpilibc', linkage: 'shared'
|
|
lib project: ':ntcore', library: 'ntcore', linkage: 'shared'
|
|
lib project: ':cscore', library: 'cscore', linkage: 'shared'
|
|
lib project: ':ntcore', library: 'ntcoreJNIShared', linkage: 'shared'
|
|
lib project: ':cscore', library: 'cscoreJNIShared', linkage: 'shared'
|
|
project(':hal').addHalDependency(binary, 'shared')
|
|
project(':hal').addHalJniDependency(binary)
|
|
lib project: ':wpiutil', library: 'wpiutil', linkage: 'shared'
|
|
lib project: ':cameraserver', library: 'cameraserver', linkage: 'shared'
|
|
} else {
|
|
binary.sources {
|
|
simCpp(CppSourceSet) {
|
|
source {
|
|
srcDirs 'src/main/native/dt'
|
|
includes = ['**/*.cpp']
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
def testOutputFolder = file("${project(':').buildDir}/integrationTestFiles")
|
|
|
|
model {
|
|
tasks {
|
|
copyWpilibCTestLibrariesToOutput(Copy) {
|
|
def task = it
|
|
$.binaries.each {
|
|
if (it in NativeExecutableBinarySpec && it.targetPlatform.name == nativeUtils.wpi.platforms.roborio && it.buildable) {
|
|
def installTask = it.tasks.install
|
|
task.dependsOn installTask
|
|
task.from(installTask.executableFile) {
|
|
into '/cpp'
|
|
}
|
|
installTask.libs.each {
|
|
task.from(it) {
|
|
into '/libs'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
destinationDir testOutputFolder
|
|
}
|
|
// This is in a separate if statement because of what I would assume is a bug in grade.
|
|
// Will file an issue on their side.
|
|
if (!project.hasProperty('skiponlyathena')) {
|
|
build.dependsOn copyWpilibCTestLibrariesToOutput
|
|
}
|
|
}
|
|
}
|