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/y2022/vision/calibrate_extrinsics.cc b/y2022/vision/calibrate_extrinsics.cc
index 7b53d67..3388853 100644
--- a/y2022/vision/calibrate_extrinsics.cc
+++ b/y2022/vision/calibrate_extrinsics.cc
@@ -1,5 +1,6 @@
 #include "Eigen/Dense"
 #include "Eigen/Geometry"
+#include "absl/flags/flag.h"
 #include "absl/strings/str_format.h"
 
 #include "aos/events/logging/log_reader.h"
@@ -14,16 +15,17 @@
 #include "frc971/wpilib/imu_batch_generated.h"
 #include "y2022/control_loops/superstructure/superstructure_status_generated.h"
 
-DEFINE_string(pi, "pi-7971-2", "Pi name to calibrate.");
-DEFINE_bool(plot, false, "Whether to plot the resulting data.");
-DEFINE_bool(turret, true, "If true, the camera is on the turret");
-DEFINE_string(target_type, "charuco",
-              "Type of target: aruco|charuco|charuco_diamond");
-DEFINE_string(image_channel, "/camera", "Channel to listen for images on");
-DEFINE_string(output_logs, "/tmp/calibration/",
-              "Output folder for visualization logs.");
-DEFINE_string(base_intrinsics, "",
-              "Intrinsics to use for extrinsics calibration.");
+ABSL_FLAG(std::string, pi, "pi-7971-2", "Pi name to calibrate.");
+ABSL_FLAG(bool, plot, false, "Whether to plot the resulting data.");
+ABSL_FLAG(bool, turret, true, "If true, the camera is on the turret");
+ABSL_FLAG(std::string, target_type, "charuco",
+          "Type of target: aruco|charuco|charuco_diamond");
+ABSL_FLAG(std::string, image_channel, "/camera",
+          "Channel to listen for images on");
+ABSL_FLAG(std::string, output_logs, "/tmp/calibration/",
+          "Output folder for visualization logs.");
+ABSL_FLAG(std::string, base_intrinsics, "",
+          "Intrinsics to use for extrinsics calibration.");
 
 namespace frc971::vision {
 namespace chrono = std::chrono;
@@ -36,7 +38,7 @@
 void Main(int argc, char **argv) {
   CalibrationData data;
   std::optional<uint16_t> pi_number =
-      aos::network::ParsePiOrOrinNumber(FLAGS_pi);
+      aos::network::ParsePiOrOrinNumber(absl::GetFlag(FLAGS_pi));
   CHECK(pi_number);
   const std::string pi_name = absl::StrCat("pi", *pi_number);
   LOG(INFO) << "Pi " << *pi_number;
@@ -83,29 +85,30 @@
     std::unique_ptr<aos::EventLoop> logger_loop =
         factory.MakeEventLoop("logger", pi_node);
     aos::logger::Logger logger(logger_loop.get());
-    logger.StartLoggingOnRun(FLAGS_output_logs);
+    logger.StartLoggingOnRun(absl::GetFlag(FLAGS_output_logs));
 
     TargetType target_type = TargetType::kCharuco;
-    if (FLAGS_target_type == "aruco") {
+    if (absl::GetFlag(FLAGS_target_type) == "aruco") {
       target_type = TargetType::kAruco;
-    } else if (FLAGS_target_type == "charuco") {
+    } else if (absl::GetFlag(FLAGS_target_type) == "charuco") {
       target_type = TargetType::kCharuco;
-    } else if (FLAGS_target_type == "charuco_diamond") {
+    } else if (absl::GetFlag(FLAGS_target_type) == "charuco_diamond") {
       target_type = TargetType::kCharucoDiamond;
     } else {
-      LOG(FATAL) << "Unknown target type: " << FLAGS_target_type
+      LOG(FATAL) << "Unknown target type: " << absl::GetFlag(FLAGS_target_type)
                  << ", expected: aruco|charuco|charuco_diamond";
     }
 
     aos::FlatbufferDetachedBuffer<calibration::CameraCalibration> intrinsics =
         aos::JsonFileToFlatbuffer<calibration::CameraCalibration>(
-            FLAGS_base_intrinsics);
+            absl::GetFlag(FLAGS_base_intrinsics));
     // Now, hook Calibration up to everything.
     Calibration extractor(&factory, pi_event_loop.get(), imu_event_loop.get(),
-                          FLAGS_pi, &intrinsics.message(), target_type,
-                          FLAGS_image_channel, &data);
+                          absl::GetFlag(FLAGS_pi), &intrinsics.message(),
+                          target_type, absl::GetFlag(FLAGS_image_channel),
+                          &data);
 
-    if (FLAGS_turret) {
+    if (absl::GetFlag(FLAGS_turret)) {
       aos::NodeEventLoopFactory *roborio_factory =
           factory.GetNodeEventLoopFactory(roborio_node->name()->string_view());
       roborio_event_loop->MakeWatcher(
@@ -253,12 +256,12 @@
                    nominal_board_to_world.inverse())
                    .transpose();
 
-  if (FLAGS_visualize) {
+  if (absl::GetFlag(FLAGS_visualize)) {
     LOG(INFO) << "Showing visualization";
     Visualize(data, calibration_parameters);
   }
 
-  if (FLAGS_plot) {
+  if (absl::GetFlag(FLAGS_plot)) {
     Plot(data, calibration_parameters);
   }
 }  // namespace vision