Files
allwpilib/hal/build.gradle

135 lines
3.8 KiB
Groovy
Raw Normal View History

2018-04-29 13:29:07 -07:00
ext {
nativeName = 'hal'
setBaseName = 'wpiHal'
devMain = 'org.wpilib.hardware.hal.DevMain'
generatedHeaders = "src/generated/main/native/include"
2018-04-29 13:29:07 -07:00
splitSetup = {
if (it.targetPlatform.name == nativeUtils.wpi.platforms.systemcore) {
it.sources {
systemCoreCpp(CppSourceSet) {
source {
srcDirs = ['src/main/native/systemcore']
include '**/*.cpp'
}
exportedHeaders {
srcDir 'src/main/native/include'
srcDir generatedHeaders
srcDir 'src/mrc/include'
srcDir 'src/generated/main/native/cpp/mrc/protobuf'
}
}
}
} else {
2018-04-29 13:29:07 -07:00
it.sources {
simCpp(CppSourceSet) {
source {
srcDirs 'src/main/native/sim'
include '**/*.cpp'
}
exportedHeaders {
srcDir 'src/main/native/include'
srcDir generatedHeaders
srcDir 'src/mrc/include'
2018-04-29 13:29:07 -07:00
}
}
}
}
it.sources {
nanopbCpp(CppSourceSet) {
source {
srcDirs 'src/generated/main/native/cpp'
include '**/*.cpp'
}
exportedHeaders {
srcDirs 'src/generated/main/native/cpp'
}
}
}
2018-04-29 13:29:07 -07:00
}
2022-10-02 06:13:08 -07:00
exeSplitSetup = {
}
2018-04-29 13:29:07 -07:00
}
apply from: "${rootDir}/shared/jni/setupBuild.gradle"
apply from: "${rootDir}/shared/libmrclib.gradle"
ext {
addHalDependency = { binary, shared->
nativeUtils.useRequiredLibrary(binary, 'mrclib')
binary.lib project: ':hal', library: 'hal', linkage: shared
}
addHalJniDependency = { binary->
nativeUtils.useRequiredLibrary(binary, 'mrclib')
binary.lib project: ':hal', library: 'halJNIShared', linkage: 'shared'
}
}
sourceSets.main.java.srcDir "${projectDir}/src/generated/main/java"
2018-04-29 13:29:07 -07:00
cppSourcesZip {
from('src/main/native/athena') {
into '/athena'
}
from('src/main/native/systemcore') {
into '/systemcore'
}
2018-04-29 13:29:07 -07:00
from('src/main/native/sim') {
into '/sim'
}
}
cppHeadersZip {
from(generatedHeaders) {
into '/'
}
from('src/mrc/include') {
into '/'
}
}
Action<List<String>> symbolFilter = { symbols ->
symbols.removeIf({ !it.startsWith('HAL_') && !it.startsWith('HALSIM_') })
} as Action<List<String>>;
nativeUtils.exportsConfigs {
hal {
}
halJNI {
x64SymbolFilter = symbolFilter
}
}
2019-11-13 21:35:52 -08:00
model {
components {
all {
it.sources.each {
it.exportedHeaders {
srcDirs 'src/mrc/include',
'src/generated/main/native/cpp/mrc/protobuf'
}
}
}
}
binaries {
all {
if (!it.buildable || !(it instanceof NativeBinarySpec)) {
return
}
nativeUtils.useRequiredLibrary(it, 'mrclib')
if (it.component.name == "${nativeName}JNI") {
project(':ntcore').addNtcoreDependency(it, 'static')
lib project: ':wpinet', library: 'wpinet', linkage: 'static'
lib project: ':wpiutil', library: 'wpiutil', linkage: 'static'
} else {
project(':ntcore').addNtcoreDependency(it, 'shared')
lib project: ':wpinet', library: 'wpinet', linkage: 'shared'
lib project: ':wpiutil', library: 'wpiutil', linkage: 'shared'
}
}
}
}