mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
* Disable class-memaccess warning in Eigen * Shim NiFpga_OpenHostMemoryBuffer * Don't deploy .debug files in integration tests
106 lines
4.2 KiB
Groovy
106 lines
4.2 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"
|
|
|
|
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']
|
|
}
|
|
}
|
|
}
|
|
lib project: ':wpilibc', library: 'wpilibc', linkage: 'shared'
|
|
lib project: ':wpimath', library: 'wpimath', linkage: 'shared'
|
|
project(':ntcore').addNtcoreDependency(binary, 'shared')
|
|
project(':ntcore').addNtcoreJniDependency(binary)
|
|
lib project: ':cscore', library: 'cscore', 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: ':wpimath', library: 'wpimathJNIShared', linkage: 'shared'
|
|
lib project: ':wpinet', library: 'wpinetJNIShared', linkage: 'shared'
|
|
lib project: ':wpiutil', library: 'wpiutilJNIShared', linkage: 'shared'
|
|
lib project: ':wpinet', library: 'wpinet', linkage: 'shared'
|
|
lib project: ':cameraserver', library: 'cameraserver', linkage: 'shared'
|
|
if (binary.targetPlatform.name == nativeUtils.wpi.platforms.roborio) {
|
|
nativeUtils.useRequiredLibrary(binary, 'ni_link_libraries', 'ni_runtime_libraries')
|
|
}
|
|
} 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 {
|
|
if (it.absolutePath.endsWith('.debug')) {
|
|
return
|
|
}
|
|
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
|
|
}
|
|
}
|
|
}
|