blob: 399ef351fb77522c36e72376e5e5788eaaf7cdd3 [file] [log] [blame]
Austin Schuh75263e32022-02-22 18:05:32 -08001import org.gradle.internal.os.OperatingSystem
2
James Kuszmaulb13e13f2023-11-22 20:44:04 -08003if (project.hasProperty('onlylinuxathena')) {
4 return;
5}
Austin Schuh75263e32022-02-22 18:05:32 -08006
James Kuszmaulb13e13f2023-11-22 20:44:04 -08007apply plugin: 'cpp'
8apply plugin: 'java'
9apply plugin: 'visual-studio'
10apply plugin: 'edu.wpi.first.NativeUtils'
Austin Schuh75263e32022-02-22 18:05:32 -080011
James Kuszmaulb13e13f2023-11-22 20:44:04 -080012if (OperatingSystem.current().isWindows()) {
13 apply plugin: 'windows-resources'
14}
Austin Schuh75263e32022-02-22 18:05:32 -080015
James Kuszmaulb13e13f2023-11-22 20:44:04 -080016dependencies {
17 implementation "com.fasterxml.jackson.core:jackson-annotations:2.15.2"
18 implementation "com.fasterxml.jackson.core:jackson-core:2.15.2"
19 implementation "com.fasterxml.jackson.core:jackson-databind:2.15.2"
20}
James Kuszmaulcf324122023-01-14 14:07:17 -080021
James Kuszmaulb13e13f2023-11-22 20:44:04 -080022ext {
23 nativeName = 'fieldImages'
24 baseId = nativeName
25 groupId = 'edu.wpi.first.fieldImages'
26 devMain = "edu.wpi.first.fieldImages.DevMain"
27}
Austin Schuh75263e32022-02-22 18:05:32 -080028
James Kuszmaulb13e13f2023-11-22 20:44:04 -080029apply from: "${rootDir}/shared/resources.gradle"
30apply from: "${rootDir}/shared/config.gradle"
31apply from: "${rootDir}/shared/java/javacommon.gradle"
Austin Schuh75263e32022-02-22 18:05:32 -080032
James Kuszmaulb13e13f2023-11-22 20:44:04 -080033def generateTask = createGenerateResourcesTask('main', 'FIELDS', 'fields', project)
Austin Schuh75263e32022-02-22 18:05:32 -080034
James Kuszmaulb13e13f2023-11-22 20:44:04 -080035project(':').libraryBuild.dependsOn build
36tasks.withType(CppCompile) {
37 dependsOn generateTask
38}
Austin Schuh75263e32022-02-22 18:05:32 -080039
James Kuszmaulb13e13f2023-11-22 20:44:04 -080040sourceSets.main.resources {
41 srcDirs 'src/main/native/resources'
42}
Austin Schuh75263e32022-02-22 18:05:32 -080043
James Kuszmaulb13e13f2023-11-22 20:44:04 -080044model {
45 components {
46 "${nativeName}"(NativeLibrarySpec) {
47 baseName = 'fieldImages'
48 sources {
49 cpp {
50 source {
51 srcDirs 'src/main/native/cpp', "$buildDir/generated/main/cpp"
52 include '**/*.cpp'
Austin Schuh75263e32022-02-22 18:05:32 -080053 }
James Kuszmaulb13e13f2023-11-22 20:44:04 -080054 exportedHeaders {
55 srcDirs 'src/main/native/include'
56 }
57 }
58 if (OperatingSystem.current().isWindows()) {
59 rc.source {
60 srcDirs 'src/main/native/win'
61 include '*.rc'
Austin Schuh75263e32022-02-22 18:05:32 -080062 }
63 }
64 }
65 }
66 }
Austin Schuh75263e32022-02-22 18:05:32 -080067}
James Kuszmaulb13e13f2023-11-22 20:44:04 -080068
69apply from: 'publish.gradle'