about summary refs log tree commit diff
path: root/absl/flags
diff options
context:
space:
mode:
Diffstat (limited to 'absl/flags')
-rw-r--r--absl/flags/BUILD.bazel35
-rw-r--r--absl/flags/CMakeLists.txt29
-rw-r--r--absl/flags/declare.h1
-rw-r--r--absl/flags/flag.cc4
-rw-r--r--absl/flags/flag.h3
-rw-r--r--absl/flags/flag_test.cc12
-rw-r--r--absl/flags/internal/commandlineflag.h6
-rw-r--r--absl/flags/internal/commandlineflag_test.cc3
-rw-r--r--absl/flags/internal/flag.cc16
-rw-r--r--absl/flags/internal/flag.h6
-rw-r--r--absl/flags/internal/parse.h1
-rw-r--r--absl/flags/internal/path_util.h1
-rw-r--r--absl/flags/internal/program_name.cc5
-rw-r--r--absl/flags/internal/program_name.h1
-rw-r--r--absl/flags/internal/program_name_test.cc3
-rw-r--r--absl/flags/internal/registry.cc15
-rw-r--r--absl/flags/internal/registry.h2
-rw-r--r--absl/flags/internal/type_erased.cc10
-rw-r--r--absl/flags/internal/type_erased.h2
-rw-r--r--absl/flags/internal/type_erased_test.cc7
-rw-r--r--absl/flags/internal/usage.cc10
-rw-r--r--absl/flags/internal/usage.h1
-rw-r--r--absl/flags/internal/usage_test.cc8
-rw-r--r--absl/flags/marshalling.cc9
-rw-r--r--absl/flags/marshalling.h1
-rw-r--r--absl/flags/marshalling_test.cc5
-rw-r--r--absl/flags/parse.cc15
-rw-r--r--absl/flags/parse.h1
-rw-r--r--absl/flags/parse_test.cc9
-rw-r--r--absl/flags/usage.cc7
-rw-r--r--absl/flags/usage.h1
-rw-r--r--absl/flags/usage_config.cc8
-rw-r--r--absl/flags/usage_config.h1
-rw-r--r--absl/flags/usage_config_test.cc3
34 files changed, 219 insertions, 22 deletions
diff --git a/absl/flags/BUILD.bazel b/absl/flags/BUILD.bazel
index 504acde8624b..6c7b2b6e7950 100644
--- a/absl/flags/BUILD.bazel
+++ b/absl/flags/BUILD.bazel
@@ -41,6 +41,7 @@ cc_library(
         ":config",
         ":handle",
         ":registry",
+        "//absl/base:config",
         "//absl/base:core_headers",
         "//absl/memory",
         "//absl/strings",
@@ -63,6 +64,8 @@ cc_library(
     ],
     deps = [
         ":path_util",
+        "//absl/base:config",
+        "//absl/base:core_headers",
         "//absl/strings",
         "//absl/synchronization",
     ],
@@ -79,6 +82,7 @@ cc_library(
         "//absl/flags:__pkg__",
     ],
     deps = [
+        "//absl/base:config",
         "//absl/strings",
     ],
 )
@@ -97,6 +101,7 @@ cc_library(
     deps = [
         ":path_util",
         ":program_name",
+        "//absl/base:config",
         "//absl/base:core_headers",
         "//absl/strings",
         "//absl/synchronization",
@@ -114,7 +119,9 @@ cc_library(
     copts = ABSL_DEFAULT_COPTS,
     linkopts = ABSL_DEFAULT_LINKOPTS,
     deps = [
+        "//absl/base:config",
         "//absl/base:core_headers",
+        "//absl/base:log_severity",
         "//absl/strings",
         "//absl/strings:str_format",
     ],
@@ -131,9 +138,10 @@ cc_library(
         "//absl/flags:__pkg__",
     ],
     deps = [
-        ":config",
         ":marshalling",
+        "//absl/base:config",
         "//absl/base:core_headers",
+        "//absl/strings",
         "//absl/types:optional",
     ],
 )
@@ -156,8 +164,8 @@ cc_library(
     deps = [
         ":config",
         ":handle",
+        "//absl/base:config",
         "//absl/base:core_headers",
-        "//absl/base:dynamic_annotations",
         "//absl/base:raw_logging_internal",
         "//absl/strings",
         "//absl/synchronization",
@@ -180,9 +188,10 @@ cc_library(
         ":flag_internal",
         ":handle",
         ":marshalling",
+        ":registry",
         "//absl/base",
+        "//absl/base:config",
         "//absl/base:core_headers",
-        "//absl/memory",
         "//absl/strings",
     ],
 )
@@ -203,11 +212,14 @@ cc_library(
     deps = [
         ":config",
         ":flag",
+        ":flag_internal",
         ":handle",
         ":path_util",
         ":program_name",
+        ":registry",
+        "//absl/base:config",
+        "//absl/base:core_headers",
         "//absl/strings",
-        "//absl/synchronization",
     ],
 )
 
@@ -223,6 +235,8 @@ cc_library(
     linkopts = ABSL_DEFAULT_LINKOPTS,
     deps = [
         ":usage_internal",
+        "//absl/base:config",
+        "//absl/base:core_headers",
         "//absl/strings",
         "//absl/synchronization",
     ],
@@ -240,10 +254,14 @@ cc_library(
     deps = [
         ":config",
         ":flag",
+        ":flag_internal",
+        ":handle",
         ":program_name",
         ":registry",
         ":usage",
         ":usage_internal",
+        "//absl/base:config",
+        "//absl/base:core_headers",
         "//absl/strings",
         "//absl/synchronization",
     ],
@@ -297,6 +315,10 @@ cc_test(
     deps = [
         ":config",
         ":flag",
+        ":flag_internal",
+        ":handle",
+        ":registry",
+        "//absl/base:core_headers",
         "//absl/strings",
         "@com_google_googletest//:gtest_main",
     ],
@@ -341,6 +363,7 @@ cc_test(
     deps = [
         ":flag",
         ":parse",
+        ":registry",
         "//absl/base:raw_logging_internal",
         "//absl/base:scoped_set_env",
         "//absl/strings",
@@ -374,9 +397,10 @@ cc_test(
     linkopts = ABSL_DEFAULT_LINKOPTS,
     deps = [
         ":flag",
+        ":handle",
+        ":marshalling",
         ":registry",
         "//absl/memory",
-        "//absl/strings",
         "@com_google_googletest//:gtest_main",
     ],
 )
@@ -412,6 +436,7 @@ cc_test(
         ":parse",
         ":path_util",
         ":program_name",
+        ":registry",
         ":usage",
         ":usage_internal",
         "//absl/memory",
diff --git a/absl/flags/CMakeLists.txt b/absl/flags/CMakeLists.txt
index 7c63821e13eb..20e66825a0aa 100644
--- a/absl/flags/CMakeLists.txt
+++ b/absl/flags/CMakeLists.txt
@@ -27,6 +27,7 @@ absl_cc_library(
   LINKOPTS
     ${ABSL_DEFAULT_LINKOPTS}
   DEPS
+    absl::config
     absl::flags_config
     absl::flags_handle
     absl::flags_registry
@@ -47,6 +48,8 @@ absl_cc_library(
   LINKOPTS
     ${ABSL_DEFAULT_LINKOPTS}
   DEPS
+    absl::config
+    absl::core_headers
     absl::flags_path_util
     absl::strings
     absl::synchronization
@@ -64,6 +67,7 @@ absl_cc_library(
   LINKOPTS
     ${ABSL_DEFAULT_LINKOPTS}
   DEPS
+    absl::config
     absl::strings
   PUBLIC
 )
@@ -81,6 +85,7 @@ absl_cc_library(
   LINKOPTS
     ${ABSL_DEFAULT_LINKOPTS}
   DEPS
+    absl::config
     absl::flags_path_util
     absl::flags_program_name
     absl::core_headers
@@ -100,7 +105,9 @@ absl_cc_library(
   LINKOPTS
     ${ABSL_DEFAULT_LINKOPTS}
   DEPS
+    absl::config
     absl::core_headers
+    absl::log_severity
     absl::strings
     absl::str_format
 )
@@ -116,6 +123,7 @@ absl_cc_library(
   LINKOPTS
     ${ABSL_DEFAULT_LINKOPTS}
   DEPS
+    absl::config
     absl::flags_config
     absl::flags_marshalling
     absl::core_headers
@@ -140,10 +148,10 @@ absl_cc_library(
   LINKOPTS
     ${ABSL_DEFAULT_LINKOPTS}
   DEPS
+    absl::config
     absl::flags_config
     absl::flags_handle
     absl::core_headers
-    absl::dynamic_annotations
     absl::raw_logging_internal
     absl::strings
     absl::synchronization
@@ -162,10 +170,12 @@ absl_cc_library(
   LINKOPTS
     ${ABSL_DEFAULT_LINKOPTS}
   DEPS
+    absl::config
     absl::flags_config
     absl::flags_handle
     absl::flags_internal
     absl::flags_marshalling
+    absl::flags_registry
     absl::base
     absl::core_headers
     absl::strings
@@ -184,11 +194,14 @@ absl_cc_library(
   LINKOPTS
     ${ABSL_DEFAULT_LINKOPTS}
   DEPS
+    absl::config
     absl::flags_config
     absl::flags
     absl::flags_handle
+    absl::flags_internal
     absl::flags_path_util
     absl::flags_program_name
+    absl::flags_registry
     absl::strings
     absl::synchronization
 )
@@ -205,6 +218,8 @@ absl_cc_library(
   LINKOPTS
     ${ABSL_DEFAULT_LINKOPTS}
   DEPS
+    absl::config
+    absl::core_headers
     absl::flags_usage_internal
     absl::strings
     absl::synchronization
@@ -223,8 +238,12 @@ absl_cc_library(
   LINKOPTS
     ${ABSL_DEFAULT_LINKOPTS}
   DEPS
+    absl::config
+    absl::core_headers
     absl::flags_config
     absl::flags
+    absl::flags_handle
+    absl::flags_internal
     absl::flags_program_name
     absl::flags_registry
     absl::flags_usage
@@ -273,8 +292,12 @@ absl_cc_test(
   COPTS
     ${ABSL_TEST_COPTS}
   DEPS
+    absl::core_headers
     absl::flags
     absl::flags_config
+    absl::flags_handle
+    absl::flags_internal
+    absl::flags_registry
     absl::strings
     gtest_main
 )
@@ -301,6 +324,7 @@ absl_cc_test(
   DEPS
     absl::flags
     absl::flags_parse
+    absl::flags_registry
     absl::raw_logging_internal
     absl::scoped_set_env
     absl::span
@@ -342,6 +366,8 @@ absl_cc_test(
     ${ABSL_TEST_COPTS}
   DEPS
     absl::flags
+    absl::flags_handle
+    absl::flags_marshalling
     absl::flags_registry
     absl::memory
     absl::strings
@@ -376,6 +402,7 @@ absl_cc_test(
     absl::flags_path_util
     absl::flags_program_name
     absl::flags_parse
+    absl::flags_registry
     absl::flags_usage
     absl::memory
     absl::strings
diff --git a/absl/flags/declare.h b/absl/flags/declare.h
index f7509ce77ffc..0f8cc6a59972 100644
--- a/absl/flags/declare.h
+++ b/absl/flags/declare.h
@@ -25,6 +25,7 @@
 #ifndef ABSL_FLAGS_DECLARE_H_
 #define ABSL_FLAGS_DECLARE_H_
 
+#include "absl/base/config.h"
 #include "absl/strings/string_view.h"
 
 namespace absl {
diff --git a/absl/flags/flag.cc b/absl/flags/flag.cc
index 491a66bcf2da..9af800796a61 100644
--- a/absl/flags/flag.cc
+++ b/absl/flags/flag.cc
@@ -15,7 +15,9 @@
 
 #include "absl/flags/flag.h"
 
-#include <cstring>
+#include "absl/base/config.h"
+#include "absl/flags/internal/commandlineflag.h"
+#include "absl/flags/internal/flag.h"
 
 namespace absl {
 ABSL_NAMESPACE_BEGIN
diff --git a/absl/flags/flag.h b/absl/flags/flag.h
index 62e73f8418d1..cc22cdb923e6 100644
--- a/absl/flags/flag.h
+++ b/absl/flags/flag.h
@@ -29,14 +29,17 @@
 #ifndef ABSL_FLAGS_FLAG_H_
 #define ABSL_FLAGS_FLAG_H_
 
+#include <string>
 #include <type_traits>
 
 #include "absl/base/attributes.h"
 #include "absl/base/casts.h"
+#include "absl/base/config.h"
 #include "absl/flags/config.h"
 #include "absl/flags/declare.h"
 #include "absl/flags/internal/commandlineflag.h"
 #include "absl/flags/internal/flag.h"
+#include "absl/flags/internal/registry.h"
 #include "absl/flags/marshalling.h"
 
 namespace absl {
diff --git a/absl/flags/flag_test.cc b/absl/flags/flag_test.cc
index 28c513b020a8..7b50fd66a110 100644
--- a/absl/flags/flag_test.cc
+++ b/absl/flags/flag_test.cc
@@ -15,15 +15,25 @@
 
 #include "absl/flags/flag.h"
 
-#include <algorithm>
+#include <stdint.h>
+
+#include <cmath>
 #include <string>
+#include <vector>
 
 #include "gtest/gtest.h"
+#include "absl/base/attributes.h"
+#include "absl/flags/config.h"
+#include "absl/flags/declare.h"
+#include "absl/flags/internal/commandlineflag.h"
+#include "absl/flags/internal/flag.h"
+#include "absl/flags/internal/registry.h"
 #include "absl/flags/usage_config.h"
 #include "absl/strings/match.h"
 #include "absl/strings/numbers.h"
 #include "absl/strings/str_cat.h"
 #include "absl/strings/str_split.h"
+#include "absl/strings/string_view.h"
 
 ABSL_DECLARE_FLAG(int64_t, mistyped_int_flag);
 ABSL_DECLARE_FLAG(std::vector<std::string>, mistyped_string_flag);
diff --git a/absl/flags/internal/commandlineflag.h b/absl/flags/internal/commandlineflag.h
index 1862306d97f4..4bc0c12fc68c 100644
--- a/absl/flags/internal/commandlineflag.h
+++ b/absl/flags/internal/commandlineflag.h
@@ -16,10 +16,16 @@
 #ifndef ABSL_FLAGS_INTERNAL_COMMANDLINEFLAG_H_
 #define ABSL_FLAGS_INTERNAL_COMMANDLINEFLAG_H_
 
+#include <stddef.h>
+#include <stdint.h>
+
 #include <memory>
+#include <string>
 
+#include "absl/base/config.h"
 #include "absl/base/macros.h"
 #include "absl/flags/marshalling.h"
+#include "absl/strings/string_view.h"
 #include "absl/types/optional.h"
 
 namespace absl {
diff --git a/absl/flags/internal/commandlineflag_test.cc b/absl/flags/internal/commandlineflag_test.cc
index 5a0c271e853d..0e8bc3133b53 100644
--- a/absl/flags/internal/commandlineflag_test.cc
+++ b/absl/flags/internal/commandlineflag_test.cc
@@ -15,7 +15,7 @@
 
 #include "absl/flags/internal/commandlineflag.h"
 
-#include <algorithm>
+#include <memory>
 #include <string>
 
 #include "gtest/gtest.h"
@@ -25,6 +25,7 @@
 #include "absl/memory/memory.h"
 #include "absl/strings/match.h"
 #include "absl/strings/str_cat.h"
+#include "absl/strings/string_view.h"
 
 ABSL_FLAG(int, int_flag, 201, "int_flag help");
 ABSL_FLAG(std::string, string_flag, "dflt",
diff --git a/absl/flags/internal/flag.cc b/absl/flags/internal/flag.cc
index 6979dc464c78..2ef8e3f6fe35 100644
--- a/absl/flags/internal/flag.cc
+++ b/absl/flags/internal/flag.cc
@@ -15,9 +15,23 @@
 
 #include "absl/flags/internal/flag.h"
 
+#include <stddef.h>
+#include <stdint.h>
+#include <string.h>
+
+#include <atomic>
+#include <memory>
+#include <string>
+#include <vector>
+
+#include "absl/base/attributes.h"
+#include "absl/base/config.h"
+#include "absl/base/const_init.h"
 #include "absl/base/optimization.h"
-#include "absl/flags/config.h"
+#include "absl/flags/internal/commandlineflag.h"
 #include "absl/flags/usage_config.h"
+#include "absl/strings/str_cat.h"
+#include "absl/strings/string_view.h"
 #include "absl/synchronization/mutex.h"
 
 namespace absl {
diff --git a/absl/flags/internal/flag.h b/absl/flags/internal/flag.h
index a5edfd17d5cc..ec467c3194ef 100644
--- a/absl/flags/internal/flag.h
+++ b/absl/flags/internal/flag.h
@@ -16,15 +16,21 @@
 #ifndef ABSL_FLAGS_INTERNAL_FLAG_H_
 #define ABSL_FLAGS_INTERNAL_FLAG_H_
 
+#include <stdint.h>
+
 #include <atomic>
 #include <cstring>
+#include <memory>
+#include <string>
 
+#include "absl/base/config.h"
 #include "absl/base/thread_annotations.h"
 #include "absl/flags/config.h"
 #include "absl/flags/internal/commandlineflag.h"
 #include "absl/flags/internal/registry.h"
 #include "absl/memory/memory.h"
 #include "absl/strings/str_cat.h"
+#include "absl/strings/string_view.h"
 #include "absl/synchronization/mutex.h"
 
 namespace absl {
diff --git a/absl/flags/internal/parse.h b/absl/flags/internal/parse.h
index e534635b700a..03e8a07bf3ab 100644
--- a/absl/flags/internal/parse.h
+++ b/absl/flags/internal/parse.h
@@ -19,6 +19,7 @@
 #include <string>
 #include <vector>
 
+#include "absl/base/config.h"
 #include "absl/flags/declare.h"
 
 ABSL_DECLARE_FLAG(std::vector<std::string>, flagfile);
diff --git a/absl/flags/internal/path_util.h b/absl/flags/internal/path_util.h
index 4169637731e5..365c83052266 100644
--- a/absl/flags/internal/path_util.h
+++ b/absl/flags/internal/path_util.h
@@ -16,6 +16,7 @@
 #ifndef ABSL_FLAGS_INTERNAL_PATH_UTIL_H_
 #define ABSL_FLAGS_INTERNAL_PATH_UTIL_H_
 
+#include "absl/base/config.h"
 #include "absl/strings/match.h"
 #include "absl/strings/string_view.h"
 
diff --git a/absl/flags/internal/program_name.cc b/absl/flags/internal/program_name.cc
index df0c3309d37c..51d698da8b31 100644
--- a/absl/flags/internal/program_name.cc
+++ b/absl/flags/internal/program_name.cc
@@ -17,7 +17,12 @@
 
 #include <string>
 
+#include "absl/base/attributes.h"
+#include "absl/base/config.h"
+#include "absl/base/const_init.h"
+#include "absl/base/thread_annotations.h"
 #include "absl/flags/internal/path_util.h"
+#include "absl/strings/string_view.h"
 #include "absl/synchronization/mutex.h"
 
 namespace absl {
diff --git a/absl/flags/internal/program_name.h b/absl/flags/internal/program_name.h
index 317a7c5c9169..b99b94fe18ab 100644
--- a/absl/flags/internal/program_name.h
+++ b/absl/flags/internal/program_name.h
@@ -18,6 +18,7 @@
 
 #include <string>
 
+#include "absl/base/config.h"
 #include "absl/strings/string_view.h"
 
 // --------------------------------------------------------------------
diff --git a/absl/flags/internal/program_name_test.cc b/absl/flags/internal/program_name_test.cc
index ed69218b8395..269142f2255f 100644
--- a/absl/flags/internal/program_name_test.cc
+++ b/absl/flags/internal/program_name_test.cc
@@ -15,8 +15,11 @@
 
 #include "absl/flags/internal/program_name.h"
 
+#include <string>
+
 #include "gtest/gtest.h"
 #include "absl/strings/match.h"
+#include "absl/strings/string_view.h"
 
 namespace {
 
diff --git a/absl/flags/internal/registry.cc b/absl/flags/internal/registry.cc
index ae5afd42ee36..7889b1f3403f 100644
--- a/absl/flags/internal/registry.cc
+++ b/absl/flags/internal/registry.cc
@@ -15,9 +15,20 @@
 
 #include "absl/flags/internal/registry.h"
 
-#include "absl/base/dynamic_annotations.h"
+#include <assert.h>
+#include <stdlib.h>
+
+#include <functional>
+#include <map>
+#include <memory>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "absl/base/config.h"
 #include "absl/base/internal/raw_logging.h"
-#include "absl/flags/config.h"
+#include "absl/base/thread_annotations.h"
+#include "absl/flags/internal/commandlineflag.h"
 #include "absl/flags/usage_config.h"
 #include "absl/strings/str_cat.h"
 #include "absl/strings/string_view.h"
diff --git a/absl/flags/internal/registry.h b/absl/flags/internal/registry.h
index d2145a8acfa0..99cb685b15d4 100644
--- a/absl/flags/internal/registry.h
+++ b/absl/flags/internal/registry.h
@@ -20,8 +20,10 @@
 #include <map>
 #include <string>
 
+#include "absl/base/config.h"
 #include "absl/base/macros.h"
 #include "absl/flags/internal/commandlineflag.h"
+#include "absl/strings/string_view.h"
 
 // --------------------------------------------------------------------
 // Global flags registry API.
diff --git a/absl/flags/internal/type_erased.cc b/absl/flags/internal/type_erased.cc
index 7910db8fd86e..490bc4ebae25 100644
--- a/absl/flags/internal/type_erased.cc
+++ b/absl/flags/internal/type_erased.cc
@@ -15,10 +15,16 @@
 
 #include "absl/flags/internal/type_erased.h"
 
+#include <assert.h>
+
+#include <string>
+
+#include "absl/base/config.h"
 #include "absl/base/internal/raw_logging.h"
-#include "absl/flags/config.h"
+#include "absl/flags/internal/commandlineflag.h"
+#include "absl/flags/internal/registry.h"
 #include "absl/flags/usage_config.h"
-#include "absl/strings/str_cat.h"
+#include "absl/strings/string_view.h"
 
 namespace absl {
 ABSL_NAMESPACE_BEGIN
diff --git a/absl/flags/internal/type_erased.h b/absl/flags/internal/type_erased.h
index 6cbd84cd1996..188429c77129 100644
--- a/absl/flags/internal/type_erased.h
+++ b/absl/flags/internal/type_erased.h
@@ -18,8 +18,10 @@
 
 #include <string>
 
+#include "absl/base/config.h"
 #include "absl/flags/internal/commandlineflag.h"
 #include "absl/flags/internal/registry.h"
+#include "absl/strings/string_view.h"
 
 // --------------------------------------------------------------------
 // Registry interfaces operating on type erased handles.
diff --git a/absl/flags/internal/type_erased_test.cc b/absl/flags/internal/type_erased_test.cc
index ac749a607548..033e00e42e8a 100644
--- a/absl/flags/internal/type_erased_test.cc
+++ b/absl/flags/internal/type_erased_test.cc
@@ -15,12 +15,15 @@
 
 #include "absl/flags/internal/type_erased.h"
 
-#include <cmath>
+#include <memory>
+#include <string>
 
 #include "gtest/gtest.h"
 #include "absl/flags/flag.h"
+#include "absl/flags/internal/commandlineflag.h"
+#include "absl/flags/internal/registry.h"
+#include "absl/flags/marshalling.h"
 #include "absl/memory/memory.h"
-#include "absl/strings/str_cat.h"
 
 ABSL_FLAG(int, int_flag, 1, "int_flag help");
 ABSL_FLAG(std::string, string_flag, "dflt", "string_flag help");
diff --git a/absl/flags/internal/usage.cc b/absl/flags/internal/usage.cc
index 4602c0196924..ff9071619484 100644
--- a/absl/flags/internal/usage.cc
+++ b/absl/flags/internal/usage.cc
@@ -15,18 +15,24 @@
 
 #include "absl/flags/internal/usage.h"
 
+#include <functional>
 #include <map>
+#include <ostream>
 #include <string>
+#include <utility>
+#include <vector>
 
+#include "absl/base/config.h"
 #include "absl/flags/flag.h"
+#include "absl/flags/internal/commandlineflag.h"
+#include "absl/flags/internal/flag.h"
 #include "absl/flags/internal/path_util.h"
 #include "absl/flags/internal/program_name.h"
+#include "absl/flags/internal/registry.h"
 #include "absl/flags/usage_config.h"
-#include "absl/strings/ascii.h"
 #include "absl/strings/str_cat.h"
 #include "absl/strings/str_split.h"
 #include "absl/strings/string_view.h"
-#include "absl/synchronization/mutex.h"
 
 ABSL_FLAG(bool, help, false,
           "show help on important flags for this binary [tip: all flags can "
diff --git a/absl/flags/internal/usage.h b/absl/flags/internal/usage.h
index 5e8ca6a1f81f..6b080fd1eeec 100644
--- a/absl/flags/internal/usage.h
+++ b/absl/flags/internal/usage.h
@@ -19,6 +19,7 @@
 #include <iosfwd>
 #include <string>
 
+#include "absl/base/config.h"
 #include "absl/flags/declare.h"
 #include "absl/flags/internal/commandlineflag.h"
 #include "absl/strings/string_view.h"
diff --git a/absl/flags/internal/usage_test.cc b/absl/flags/internal/usage_test.cc
index 1e9ffdf70ba5..e1e57e557091 100644
--- a/absl/flags/internal/usage_test.cc
+++ b/absl/flags/internal/usage_test.cc
@@ -15,17 +15,23 @@
 
 #include "absl/flags/internal/usage.h"
 
+#include <stdint.h>
+
 #include <sstream>
+#include <string>
 
 #include "gtest/gtest.h"
+#include "absl/flags/declare.h"
 #include "absl/flags/flag.h"
+#include "absl/flags/internal/parse.h"
 #include "absl/flags/internal/path_util.h"
 #include "absl/flags/internal/program_name.h"
-#include "absl/flags/parse.h"
+#include "absl/flags/internal/registry.h"
 #include "absl/flags/usage.h"
 #include "absl/flags/usage_config.h"
 #include "absl/memory/memory.h"
 #include "absl/strings/match.h"
+#include "absl/strings/string_view.h"
 
 ABSL_FLAG(int, usage_reporting_test_flag_01, 101,
           "usage_reporting_test_flag_01 help message");
diff --git a/absl/flags/marshalling.cc b/absl/flags/marshalling.cc
index 87020a2741c8..6f2ddda8c3f7 100644
--- a/absl/flags/marshalling.cc
+++ b/absl/flags/marshalling.cc
@@ -15,16 +15,25 @@
 
 #include "absl/flags/marshalling.h"
 
+#include <stddef.h>
+
+#include <cmath>
 #include <limits>
+#include <string>
 #include <type_traits>
+#include <vector>
 
+#include "absl/base/config.h"
+#include "absl/base/log_severity.h"
 #include "absl/base/macros.h"
+#include "absl/strings/ascii.h"
 #include "absl/strings/match.h"
 #include "absl/strings/numbers.h"
 #include "absl/strings/str_cat.h"
 #include "absl/strings/str_format.h"
 #include "absl/strings/str_join.h"
 #include "absl/strings/str_split.h"
+#include "absl/strings/string_view.h"
 
 namespace absl {
 ABSL_NAMESPACE_BEGIN
diff --git a/absl/flags/marshalling.h b/absl/flags/marshalling.h
index b9fca7524026..1f3dc2dcb9dd 100644
--- a/absl/flags/marshalling.h
+++ b/absl/flags/marshalling.h
@@ -165,6 +165,7 @@
 #include <string>
 #include <vector>
 
+#include "absl/base/config.h"
 #include "absl/strings/string_view.h"
 
 namespace absl {
diff --git a/absl/flags/marshalling_test.cc b/absl/flags/marshalling_test.cc
index 37cd1940e34d..4a64ce11a165 100644
--- a/absl/flags/marshalling_test.cc
+++ b/absl/flags/marshalling_test.cc
@@ -15,7 +15,12 @@
 
 #include "absl/flags/marshalling.h"
 
+#include <stdint.h>
+
 #include <cmath>
+#include <limits>
+#include <string>
+#include <vector>
 
 #include "gtest/gtest.h"
 
diff --git a/absl/flags/parse.cc b/absl/flags/parse.cc
index a288ace843fe..812e498189b7 100644
--- a/absl/flags/parse.cc
+++ b/absl/flags/parse.cc
@@ -17,21 +17,36 @@
 
 #include <stdlib.h>
 
+#include <algorithm>
 #include <fstream>
 #include <iostream>
+#include <iterator>
+#include <string>
 #include <tuple>
+#include <utility>
+#include <vector>
 
 #ifdef _WIN32
 #include <windows.h>
 #endif
 
+#include "absl/base/attributes.h"
+#include "absl/base/config.h"
+#include "absl/base/const_init.h"
+#include "absl/base/thread_annotations.h"
+#include "absl/flags/config.h"
 #include "absl/flags/flag.h"
+#include "absl/flags/internal/commandlineflag.h"
+#include "absl/flags/internal/flag.h"
+#include "absl/flags/internal/parse.h"
 #include "absl/flags/internal/program_name.h"
 #include "absl/flags/internal/registry.h"
 #include "absl/flags/internal/usage.h"
 #include "absl/flags/usage.h"
 #include "absl/flags/usage_config.h"
+#include "absl/strings/ascii.h"
 #include "absl/strings/str_cat.h"
+#include "absl/strings/string_view.h"
 #include "absl/strings/strip.h"
 #include "absl/synchronization/mutex.h"
 
diff --git a/absl/flags/parse.h b/absl/flags/parse.h
index 871fc993b616..f37b0602e662 100644
--- a/absl/flags/parse.h
+++ b/absl/flags/parse.h
@@ -26,6 +26,7 @@
 #include <string>
 #include <vector>
 
+#include "absl/base/config.h"
 #include "absl/flags/internal/parse.h"
 
 namespace absl {
diff --git a/absl/flags/parse_test.cc b/absl/flags/parse_test.cc
index f89fa96527b7..6f49377a935d 100644
--- a/absl/flags/parse_test.cc
+++ b/absl/flags/parse_test.cc
@@ -15,15 +15,22 @@
 
 #include "absl/flags/parse.h"
 
+#include <stdlib.h>
+
 #include <fstream>
+#include <string>
+#include <vector>
 
 #include "gmock/gmock.h"
 #include "gtest/gtest.h"
 #include "absl/base/internal/raw_logging.h"
 #include "absl/base/internal/scoped_set_env.h"
+#include "absl/flags/declare.h"
 #include "absl/flags/flag.h"
-#include "absl/strings/match.h"
+#include "absl/flags/internal/parse.h"
+#include "absl/flags/internal/registry.h"
 #include "absl/strings/str_cat.h"
+#include "absl/strings/string_view.h"
 #include "absl/strings/substitute.h"
 #include "absl/types/span.h"
 
diff --git a/absl/flags/usage.cc b/absl/flags/usage.cc
index 60459bc2a476..452f667512e8 100644
--- a/absl/flags/usage.cc
+++ b/absl/flags/usage.cc
@@ -14,9 +14,16 @@
 // limitations under the License.
 #include "absl/flags/usage.h"
 
+#include <stdlib.h>
+
 #include <string>
 
+#include "absl/base/attributes.h"
+#include "absl/base/config.h"
+#include "absl/base/const_init.h"
+#include "absl/base/thread_annotations.h"
 #include "absl/flags/internal/usage.h"
+#include "absl/strings/string_view.h"
 #include "absl/synchronization/mutex.h"
 
 namespace absl {
diff --git a/absl/flags/usage.h b/absl/flags/usage.h
index 299e5c3414f5..ad12ab7ad902 100644
--- a/absl/flags/usage.h
+++ b/absl/flags/usage.h
@@ -16,6 +16,7 @@
 #ifndef ABSL_FLAGS_USAGE_H_
 #define ABSL_FLAGS_USAGE_H_
 
+#include "absl/base/config.h"
 #include "absl/strings/string_view.h"
 
 // --------------------------------------------------------------------
diff --git a/absl/flags/usage_config.cc b/absl/flags/usage_config.cc
index 21a2dd018b4a..2d837ec5907c 100644
--- a/absl/flags/usage_config.cc
+++ b/absl/flags/usage_config.cc
@@ -16,12 +16,16 @@
 #include "absl/flags/usage_config.h"
 
 #include <iostream>
-#include <memory>
+#include <string>
 
 #include "absl/base/attributes.h"
+#include "absl/base/config.h"
+#include "absl/base/const_init.h"
+#include "absl/base/thread_annotations.h"
 #include "absl/flags/internal/path_util.h"
 #include "absl/flags/internal/program_name.h"
-#include "absl/strings/str_cat.h"
+#include "absl/strings/match.h"
+#include "absl/strings/string_view.h"
 #include "absl/strings/strip.h"
 #include "absl/synchronization/mutex.h"
 
diff --git a/absl/flags/usage_config.h b/absl/flags/usage_config.h
index e6428e0a6267..0ed7e1b47c0c 100644
--- a/absl/flags/usage_config.h
+++ b/absl/flags/usage_config.h
@@ -27,6 +27,7 @@
 #include <functional>
 #include <string>
 
+#include "absl/base/config.h"
 #include "absl/strings/string_view.h"
 
 // -----------------------------------------------------------------------------
diff --git a/absl/flags/usage_config_test.cc b/absl/flags/usage_config_test.cc
index 3bde13af8f84..70eca30b8fa2 100644
--- a/absl/flags/usage_config_test.cc
+++ b/absl/flags/usage_config_test.cc
@@ -15,10 +15,13 @@
 
 #include "absl/flags/usage_config.h"
 
+#include <string>
+
 #include "gtest/gtest.h"
 #include "absl/flags/internal/path_util.h"
 #include "absl/flags/internal/program_name.h"
 #include "absl/strings/match.h"
+#include "absl/strings/string_view.h"
 
 namespace {