mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
These are little used, not actively maintained, and the simulation GUI and alternative plans for physics simulation replace the functionality.
227 lines
9.1 KiB
Groovy
227 lines
9.1 KiB
Groovy
import org.gradle.language.base.internal.ProjectLayout
|
|
|
|
apply plugin: 'cpp'
|
|
apply plugin: 'c'
|
|
apply plugin: 'visual-studio'
|
|
apply plugin: 'edu.wpi.first.NativeUtils'
|
|
apply plugin: ExtraTasks
|
|
|
|
evaluationDependsOn(':hal')
|
|
|
|
apply from: '../shared/config.gradle'
|
|
|
|
ext.examplesMap = [:]
|
|
ext.templatesMap = [:]
|
|
|
|
File examplesTree = file("$projectDir/src/main/cpp/examples")
|
|
examplesTree.list(new FilenameFilter() {
|
|
@Override
|
|
public boolean accept(File current, String name) {
|
|
return new File(current, name).isDirectory();
|
|
}
|
|
}).each {
|
|
examplesMap.put(it, [])
|
|
}
|
|
File templatesTree = file("$projectDir/src/main/cpp/templates")
|
|
templatesTree.list(new FilenameFilter() {
|
|
@Override
|
|
public boolean accept(File current, String name) {
|
|
return new File(current, name).isDirectory();
|
|
}
|
|
}).each {
|
|
templatesMap.put(it, [])
|
|
}
|
|
|
|
nativeUtils.platformConfigs.named(nativeUtils.wpi.platforms.roborio).configure {
|
|
cppCompiler.args.remove('-Wno-error=deprecated-declarations')
|
|
cppCompiler.args.add('-Werror=deprecated-declarations')
|
|
}
|
|
|
|
ext {
|
|
sharedCvConfigs = examplesMap + templatesMap + [commands: []]
|
|
staticCvConfigs = [:]
|
|
useJava = false
|
|
useCpp = true
|
|
}
|
|
|
|
apply from: "${rootDir}/shared/opencv.gradle"
|
|
|
|
model {
|
|
components {
|
|
commands(NativeLibrarySpec) {
|
|
binaries.all { binary ->
|
|
if (binary in StaticLibraryBinarySpec) {
|
|
binary.buildable = false
|
|
return
|
|
}
|
|
lib project: ':wpilibOldCommands', library: 'wpilibOldCommands', linkage: 'shared'
|
|
lib project: ':wpilibNewCommands', library: 'wpilibNewCommands', linkage: 'shared'
|
|
lib project: ':wpilibc', library: 'wpilibc', linkage: 'shared'
|
|
lib project: ':ntcore', library: 'ntcore', linkage: 'shared'
|
|
lib project: ':cscore', library: 'cscore', linkage: 'shared'
|
|
project(':hal').addHalDependency(binary, 'shared')
|
|
lib project: ':cameraserver', library: 'cameraserver', linkage: 'shared'
|
|
lib project: ':wpiutil', library: 'wpiutil', linkage: 'shared'
|
|
}
|
|
sources {
|
|
cpp {
|
|
source {
|
|
srcDirs = ['src/main/cpp/commands']
|
|
include '**/*.cpp'
|
|
}
|
|
exportedHeaders {
|
|
srcDirs 'src/main/cpp/commands'
|
|
include '**/*.h'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
examplesMap.each { key, value ->
|
|
"${key}"(NativeExecutableSpec) {
|
|
targetBuildTypes 'debug'
|
|
binaries.all { binary ->
|
|
lib project: ':wpilibOldCommands', library: 'wpilibOldCommands', linkage: 'shared'
|
|
lib project: ':wpilibNewCommands', library: 'wpilibNewCommands', linkage: 'shared'
|
|
lib project: ':wpilibc', library: 'wpilibc', linkage: 'shared'
|
|
lib project: ':ntcore', library: 'ntcore', linkage: 'shared'
|
|
lib project: ':cscore', library: 'cscore', linkage: 'shared'
|
|
project(':hal').addHalDependency(binary, 'shared')
|
|
lib project: ':cameraserver', library: 'cameraserver', linkage: 'shared'
|
|
lib project: ':wpiutil', library: 'wpiutil', linkage: 'shared'
|
|
if (binary.targetPlatform.name == nativeUtils.wpi.platforms.roborio) {
|
|
nativeUtils.useRequiredLibrary(binary, 'netcomm_shared', 'chipobject_shared', 'visa_shared', 'ni_runtime_shared')
|
|
}
|
|
}
|
|
sources {
|
|
cpp {
|
|
source {
|
|
srcDirs 'src/main/cpp/examples/' + "${key}" + "/cpp"
|
|
include '**/*.cpp'
|
|
}
|
|
exportedHeaders {
|
|
srcDirs 'src/main/cpp/examples/' + "${key}" + "/include"
|
|
include '**/*.h'
|
|
}
|
|
}
|
|
}
|
|
sources {
|
|
c {
|
|
source {
|
|
srcDirs 'src/main/cpp/examples/' + "${key}" + "/c"
|
|
include '**/*.c'
|
|
}
|
|
exportedHeaders {
|
|
srcDirs 'src/main/cpp/examples/' + "${key}" + "/include"
|
|
include '**/*.h'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
templatesMap.each { key, value ->
|
|
"${key}"(NativeExecutableSpec) {
|
|
targetBuildTypes 'debug'
|
|
binaries.all { binary ->
|
|
lib project: ':wpilibOldCommands', library: 'wpilibOldCommands', linkage: 'shared'
|
|
lib project: ':wpilibNewCommands', library: 'wpilibNewCommands', linkage: 'shared'
|
|
lib project: ':wpilibc', library: 'wpilibc', linkage: 'shared'
|
|
lib project: ':ntcore', library: 'ntcore', linkage: 'shared'
|
|
lib project: ':cscore', library: 'cscore', linkage: 'shared'
|
|
project(':hal').addHalDependency(binary, 'shared')
|
|
lib project: ':cameraserver', library: 'cameraserver', linkage: 'shared'
|
|
lib project: ':wpiutil', library: 'wpiutil', linkage: 'shared'
|
|
binary.tasks.withType(CppCompile) {
|
|
if (!(binary.toolChain in VisualCpp)) {
|
|
cppCompiler.args "-Wno-error=deprecated-declarations"
|
|
} else {
|
|
cppCompiler.args "/wd4996"
|
|
}
|
|
}
|
|
if (binary.targetPlatform.name == nativeUtils.wpi.platforms.roborio) {
|
|
nativeUtils.useRequiredLibrary(binary, 'netcomm_shared', 'chipobject_shared', 'visa_shared', 'ni_runtime_shared')
|
|
}
|
|
}
|
|
sources {
|
|
cpp {
|
|
source {
|
|
srcDirs 'src/main/cpp/templates/' + "${key}" + "/cpp"
|
|
include '**/*.cpp'
|
|
}
|
|
exportedHeaders {
|
|
srcDirs 'src/main/cpp/templates/' + "${key}" + "/include"
|
|
include '**/*.h'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
tasks {
|
|
def b = $.binaries
|
|
b.each { binary->
|
|
if (binary in NativeExecutableBinarySpec) {
|
|
def installDir = binary.tasks.install.installDirectory.get().toString() + File.separatorChar
|
|
def runFile = binary.tasks.install.runScriptFile.get().asFile.toString()
|
|
|
|
binary.tasks.install.doLast {
|
|
if (binary.targetPlatform.operatingSystem.isWindows()) {
|
|
// Windows batch scripts
|
|
fileName = binary.component.name + 'RealDS.bat'
|
|
file = new File(installDir + fileName)
|
|
file.withWriter { out ->
|
|
out.println '@ECHO OFF'
|
|
out.print 'SET HALSIM_EXTENSIONS='
|
|
out.println '"' + new File(installDir + 'lib\\halsim_ds_socket.dll').toString() + '"'
|
|
out.println runFile + ' %*'
|
|
}
|
|
} else {
|
|
fileName = binary.component.name + 'RealDS.sh'
|
|
file = new File(installDir + fileName)
|
|
file.withWriter { out ->
|
|
out.print 'export HALSIM_EXTENSIONS='
|
|
out.println '"' + new File(installDir + '/lib/libhalsim_ds_socket.so').toString() + '"'
|
|
out.println runFile + ' "$@"'
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
apply from: 'publish.gradle'
|
|
|
|
model {
|
|
tasks {
|
|
def c = $.components
|
|
project.tasks.register('buildDesktopCpp') { compileTask->
|
|
def systemArch = getCurrentArch()
|
|
c.each {
|
|
if (it in NativeExecutableSpec && it.name) {
|
|
it.binaries.each {
|
|
def arch = it.targetPlatform.name
|
|
if (arch == systemArch && it.buildType.name == 'debug') {
|
|
compileTask.dependsOn it.tasks.link
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ext {
|
|
templateDirectory = new File("$projectDir/src/main/cpp/templates/")
|
|
templateFile = new File("$projectDir/src/main/cpp/templates/templates.json")
|
|
exampleDirectory = new File("$projectDir/src/main/cpp/examples/")
|
|
exampleFile = new File("$projectDir/src/main/cpp/examples/examples.json")
|
|
commandDirectory = new File("$projectDir/src/main/cpp/commands/")
|
|
commandFile = new File("$projectDir/src/main/cpp/commands/commands.json")
|
|
}
|
|
|
|
ext {
|
|
isCppCommands = true
|
|
}
|
|
apply from: "${rootDir}/shared/examplecheck.gradle"
|