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' 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' lib project: ':thirdparty:googletest', library: 'googletest', linkage: 'static' 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 } } }