| import org.gradle.internal.os.OperatingSystem |
| |
| if (project.hasProperty('onlylinuxathena')) { |
| return; |
| } |
| |
| description = "Process Starter" |
| |
| apply plugin: 'cpp' |
| apply plugin: 'objective-cpp' |
| apply plugin: 'visual-studio' |
| apply plugin: 'edu.wpi.first.NativeUtils' |
| |
| ext { |
| nativeName = 'processstarter' |
| } |
| |
| apply from: "${rootDir}/shared/config.gradle" |
| |
| // Replace shared crt with static crt. |
| // Note this means no wpilib binaries can be dependencies |
| nativeUtils.platformConfigs.named(nativeUtils.wpi.platforms.windowsx64).configure { |
| cppCompiler.debugArgs.remove('/MDd') |
| cppCompiler.debugArgs.add('/MTd') |
| cppCompiler.releaseArgs.remove('/MD') |
| cppCompiler.releaseArgs.add('/MT') |
| } |
| |
| project(':').libraryBuild.dependsOn build |
| |
| model { |
| components { |
| "${nativeName}"(NativeExecutableSpec) { |
| baseName = 'processstarter' |
| binaries.all { |
| if (it.targetPlatform.name == nativeUtils.wpi.platforms.roborio) { |
| it.buildable = false |
| return |
| } |
| if (it.targetPlatform.operatingSystem.isMacOsX()) { |
| it.sources { |
| macObjCpp(ObjectiveCppSourceSet) { |
| source { |
| srcDirs 'src/main/native/osx' |
| include '**/*.mm' |
| } |
| exportedHeaders { |
| srcDirs 'src/main/native/include' |
| include '**/*.h' |
| } |
| } |
| } |
| } else if (it.targetPlatform.operatingSystem.isLinux()) { |
| it.sources { |
| linuxCpp(CppSourceSet) { |
| source { |
| srcDirs 'src/main/native/linux' |
| include '**/*.cpp' |
| } |
| exportedHeaders { |
| srcDirs 'src/main/native/include' |
| include '**/*.h' |
| } |
| } |
| } |
| } else if (it.targetPlatform.operatingSystem.isWindows()) { |
| it.sources { |
| windowsCpp(CppSourceSet) { |
| source { |
| srcDirs 'src/main/native/windows' |
| include '**/*.cpp' |
| } |
| exportedHeaders { |
| srcDirs 'src/main/native/include' |
| include '**/*.h' |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| |
| apply from: 'publish.gradle' |