Set up for using WPILib 2016
It works if you switch which line in //aos/externals:BUILD is commented
out.
Change-Id: I19f4d7a1d95554cff0dc29f9fd4a163b9d0cafd5
diff --git a/NO_BUILD_AMD64 b/NO_BUILD_AMD64
index bfc83b1..c29bb2c 100644
--- a/NO_BUILD_AMD64
+++ b/NO_BUILD_AMD64
@@ -1,5 +1,7 @@
-//aos/externals:wpilib
-//aos/externals:wpilib_2015
+-//third_party/allwpilib_2016/...
+-//third_party/ntcore_2016/...
-//frc971/wpilib/...
-//y2014/wpilib/...
-//y2014:download
diff --git a/WORKSPACE b/WORKSPACE
index 221437a..0a1c4b7 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -47,3 +47,16 @@
name = 'python-glog',
actual = '@python-glog-repo//:glog',
)
+
+new_http_archive(
+ name = 'allwpilib_ni-libraries_repo',
+ build_file = 'debian/ni-libraries.BUILD',
+ sha256 = '821687afbee2d7531fb3e47d8d58ac10005695e59685be3ac3aa00b3179faf52',
+ url = 'http://frc971.org/Build-Dependencies/allwpilib_ni-libraries_20749ed.tar.gz',
+ strip_prefix = 'ni-libraries',
+)
+
+bind(
+ name = 'ni-libraries',
+ actual = '@allwpilib_ni-libraries_repo//:ni-libraries',
+)
diff --git a/aos/externals/BUILD b/aos/externals/BUILD
index e40bbbb..d85de28 100644
--- a/aos/externals/BUILD
+++ b/aos/externals/BUILD
@@ -1,5 +1,4 @@
_header_dirs = [
- 'forwpilib',
'allwpilib/wpilibc/wpilibC++/include',
'allwpilib/wpilibc/wpilibC++Devices/include',
'allwpilib/hal/include',
@@ -22,7 +21,6 @@
'allwpilib/wpilibc/wpilibC++Devices/include/NetworkCommunication/FRCComm.h',
]) + [
'allwpilib/hal/lib/Athena/NetworkCommunication/FRCComm.h',
- 'forwpilib/dma.cc',
'allwpilib/ni-libraries/libFRC_NetworkCommunication.so.1.5.0',
'allwpilib/ni-libraries/libRoboRIO_FRC_ChipObject.so.1.2.0',
'allwpilib/ni-libraries/libNiFpgaLv.so.14.0.0',
@@ -51,5 +49,15 @@
visibility = ['//visibility:public'],
deps = [
':wpilib_2015',
+ #'//third_party/allwpilib_2016:wpilib',
+ ],
+ includes = [
+ 'forwpilib',
+ ],
+ hdrs = [
+ 'forwpilib/dma.h',
+ ],
+ srcs = [
+ 'forwpilib/dma.cc',
],
)
diff --git a/debian/ni-libraries.BUILD b/debian/ni-libraries.BUILD
new file mode 100644
index 0000000..4e809cc
--- /dev/null
+++ b/debian/ni-libraries.BUILD
@@ -0,0 +1,14 @@
+cc_library(
+ name = 'ni-libraries',
+ visibility = ['//visibility:public'],
+ srcs = [
+ 'libFRC_NetworkCommunication.so.16.0.0',
+ 'libRoboRIO_FRC_ChipObject.so.16.0.0',
+ 'libNiFpgaLv.so.15.0.0',
+ 'libNiFpga.so.15.0.0',
+ 'libNiRioSrv.so.15.0.0',
+ 'libspi.so.1.0.0',
+ 'libi2c.so.1.0.0',
+ ],
+ linkstatic = True,
+)
diff --git a/doc/allwpilib_ni-libraries_tarball.sh b/doc/allwpilib_ni-libraries_tarball.sh
new file mode 100755
index 0000000..61fccd4
--- /dev/null
+++ b/doc/allwpilib_ni-libraries_tarball.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+# A script to generate a allwpilib_ni-libraries_bla.tar.gz file from a given
+# revision of allwpilib.
+
+# Example: ./doc/allwpilib_ni-libraries_tarball.sh \
+# https://usfirst.collab.net/gerrit/allwpilib master
+
+set -e
+set -u
+set -o pipefail
+
+if [ $# -ne 2 ]; then
+ echo "Usage: $0 remote ref" >&2
+ exit 1
+fi
+
+REMOTE="$1"
+REF="$2"
+
+git fetch "${REMOTE}" "${REF}"
+
+git archive \
+ -o allwpilib_ni-libraries_$(git rev-parse --short FETCH_HEAD).tar.gz \
+ FETCH_HEAD ni-libraries
diff --git a/frc971/wpilib/LPD8806.cc b/frc971/wpilib/LPD8806.cc
index 6f6304f..d82e38f 100644
--- a/frc971/wpilib/LPD8806.cc
+++ b/frc971/wpilib/LPD8806.cc
@@ -3,6 +3,7 @@
#include "frc971/queues/gyro.q.h"
#include "SPI.h"
+#undef ERROR
namespace frc971 {
namespace wpilib {
diff --git a/frc971/wpilib/LPD8806.h b/frc971/wpilib/LPD8806.h
index 48f17ae..84c4667 100644
--- a/frc971/wpilib/LPD8806.h
+++ b/frc971/wpilib/LPD8806.h
@@ -7,6 +7,7 @@
#include "aos/common/mutex.h"
#include "SPI.h"
+#undef ERROR
namespace frc971 {
namespace wpilib {
diff --git a/frc971/wpilib/wpilib_interface.cc b/frc971/wpilib/wpilib_interface.cc
index 68e0771..2129ec3 100644
--- a/frc971/wpilib/wpilib_interface.cc
+++ b/frc971/wpilib/wpilib_interface.cc
@@ -1,11 +1,12 @@
#include "frc971/wpilib/wpilib_interface.h"
-#include "DriverStation.h"
-#include "ControllerPower.h"
-
#include "aos/common/messages/robot_state.q.h"
#include "aos/common/logging/queue_logging.h"
+#include "DriverStation.h"
+#include "ControllerPower.h"
+#undef ERROR
+
namespace frc971 {
namespace wpilib {
diff --git a/third_party/allwpilib_2016/BUILD b/third_party/allwpilib_2016/BUILD
new file mode 100644
index 0000000..330b330
--- /dev/null
+++ b/third_party/allwpilib_2016/BUILD
@@ -0,0 +1,49 @@
+licenses(['notice'])
+
+_header_dirs = [
+ 'wpilibc/wpilibC++/include',
+ 'wpilibc/wpilibC++Devices/include',
+ 'wpilibc/shared/include',
+ 'wpilibc/Athena/include',
+ 'hal/include',
+ 'hal/lib/Athena/FRC_FPGA_ChipObject',
+ 'hal/lib/Athena',
+]
+
+cc_library(
+ name = 'wpilib',
+ visibility = ['//visibility:public'],
+ 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/*.cpp',
+
+ 'networktables/ntcore/src/**/*.cpp',
+ ]),
+ copts = [
+ '-Wno-unused-parameter',
+ '-Wno-switch-enum',
+ '-Wno-attributes',
+ '-Wno-cast-align',
+ '-Wno-cast-qual',
+ '-Wno-deprecated-declarations',
+ '-Wno-error',
+ ],
+ deps = [
+ '//third_party/ntcore_2016:ntcore',
+ '//external:ni-libraries',
+ ],
+ hdrs = glob([d + '/**/*.h' for d in _header_dirs]) + glob([d + '/**/*.hpp' for d in _header_dirs]) + ['wpilibc/shared/include/Task.inc'],
+ includes = _header_dirs,
+ linkopts = [
+ '-lpthread',
+ ],
+ defines = [
+ 'WPILIB2016=1',
+ ],
+)
diff --git a/third_party/ntcore_2016/BUILD b/third_party/ntcore_2016/BUILD
new file mode 100644
index 0000000..aa53ab1
--- /dev/null
+++ b/third_party/ntcore_2016/BUILD
@@ -0,0 +1,23 @@
+licenses(['notice'])
+
+cc_library(
+ name = 'ntcore',
+ visibility = ['//visibility:public'],
+ srcs = glob([
+ 'src/**/*.cpp',
+ 'src/**/*.h',
+ ]),
+ copts = [
+ '-Wno-switch-enum',
+ '-Wno-cast-align',
+ ],
+ hdrs = glob([
+ 'include/**/*.h',
+ ]),
+ includes = [
+ 'include',
+ ],
+ linkopts = [
+ '-lpthread',
+ ],
+)