blob: 8254c8af6545d05033a26e55fb76ff7a4c4bf4b5 [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* GetWPILibVersion() {",
" return \"2018-frc971\";",
"}",
"EOF",
]),
)
_header_dirs = [
'wpilibc/src/main/native/include',
#'wpilibc/shared/include',
#'wpilibc/athena/include',
'hal/src/main/native/include',
'hal/src/main/native/athena',
'hal/src/main/native/include/HAL/cpp',
#'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',
'ADXL345_SPI',
'ADXL362',
'ADXRS450_Gyro',
'AnalogAccelerometer',
#'AnalogGyro',
'AnalogPotentiometer',
'CANJaguar',
'CANSpeedController',
'CANTalon',
'CameraServer',
'DoubleSolenoid',
'GamepadBase',
'GearTooth',
'GenericHID',
#'GyroBase',
'IterativeRobot',
'Jaguar',
'Joystick',
'JoystickBase',
#'Log',
#'MotorSafety',
#'MotorSafetyHelper',
'OSSerialPort',
#'PIDController',
#'PIDSource',
#'PWMSpeedController',
'Potentiometer',
'RobotDrive',
'SD540',
#'SafePWM',
#'SerialHelper',
#'SerialPort',
'Spark',
#'SpeedController',
'TalonSRX',
'Ultrasonic',
'Victor',
'XboxController',
#'visa',
]
# Whole subdirectories of WPILib we don't want around.
_excluded_directories = [
#'SmartDashboard',
#'LiveWindow',
#'Commands',
#'Buttons',
#'Filters',
'LabView',
'vision',
]
# Header files we don't want to have.
_bad_hdrs = ([
'wpilibc/src/main/native/include/WPILib.h',
'hal/src/main/native/include/HAL/LabVIEW/HAL.h',
#'wpilibc/**/Accelerometer.*',
] + ['**/%s/**' % d for d in _excluded_directories] +
['**/%s.*' % 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/src/main/native/cpp/*.cpp',
'wpilibc/src/main/native/cpp/interfaces/*.cpp',
'wpilibc/src/main/native/cpp/LiveWindow/*.cpp',
'wpilibc/src/main/native/cpp/Commands/*.cpp',
'wpilibc/src/main/native/cpp/SmartDashboard/*.cpp',
'hal/src/main/native/athena/*.cpp',
'hal/src/main/native/athena/cpp/*.cpp',
'hal/src/main/native/athena/ctre/*.cpp',
'hal/src/main/native/shared/handles/*.cpp',
'wpilibc/src/main/native/cpp/Internal/*.cpp',
], exclude = (
['**/%s/**' % d for d in _excluded_directories] +
['**/%s.*' % d for d in _excluded_devices] + [
#'wpilibc/**/Accelerometer.*',
])) + [
':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_2018:ntcore',
'@allwpilib_ni_libraries_repo_2018//:ni-libraries',
'//aos/common/logging',
],
hdrs = _h_hdrs + _hpp_hdrs + [
'wpilibc/src/main/native/include/circular_buffer.inc',
'wpilibc/src/main/native/include/SpeedControllerGroup.inc',
],
includes = _header_dirs,
linkopts = [
'-lpthread',
],
defines = [
'WPILIB2018=1',
],
restricted_to = ['//tools:roborio'],
)