blob: b8913fd454d37dc7cb5a8e121792dddb86b6fc70 [file] [log] [blame]
import org.gradle.internal.os.OperatingSystem
plugins {
id 'net.ltgt.errorprone' version '0.0.8'
id 'edu.wpi.first.wpilib.versioning.WPILibVersioningPlugin' version '2.0'
}
allprojects {
repositories {
mavenCentral()
}
}
if (!hasProperty('releaseType')) {
WPILibVersion {
releaseType = 'dev'
}
}
ext.compilerPrefixToUse = project.hasProperty('compilerPrefix') ? project.compilerPrefix : 'arm-frc-linux-gnueabi-'
ext.setupDefines = { project, binaries ->
binaries.all {
if (project.hasProperty('debug')) {
project.setupDebugDefines(cppCompiler, linker)
} else {
project.setupReleaseDefines(cppCompiler, linker)
}
}
}
apply from: "locations.gradle"
ext.addUserLinks = { linker, targetPlatform, implLib ->
def libPattern = /.*((\\/|\\).*)+lib(?<libName>.+).(.+)$/
def libraryArgs = []
def libraryPath = file(driverLibraryLib).path
// adds all libraries found in the driver folder
def libraryTree = fileTree(libraryPath)
libraryTree.include '*.so'
libraryTree.include '*.a'
libraryTree.each { lib ->
def nameMatcher = (lib.path =~ libPattern)
if (nameMatcher[0].size() > 1) {
def name = nameMatcher.group('libName')
libraryArgs << '-l' + name
}
}
if (implLib) {
// adds all libraries found in the impl folder
def implLibraryPath = file(cppLibraryLib).path
def implLibraryTree = fileTree(implLibraryPath)
implLibraryTree.include '*.so'
implLibraryTree.include '*.a'
implLibraryTree.each { lib ->
def nameMatcher = (lib.path =~ libPattern)
if (nameMatcher[0].size() > 1) {
def name = nameMatcher.group('libName')
libraryArgs << '-l' + name
}
}
}
// Add all arguments
String architecture = targetPlatform.architecture
if (architecture.contains('arm')){
linker.args << '-L' + libraryPath
linker.args.addAll(libraryArgs)
}
}
apply from: "properties.gradle"
apply from: "options.gradle"
apply from: wpiDeps
apply from: "cpp.gradle"
// Empty task for build so that zips will be
// built when running ./gradlew build
task build
apply from: "releases.gradle"
task clean(type: Delete) {
description = "Deletes the build directory"
group = "Build"
delete buildDir
}
clean {
delete releaseDir
}
task wrapper(type: Wrapper) {
gradleVersion = '3.3'
}