import com.hubspot.jinjava.Jinjava; import com.hubspot.jinjava.JinjavaConfig; ext { useJava = true useCpp = true baseId = 'wpimath' groupId = 'edu.wpi.first.wpimath' nativeName = 'wpimath' devMain = 'edu.wpi.first.math.DevMain' } apply from: "${rootDir}/shared/jni/setupBuild.gradle" cppHeadersZip { from('src/main/native/thirdparty/eigen/include') { into '/' } from('src/main/native/thirdparty/gcem/include') { into '/' } from("$buildDir/generated/source/proto/main/cpp") { into '/wpimath/protobuf' include '*.h' } } cppHeadersZip.dependsOn generateProto model { components { all { it.sources.each { it.exportedHeaders { srcDirs 'src/main/native/include', 'src/main/native/thirdparty/eigen/include', 'src/main/native/thirdparty/gcem/include' } } } } } nativeUtils.exportsConfigs { wpimath { x64ExcludeSymbols = [ '_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure', '_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure', '_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range', '_TI3?AVout_of_range', '_CT??_R0?AVbad_cast' ] objectFilterClosure = { file -> return file.name.endsWith('.pb.obj') } } } dependencies { api project(":wpiunits") api "org.ejml:ejml-simple:0.43.1" api "com.fasterxml.jackson.core:jackson-annotations:2.15.2" api "com.fasterxml.jackson.core:jackson-core:2.15.2" api "com.fasterxml.jackson.core:jackson-databind:2.15.2" api "us.hebi.quickbuf:quickbuf-runtime:1.3.3" } sourceSets.main.java.srcDir "${projectDir}/src/generated/main/java" task unitsHeaders(type: Zip) { destinationDirectory = file("$buildDir/outputs") archiveBaseName = zipBaseName archiveClassifier = "units" from(licenseFile) { into '/' } ext.includeDirs = [ project.file('src/main/native/include/units') ] ext.includeDirs.each { from(it) { into '/units' } } } addTaskToCopyAllOutputs(unitsHeaders)