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