2018-04-29 13:29:07 -07:00
|
|
|
ext {
|
2018-09-19 21:57:58 -07:00
|
|
|
addHalDependency = { binary, shared->
|
|
|
|
|
binary.lib project: ':hal', library: 'hal', linkage: shared
|
|
|
|
|
}
|
|
|
|
|
|
2018-10-27 00:19:38 -07:00
|
|
|
addHalJniDependency = { binary->
|
|
|
|
|
binary.lib project: ':hal', library: 'halJNIShared', linkage: 'shared'
|
|
|
|
|
}
|
|
|
|
|
|
2018-04-29 13:29:07 -07:00
|
|
|
nativeName = 'hal'
|
|
|
|
|
setBaseName = 'wpiHal'
|
2025-11-07 19:56:29 -05:00
|
|
|
devMain = 'org.wpilib.hardware.hal.DevMain'
|
2023-12-03 18:53:24 -05:00
|
|
|
generatedHeaders = "src/generated/main/native/include"
|
2018-04-29 13:29:07 -07:00
|
|
|
splitSetup = {
|
2025-01-13 11:23:54 -08:00
|
|
|
if (it.targetPlatform.name == nativeUtils.wpi.platforms.systemcore) {
|
2024-11-30 18:04:00 +00:00
|
|
|
it.sources {
|
|
|
|
|
systemCoreCpp(CppSourceSet) {
|
|
|
|
|
source {
|
|
|
|
|
srcDirs = ['src/main/native/systemcore']
|
|
|
|
|
include '**/*.cpp'
|
|
|
|
|
}
|
|
|
|
|
exportedHeaders {
|
|
|
|
|
srcDir 'src/main/native/include'
|
|
|
|
|
srcDir generatedHeaders
|
2024-12-01 04:31:26 +00:00
|
|
|
srcDir 'src/mrc/include'
|
2024-12-02 01:05:07 +00:00
|
|
|
srcDir 'src/generated/main/native/cpp/mrc/protobuf'
|
2024-11-30 18:04:00 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-12-01 04:31:26 +00:00
|
|
|
} else {
|
2018-04-29 13:29:07 -07:00
|
|
|
it.sources {
|
|
|
|
|
simCpp(CppSourceSet) {
|
|
|
|
|
source {
|
|
|
|
|
srcDirs 'src/main/native/sim'
|
|
|
|
|
include '**/*.cpp'
|
|
|
|
|
}
|
|
|
|
|
exportedHeaders {
|
2018-09-19 21:57:58 -07:00
|
|
|
srcDir 'src/main/native/include'
|
|
|
|
|
srcDir generatedHeaders
|
2024-12-01 04:31:26 +00:00
|
|
|
srcDir 'src/mrc/include'
|
2018-04-29 13:29:07 -07:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-12-01 04:31:26 +00: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"
|
2015-08-19 11:12:54 -04:00
|
|
|
|
2023-12-29 21:56:38 -08:00
|
|
|
sourceSets.main.java.srcDir "${projectDir}/src/generated/main/java"
|
2018-09-19 21:57:58 -07:00
|
|
|
|
2018-04-29 13:29:07 -07:00
|
|
|
cppSourcesZip {
|
|
|
|
|
from('src/main/native/athena') {
|
|
|
|
|
into '/athena'
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-30 18:04:00 +00:00
|
|
|
from('src/main/native/systemcore') {
|
|
|
|
|
into '/systemcore'
|
|
|
|
|
}
|
|
|
|
|
|
2018-04-29 13:29:07 -07:00
|
|
|
from('src/main/native/sim') {
|
|
|
|
|
into '/sim'
|
|
|
|
|
}
|
2017-08-18 21:35:53 -07:00
|
|
|
}
|
2016-10-25 20:46:09 -07:00
|
|
|
|
2018-09-19 21:57:58 -07:00
|
|
|
cppHeadersZip {
|
|
|
|
|
from(generatedHeaders) {
|
2018-09-21 10:51:17 -07:00
|
|
|
into '/'
|
2018-09-19 21:57:58 -07:00
|
|
|
}
|
2025-07-16 00:20:28 -04:00
|
|
|
from('src/mrc/include') {
|
|
|
|
|
into '/'
|
|
|
|
|
}
|
2018-09-19 21:57:58 -07:00
|
|
|
}
|
|
|
|
|
|
2021-09-19 17:59:14 -07:00
|
|
|
Action<List<String>> symbolFilter = { symbols ->
|
|
|
|
|
symbols.removeIf({ !it.startsWith('HAL_') && !it.startsWith('HALSIM_') })
|
|
|
|
|
} as Action<List<String>>;
|
|
|
|
|
|
2019-06-28 14:09:10 -07:00
|
|
|
nativeUtils.exportsConfigs {
|
|
|
|
|
hal {
|
|
|
|
|
}
|
|
|
|
|
halJNI {
|
2021-09-19 17:59:14 -07:00
|
|
|
x64SymbolFilter = symbolFilter
|
2017-08-18 21:35:53 -07:00
|
|
|
}
|
2016-10-25 20:46:09 -07:00
|
|
|
}
|
2019-11-13 21:35:52 -08:00
|
|
|
|
2024-12-01 04:31:26 +00: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
|
|
|
|
|
}
|
|
|
|
|
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'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|