Move over to ABSL logging and flags.

Removes gperftools too since that wants gflags.

Here come the fireworks.

Change-Id: I79cb7bcf60f1047fbfa28bfffc21a0fd692e4b1c
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
diff --git a/frc971/imu/imu_calibrator-tmpl.h b/frc971/imu/imu_calibrator-tmpl.h
index 6743106..49d5c20 100644
--- a/frc971/imu/imu_calibrator-tmpl.h
+++ b/frc971/imu/imu_calibrator-tmpl.h
@@ -1,7 +1,10 @@
+#include "absl/flags/declare.h"
+#include "absl/flags/flag.h"
+
 #include "frc971/imu/imu_calibrator.h"
 #include "frc971/math/interpolate.h"
 
-DECLARE_int32(imu_zeroing_buffer);
+ABSL_DECLARE_FLAG(int32_t, imu_zeroing_buffer);
 
 namespace frc971::imu {
 
@@ -26,7 +29,8 @@
   const bool plausibly_stationary =
       reading.gyro.squaredNorm() < kGyroMaxZeroingValue * kGyroMaxZeroingValue;
   bool stationary = plausibly_stationary;
-  int earliest_affected_index = readings.size() - FLAGS_imu_zeroing_buffer;
+  int earliest_affected_index =
+      readings.size() - absl::GetFlag(FLAGS_imu_zeroing_buffer);
   for (size_t index = std::max(0, earliest_affected_index);
        index < readings.size(); ++index) {
     if (!plausibly_stationary) {
@@ -75,7 +79,8 @@
 template <typename Scalar>
 void ImuCalibrator<Scalar>::EvaluateRelativeResiduals() {
   for (const auto &readings : imu_readings_) {
-    CHECK_LT(static_cast<size_t>(FLAGS_imu_zeroing_buffer * 2), readings.size())
+    CHECK_LT(static_cast<size_t>(absl::GetFlag(FLAGS_imu_zeroing_buffer) * 2),
+             readings.size())
         << ": Insufficient readings to perform calibration.";
   }
   Scalar base_clock = imu_readings_[origin_index_][0].capture_time_adjusted;
diff --git a/frc971/imu/imu_calibrator.cc b/frc971/imu/imu_calibrator.cc
index 03fa377..73e16e0 100644
--- a/frc971/imu/imu_calibrator.cc
+++ b/frc971/imu/imu_calibrator.cc
@@ -1,6 +1,6 @@
 #include "frc971/imu/imu_calibrator.h"
 
-DEFINE_int32(
-    imu_zeroing_buffer, 100,
+ABSL_FLAG(
+    int32_t, imu_zeroing_buffer, 100,
     "We will only consider readings stationary for purposes if calibration if "
     "this many readings to either side appear to be stationary.");
diff --git a/frc971/imu/imu_calibrator.h b/frc971/imu/imu_calibrator.h
index 58ff12b..d8b7aab 100644
--- a/frc971/imu/imu_calibrator.h
+++ b/frc971/imu/imu_calibrator.h
@@ -6,10 +6,11 @@
 #include <tuple>
 #include <vector>
 
+#include "absl/log/check.h"
+#include "absl/log/log.h"
 #include "absl/strings/str_format.h"
 #include "absl/strings/str_join.h"
 #include "ceres/ceres.h"
-#include "glog/logging.h"
 #include <Eigen/Core>
 #include <Eigen/Geometry>
 
diff --git a/frc971/imu/imu_calibrator_test.cc b/frc971/imu/imu_calibrator_test.cc
index a341b2a..2546da4 100644
--- a/frc971/imu/imu_calibrator_test.cc
+++ b/frc971/imu/imu_calibrator_test.cc
@@ -2,6 +2,7 @@
 
 #include <random>
 
+#include "absl/flags/reflection.h"
 #include "gtest/gtest.h"
 
 #include "frc971/imu/imu_calibrator_solver.h"
@@ -140,7 +141,7 @@
 // the IMU inputs; feeding in a sine wave works much better for allowing the
 // solver to estimate the offset.
 TEST(ImuCalibratorTest, TimeOffsetTest) {
-  gflags::FlagSaver flag_saver;
+  absl::FlagSaver flag_saver;
 
   std::vector<ImuConfig<double>> nominal_imus = {
       ImuConfig<double>{true, std::nullopt},