Brian Silverman | cee260a | 2015-12-24 16:27:51 -0800 | [diff] [blame] | 1 | licenses(['notice']) |
| 2 | |
| 3 | _header_dirs = [ |
| 4 | 'wpilibc/wpilibC++/include', |
| 5 | 'wpilibc/wpilibC++Devices/include', |
| 6 | 'wpilibc/shared/include', |
| 7 | 'wpilibc/Athena/include', |
| 8 | 'hal/include', |
| 9 | 'hal/lib/Athena/FRC_FPGA_ChipObject', |
| 10 | 'hal/lib/Athena', |
| 11 | ] |
| 12 | |
Brian Silverman | e1de690 | 2016-02-20 21:11:14 -0500 | [diff] [blame] | 13 | # Names of WPILib "devices" I don't want to deal with making trivial updates to |
| 14 | # chop out various ugliness or have to vet for sanity. |
| 15 | _excluded_devices = [ |
| 16 | 'ADXL345_I2C', |
| 17 | 'GearTooth', |
| 18 | 'Ultrasonic', |
| 19 | 'Victor', |
| 20 | 'TalonSRX', |
| 21 | 'CANTalon', |
| 22 | 'CANJaguar', |
| 23 | 'PIDController', |
| 24 | 'Spark', |
| 25 | 'Servo', |
| 26 | 'VictorSP', |
| 27 | 'SD540', |
| 28 | 'RobotDrive', |
| 29 | 'Jaguar', |
| 30 | 'ADXL345_SPI', |
| 31 | 'DoubleSolenoid', |
| 32 | 'AnalogPotentiometer', |
| 33 | 'ADXL362', |
| 34 | 'AnalogGyro', |
| 35 | 'AnalogAccelerometer', |
| 36 | ] |
| 37 | |
| 38 | # Whole subdirectories of WPILib we don't want around. |
| 39 | _excluded_shared_directories = [ |
| 40 | 'SmartDashboard', |
| 41 | 'LiveWindow', |
| 42 | 'Commands', |
| 43 | 'Buttons', |
| 44 | 'Filters', |
| 45 | ] |
| 46 | |
| 47 | # Header files we don't want to have. |
| 48 | _bad_hdrs = ([ |
| 49 | 'wpilibc/Athena/include/WPILib.h', |
| 50 | ] + ['wpilibc/shared/include/%s/**/*' % d |
| 51 | for d in _excluded_shared_directories] + |
| 52 | ['wpilibc/*/include/%s.h' % d for d in _excluded_devices]) |
Brian Silverman | b200c17 | 2017-01-02 17:35:35 -0800 | [diff] [blame^] | 53 | _h_hdrs = glob([d + '/**/*.h' for d in _header_dirs], exclude=_bad_hdrs) |
| 54 | _hpp_hdrs = glob([d + '/**/*.hpp' for d in _header_dirs], exclude=_bad_hdrs) |
Brian Silverman | e1de690 | 2016-02-20 21:11:14 -0500 | [diff] [blame] | 55 | |
Brian Silverman | cee260a | 2015-12-24 16:27:51 -0800 | [diff] [blame] | 56 | cc_library( |
| 57 | name = 'wpilib', |
Austin Schuh | 2a70f4b | 2016-11-25 23:05:57 -0800 | [diff] [blame] | 58 | visibility = ['//third_party:__pkg__'], |
Brian Silverman | cee260a | 2015-12-24 16:27:51 -0800 | [diff] [blame] | 59 | srcs = glob([ |
| 60 | 'wpilibc/Athena/src/*.cpp', |
| 61 | 'wpilibc/Athena/src/Internal/*.cpp', |
| 62 | 'wpilibc/shared/src/**/*.cpp', |
| 63 | |
| 64 | 'hal/lib/Athena/*.cpp', |
| 65 | 'hal/lib/Athena/cpp/*.cpp', |
| 66 | 'hal/lib/Athena/ctre/*.cpp', |
| 67 | 'hal/lib/Shared/*.cpp', |
Brian Silverman | b200c17 | 2017-01-02 17:35:35 -0800 | [diff] [blame^] | 68 | ], exclude=(['wpilibc/shared/src/%s/**/*' % d for d in _excluded_shared_directories] + |
| 69 | ['wpilibc/*/src/%s.cpp' % d for d in _excluded_devices])), |
Brian Silverman | cee260a | 2015-12-24 16:27:51 -0800 | [diff] [blame] | 70 | copts = [ |
| 71 | '-Wno-unused-parameter', |
| 72 | '-Wno-switch-enum', |
| 73 | '-Wno-attributes', |
| 74 | '-Wno-cast-align', |
| 75 | '-Wno-cast-qual', |
| 76 | '-Wno-deprecated-declarations', |
| 77 | '-Wno-error', |
| 78 | ], |
| 79 | deps = [ |
| 80 | '//third_party/ntcore_2016:ntcore', |
| 81 | '//external:ni-libraries', |
Brian Silverman | e9aa68e | 2016-02-21 01:59:18 -0500 | [diff] [blame] | 82 | '//aos/common/logging', |
Brian Silverman | cee260a | 2015-12-24 16:27:51 -0800 | [diff] [blame] | 83 | ], |
Brian Silverman | e1de690 | 2016-02-20 21:11:14 -0500 | [diff] [blame] | 84 | hdrs = _h_hdrs + _hpp_hdrs + ['wpilibc/shared/include/Task.inc'], |
Brian Silverman | cee260a | 2015-12-24 16:27:51 -0800 | [diff] [blame] | 85 | includes = _header_dirs, |
| 86 | linkopts = [ |
| 87 | '-lpthread', |
| 88 | ], |
| 89 | defines = [ |
| 90 | 'WPILIB2016=1', |
| 91 | ], |
| 92 | ) |