blob: 054ef0858448fea803af198e630b1db20316ab04 [file] [log] [blame]
licenses(['notice'])
genrule(
name = 'wpilib_version',
outs = ['shared/src/WPILibVersion.cpp'],
cmd = '\n'.join([
"cat > \"$@\" << EOF",
"// Autogenerated file! Do not manually edit this file.",
"#include \"WPILibVersion.h\"",
"const char *WPILibVersion = \"2017-frc971\";",
"EOF",
]),
)
_header_dirs = [
'wpilibc/shared/include',
'wpilibc/athena/include',
'hal/include',
'hal/lib/athena',
]
# Names of WPILib "devices" I don't want to deal with making trivial updates to
# chop out various ugliness or have to vet for sanity.
_excluded_devices = [
'ADXL345_I2C',
'GearTooth',
'Ultrasonic',
'Victor',
'TalonSRX',
'CANTalon',
'CANJaguar',
'PIDController',
'Spark',
'Servo',
'VictorSP',
'SD540',
'RobotDrive',
'Jaguar',
'ADXL345_SPI',
'DoubleSolenoid',
'AnalogPotentiometer',
'ADXL362',
'AnalogGyro',
'AnalogAccelerometer',
'CameraServer',
'ADXRS450_Gyro',
'GyroBase',
'IterativeRobot',
]
# Whole subdirectories of WPILib we don't want around.
_excluded_shared_directories = [
'SmartDashboard',
'LiveWindow',
'Commands',
'Buttons',
'Filters',
]
# Header files we don't want to have.
_bad_hdrs = ([
'wpilibc/athena/include/WPILib.h',
] + ['wpilibc/shared/include/%s/**/*' % d
for d in _excluded_shared_directories] +
['wpilibc/*/include/%s.h' % d for d in _excluded_devices])
_h_hdrs = glob([d + '/**/*.h' for d in _header_dirs], exclude=_bad_hdrs)
_hpp_hdrs = glob([d + '/**/*.hpp' for d in _header_dirs], exclude=_bad_hdrs)
cc_library(
name = 'wpilib',
visibility = ['//third_party:__pkg__'],
srcs = glob([
'wpilibc/athena/src/*.cpp',
'wpilibc/athena/src/Internal/*.cpp',
'wpilibc/shared/src/**/*.cpp',
'hal/lib/athena/*.cpp',
'hal/lib/athena/cpp/*.cpp',
'hal/lib/athena/ctre/*.cpp',
'hal/lib/shared/handles/*.cpp',
], exclude = (
['wpilibc/shared/src/%s/**/*' % d for d in _excluded_shared_directories] +
['wpilibc/*/src/%s.cpp' % d for d in _excluded_devices]
)) + [
':wpilib_version',
],
copts = [
'-Wno-unused-parameter',
'-Wno-switch-enum',
'-Wno-attributes',
'-Wno-cast-align',
'-Wno-cast-qual',
'-Wno-deprecated-declarations',
'-Wno-error',
'-Wno-unused-const-variable',
],
deps = [
'//third_party/ntcore_2017:ntcore',
'//external:ni-libraries-2017',
'//aos/common/logging',
],
hdrs = _h_hdrs + _hpp_hdrs + [
'wpilibc/shared/include/CircularBuffer.inc',
'wpilibc/athena/include/Task.inc',
],
includes = _header_dirs,
linkopts = [
'-lpthread',
],
defines = [
'WPILIB2017=1',
],
)