Creating webrtc/modules:module_api

This target keeps track of .h the files under webrtc/modules/include/
that are not part of any target.
If a .h file is not part of a target the 'gn check' utility is not
able to spot if a target is missing a dependency because even if
it parses '#include' directives it is not able to find a target that
contains these headers.

BUG=webrtc:7513
NOTRY=True

Review-Url: https://codereview.webrtc.org/2838873002
Cr-Commit-Position: refs/heads/master@{#17880}
diff --git a/webrtc/api/BUILD.gn b/webrtc/api/BUILD.gn
index b8ad905..3fa61a5 100644
--- a/webrtc/api/BUILD.gn
+++ b/webrtc/api/BUILD.gn
@@ -156,6 +156,7 @@
 
   deps = [
     "../base:rtc_base_approved",
+    "../modules:module_api",
   ]
 }
 
diff --git a/webrtc/audio/utility/BUILD.gn b/webrtc/audio/utility/BUILD.gn
index 2ef5eba..ac477e4 100644
--- a/webrtc/audio/utility/BUILD.gn
+++ b/webrtc/audio/utility/BUILD.gn
@@ -22,6 +22,7 @@
   deps = [
     "../..:webrtc_common",
     "../../base:rtc_base_approved",
+    "../../modules:module_api",
     "../../modules/audio_coding:audio_format_conversion",
   ]
 }
@@ -35,6 +36,7 @@
     deps = [
       ":audio_frame_operations",
       "../../base:rtc_base_approved",
+      "../../modules:module_api",
       "../../test:test_support",
       "//testing/gtest",
     ]
diff --git a/webrtc/common_video/BUILD.gn b/webrtc/common_video/BUILD.gn
index 152f98b..6b7eb01 100644
--- a/webrtc/common_video/BUILD.gn
+++ b/webrtc/common_video/BUILD.gn
@@ -59,6 +59,7 @@
     "..:webrtc_common",
     "../base:rtc_base",
     "../base:rtc_task_queue",
+    "../modules:module_api",
     "../system_wrappers",
   ]
   public_deps = [
diff --git a/webrtc/modules/BUILD.gn b/webrtc/modules/BUILD.gn
index e750a81..88752eb 100644
--- a/webrtc/modules/BUILD.gn
+++ b/webrtc/modules/BUILD.gn
@@ -29,6 +29,18 @@
   ]
 }
 
+rtc_source_set("module_api") {
+  sources = [
+    "include/module.h",
+    "include/module_common_types.h",
+  ]
+  deps = [
+    "..:webrtc_common",
+    "../api:video_frame_api",
+    "../base:rtc_base_approved",
+  ]
+}
+
 if (rtc_include_tests) {
   modules_tests_resources = [
     "//resources/audio_coding/testfile32kHz.pcm",
@@ -199,8 +211,6 @@
 
   rtc_test("modules_unittests") {
     testonly = true
-
-    deps = []
     defines = []
     sources = [
       "module_common_types_unittest.cc",
@@ -212,6 +222,7 @@
     }
 
     deps += [
+      ":module_api",
       "../test:test_main",
       "audio_coding:audio_coding_unittests",
       "audio_conference_mixer:audio_conference_mixer_unittests",
diff --git a/webrtc/modules/audio_coding/BUILD.gn b/webrtc/modules/audio_coding/BUILD.gn
index 4a2fdca..8195e47 100644
--- a/webrtc/modules/audio_coding/BUILD.gn
+++ b/webrtc/modules/audio_coding/BUILD.gn
@@ -127,6 +127,7 @@
     "include/audio_coding_module_typedefs.h",
   ]
   deps = [
+    "..:module_api",
     "../..:webrtc_common",
   ]
 }
@@ -163,6 +164,7 @@
   }
 
   deps = audio_coding_deps + [
+           "..:module_api",
            "../../api/audio_codecs:audio_codecs_api",
            "../../api/audio_codecs:builtin_audio_decoder_factory",
            ":audio_coding_module_typedefs",
@@ -1067,6 +1069,7 @@
     ":isac_fix",
     ":neteq_decoder_enum",
     ":pcm16b",
+    "..:module_api",
     "../..:webrtc_common",
     "../../api/audio_codecs:audio_codecs_api",
     "../../base:gtest_prod",
@@ -1198,6 +1201,7 @@
       ":audio_coding_module_typedefs",
       ":audio_format_conversion",
       ":pcm16b_c",
+      "..:module_api",
       "../..:webrtc_common",
       "../../api/audio_codecs:builtin_audio_decoder_factory",
       "../../base:rtc_base_approved",
@@ -1301,6 +1305,7 @@
       ":audio_coding",
       ":audio_coding_module_typedefs",
       ":audio_format_conversion",
+      "..:module_api",
       "../../:webrtc_common",
       "../../base:rtc_base_approved",
       "../../system_wrappers",
@@ -1328,6 +1333,7 @@
     deps = [
       ":audio_coding",
       ":audio_format_conversion",
+      "..:module_api",
       "../../:webrtc_common",
       "../../base:rtc_base_approved",
       "../../system_wrappers",
@@ -1429,7 +1435,9 @@
     rtc_test("neteq_rtpplay") {
       testonly = true
       defines = []
-      deps = []
+      deps = [
+        "..:module_api",
+      ]
       sources = [
         "neteq/tools/neteq_rtpplay.cc",
       ]
@@ -1509,6 +1517,7 @@
       ":neteq",
       ":neteq_unittest_tools",
       ":pcm16b",
+      "..:module_api",
       "../..:webrtc_common",
       "../../api/audio_codecs:audio_codecs_api",
       "../../api/audio_codecs:builtin_audio_decoder_factory",
@@ -1534,6 +1543,7 @@
     deps = [
       ":neteq",
       ":neteq_unittest_tools",
+      "..:module_api",
       "../..:webrtc_common",
       "../../api/audio_codecs:builtin_audio_decoder_factory",
       "../../base:rtc_base_approved",
@@ -1588,6 +1598,7 @@
     deps = [
       ":audio_encoder_interface",
       ":pcm16b",
+      "..:module_api",
       "../..:webrtc_common",
       "../../api/audio_codecs:audio_codecs_api",
       "../../base:rtc_base_approved",
@@ -1625,6 +1636,7 @@
       ":ilbc",
       ":isac",
       ":pcm16b",
+      "..:module_api",
       "../..:webrtc_common",
       "//testing/gtest",
     ]
@@ -2136,6 +2148,7 @@
       ":red",
       ":rent_a_codec",
       ":webrtc_opus",
+      "..:module_api",
       "../..:webrtc_common",
       "../../api/audio_codecs:audio_codecs_api",
       "../../api/audio_codecs:builtin_audio_decoder_factory",
diff --git a/webrtc/modules/audio_conference_mixer/BUILD.gn b/webrtc/modules/audio_conference_mixer/BUILD.gn
index fc9904c..8939da2 100644
--- a/webrtc/modules/audio_conference_mixer/BUILD.gn
+++ b/webrtc/modules/audio_conference_mixer/BUILD.gn
@@ -39,6 +39,7 @@
   }
 
   deps = [
+    "..:module_api",
     "../..:webrtc_common",
     "../../audio/utility:audio_frame_operations",
     "../../base:rtc_base_approved",
diff --git a/webrtc/modules/audio_device/BUILD.gn b/webrtc/modules/audio_device/BUILD.gn
index 1e691fa..ab0b4f5 100644
--- a/webrtc/modules/audio_device/BUILD.gn
+++ b/webrtc/modules/audio_device/BUILD.gn
@@ -49,6 +49,7 @@
   public_configs = [ ":audio_device_config" ]
 
   deps = [
+    "..:module_api",
     "../..:webrtc_common",
     "../../base:rtc_base_approved",
     "../../base:rtc_task_queue",
diff --git a/webrtc/modules/audio_mixer/BUILD.gn b/webrtc/modules/audio_mixer/BUILD.gn
index d8acc05..cd3b768 100644
--- a/webrtc/modules/audio_mixer/BUILD.gn
+++ b/webrtc/modules/audio_mixer/BUILD.gn
@@ -38,6 +38,7 @@
 
   deps = [
     ":audio_frame_manipulator",
+    "..:module_api",
     "../..:webrtc_common",
     "../../audio/utility:audio_frame_operations",
     "../../base:rtc_base_approved",
@@ -58,6 +59,7 @@
   ]
 
   deps = [
+    "..:module_api",
     "../../audio/utility",
     "../../base:rtc_base_approved",
   ]
@@ -85,6 +87,7 @@
     deps = [
       ":audio_frame_manipulator",
       ":audio_mixer_impl",
+      "..:module_api",
       "../../api:audio_mixer_api",
       "../../audio/utility:audio_frame_operations",
       "../../base:rtc_base",
diff --git a/webrtc/modules/audio_processing/BUILD.gn b/webrtc/modules/audio_processing/BUILD.gn
index 0f6de09..ff9a4d6 100644
--- a/webrtc/modules/audio_processing/BUILD.gn
+++ b/webrtc/modules/audio_processing/BUILD.gn
@@ -230,6 +230,7 @@
 
   defines = []
   deps = [
+    "..:module_api",
     "../..:webrtc_common",
     "../../audio/utility:audio_frame_operations",
     "../../base:gtest_prod",
@@ -531,6 +532,7 @@
     deps = [
       ":audio_processing",
       ":audioproc_test_utils",
+      "..:module_api",
       "../..:webrtc_common",
       "../../base:gtest_prod",
       "../../base:protobuf_utils",
@@ -749,6 +751,7 @@
 
     deps = [
       ":audio_processing",
+      "..:module_api",
       "../../base:rtc_base_approved",
       "../../common_audio",
       "../../system_wrappers:system_wrappers",
@@ -764,6 +767,7 @@
     ]
     deps = [
       ":audio_processing",
+      "..:module_api",
       "../..:webrtc_common",
       "../../common_audio:common_audio",
       "../../system_wrappers:metrics_default",
diff --git a/webrtc/modules/congestion_controller/BUILD.gn b/webrtc/modules/congestion_controller/BUILD.gn
index 647079a..3dcbb27 100644
--- a/webrtc/modules/congestion_controller/BUILD.gn
+++ b/webrtc/modules/congestion_controller/BUILD.gn
@@ -45,6 +45,7 @@
   }
 
   deps = [
+    "..:module_api",
     "../..:webrtc_common",
     "../../base:rtc_base",
     "../../base:rtc_base_approved",
diff --git a/webrtc/modules/media_file/BUILD.gn b/webrtc/modules/media_file/BUILD.gn
index 4f8fbbc..7ab897f 100644
--- a/webrtc/modules/media_file/BUILD.gn
+++ b/webrtc/modules/media_file/BUILD.gn
@@ -33,6 +33,7 @@
   }
 
   deps = [
+    "..:module_api",
     "../..:webrtc_common",
     "../../base:rtc_base_approved",
     "../../common_audio",
diff --git a/webrtc/modules/pacing/BUILD.gn b/webrtc/modules/pacing/BUILD.gn
index ce2356e..57126d7 100644
--- a/webrtc/modules/pacing/BUILD.gn
+++ b/webrtc/modules/pacing/BUILD.gn
@@ -26,6 +26,7 @@
   }
 
   deps = [
+    "..:module_api",
     "../../:webrtc_common",
     "../../base:rtc_base_approved",
     "../../logging:rtc_event_log_api",
diff --git a/webrtc/modules/remote_bitrate_estimator/BUILD.gn b/webrtc/modules/remote_bitrate_estimator/BUILD.gn
index c2e5d31..04f2f7c 100644
--- a/webrtc/modules/remote_bitrate_estimator/BUILD.gn
+++ b/webrtc/modules/remote_bitrate_estimator/BUILD.gn
@@ -109,6 +109,7 @@
 
     deps = [
       ":remote_bitrate_estimator",
+      "..:module_api",
       "../..:webrtc_common",
       "../../base:gtest_prod",
       "../../base:rtc_base",
diff --git a/webrtc/modules/rtp_rtcp/BUILD.gn b/webrtc/modules/rtp_rtcp/BUILD.gn
index a369218..5d754d9 100644
--- a/webrtc/modules/rtp_rtcp/BUILD.gn
+++ b/webrtc/modules/rtp_rtcp/BUILD.gn
@@ -166,6 +166,7 @@
   }
 
   deps = [
+    "..:module_api",
     "../..:webrtc_common",
     "../../api:libjingle_peerconnection_api",
     "../../api:transport_api",
@@ -200,6 +201,7 @@
   ]
   deps = [
     ":rtp_rtcp",
+    "..:module_api",
     "../../base:rtc_base_approved",
   ]
 
@@ -257,6 +259,7 @@
     ]
     deps = [
       ":rtp_rtcp",
+      "..:module_api",
       "../../base:rtc_base_approved",
       "../../test:test_support",
     ]
@@ -336,6 +339,7 @@
       ":fec_test_helper",
       ":mock_rtp_rtcp",
       ":rtp_rtcp",
+      "..:module_api",
       "../..:webrtc_common",
       "../../api:transport_api",
       "../../base:rtc_base_approved",
diff --git a/webrtc/modules/utility/BUILD.gn b/webrtc/modules/utility/BUILD.gn
index 3d32ac2..7123890 100644
--- a/webrtc/modules/utility/BUILD.gn
+++ b/webrtc/modules/utility/BUILD.gn
@@ -30,6 +30,7 @@
   }
 
   deps = [
+    "..:module_api",
     "../..:webrtc_common",
     "../../audio/utility:audio_frame_operations",
     "../../base:rtc_task_queue",
@@ -54,6 +55,7 @@
     ]
     deps = [
       ":utility",
+      "..:module_api",
       "../../base:rtc_task_queue",
       "../../test:test_support",
       "//testing/gmock",
diff --git a/webrtc/modules/video_capture/BUILD.gn b/webrtc/modules/video_capture/BUILD.gn
index b7482a2..c902ee8 100644
--- a/webrtc/modules/video_capture/BUILD.gn
+++ b/webrtc/modules/video_capture/BUILD.gn
@@ -26,6 +26,7 @@
   ]
 
   deps = [
+    "..:module_api",
     "../..:webrtc_common",
     "../../base:rtc_base_approved",
     "../../common_video",
diff --git a/webrtc/modules/video_coding/BUILD.gn b/webrtc/modules/video_coding/BUILD.gn
index bafc8ba..477e064 100644
--- a/webrtc/modules/video_coding/BUILD.gn
+++ b/webrtc/modules/video_coding/BUILD.gn
@@ -94,6 +94,7 @@
     ":webrtc_i420",
     ":webrtc_vp8",
     ":webrtc_vp9",
+    "..:module_api",
     "../..:video_stream_api",
     "../..:webrtc_common",
     "../../base:rtc_base",
@@ -129,6 +130,7 @@
   }
 
   deps = [
+    "..:module_api",
     "../..:webrtc_common",
     "../../api/video_codecs:video_codecs_api",
     "../../base:rtc_base_approved",
@@ -225,6 +227,7 @@
 
   deps = [
     ":video_coding_utility",
+    "..:module_api",
     "../..:webrtc_common",
     "../../api/video_codecs:video_codecs_api",
     "../../base:rtc_base_approved",
@@ -260,6 +263,7 @@
 
   deps = [
     ":video_coding_utility",
+    "..:module_api",
     "../../base:rtc_base_approved",
     "../../common_video",
     "../../system_wrappers",
@@ -543,6 +547,7 @@
       ":webrtc_h264",
       ":webrtc_vp8",
       ":webrtc_vp9",
+      "..:module_api",
       "../..:webrtc_common",
       "../../api:video_frame_api",
       "../../api/video_codecs:video_codecs_api",
diff --git a/webrtc/modules/video_processing/BUILD.gn b/webrtc/modules/video_processing/BUILD.gn
index 7c9391a..c4c9c3b 100644
--- a/webrtc/modules/video_processing/BUILD.gn
+++ b/webrtc/modules/video_processing/BUILD.gn
@@ -26,6 +26,7 @@
 
   deps = [
     ":denoiser_filter",
+    "..:module_api",
     "../../base:rtc_base_approved",
     "../../common_audio",
     "../../common_video",
@@ -51,6 +52,9 @@
   sources = [
     "util/denoiser_filter.h",
   ]
+  deps = [
+    "..:module_api",
+  ]
 }
 
 if (build_video_processing_sse2) {
diff --git a/webrtc/sdk/BUILD.gn b/webrtc/sdk/BUILD.gn
index a352f9c..ca6054e 100644
--- a/webrtc/sdk/BUILD.gn
+++ b/webrtc/sdk/BUILD.gn
@@ -423,6 +423,7 @@
       "../base:rtc_base_approved",
       "../common_video",
       "../media:rtc_media_base",
+      "../modules:module_api",
       "../modules/video_coding:video_coding_utility",
       "../modules/video_coding:webrtc_h264",
       "../system_wrappers",
diff --git a/webrtc/tools/BUILD.gn b/webrtc/tools/BUILD.gn
index be3296d..2850552 100644
--- a/webrtc/tools/BUILD.gn
+++ b/webrtc/tools/BUILD.gn
@@ -210,6 +210,7 @@
       "../call:call_interfaces",
       "../logging:rtc_event_log_impl",
       "../logging:rtc_event_log_parser",
+      "../modules:module_api",
       "../modules/audio_coding:ana_debug_dump_proto",
 
       # TODO(kwiberg): Remove this dependency.
@@ -261,6 +262,7 @@
     }
 
     deps = [
+      "../modules:module_api",
       "../modules/audio_processing",
       "../system_wrappers:metrics_default",
       "../test:test_support",
diff --git a/webrtc/video/BUILD.gn b/webrtc/video/BUILD.gn
index 76f6ece..61d628a 100644
--- a/webrtc/video/BUILD.gn
+++ b/webrtc/video/BUILD.gn
@@ -65,6 +65,7 @@
     "../common_video",
     "../logging:rtc_event_log_api",
     "../media:rtc_media_base",
+    "../modules:module_api",
     "../modules/bitrate_controller",
     "../modules/congestion_controller",
     "../modules/pacing",
@@ -260,6 +261,7 @@
       "../logging:rtc_event_log_api",
       "../media:rtc_media_base",
       "../media:rtc_media_tests_utils",
+      "../modules:module_api",
       "../modules/pacing",
       "../modules/rtp_rtcp",
       "../modules/rtp_rtcp:mock_rtp_rtcp",
diff --git a/webrtc/voice_engine/BUILD.gn b/webrtc/voice_engine/BUILD.gn
index ca774f2..be6faab 100644
--- a/webrtc/voice_engine/BUILD.gn
+++ b/webrtc/voice_engine/BUILD.gn
@@ -16,6 +16,7 @@
   deps = [
     "..:webrtc_common",
     "../api/audio_codecs:builtin_audio_decoder_factory",
+    "../modules:module_api",
     "../modules/audio_coding",
     "../modules/audio_coding:audio_encoder_factory_interface",
     "../modules/audio_coding:audio_format_conversion",
@@ -39,6 +40,7 @@
     "..:webrtc_common",
     "../base:rtc_base_approved",
     "../common_audio",
+    "../modules:module_api",
     "../modules/media_file",
   ]
 
@@ -58,6 +60,7 @@
     "..:webrtc_common",
     "../base:rtc_base_approved",
     "../common_audio",
+    "../modules:module_api",
     "../modules/media_file:media_file",
     "../system_wrappers",
   ]
@@ -141,6 +144,7 @@
     "../audio/utility:audio_frame_operations",
     "../base:rtc_base_approved",
     "../base:rtc_task_queue",
+    "../modules:module_api",
 
     # TODO(nisse): Delete when declaration of RtpTransportController
     # and related interfaces move to api/.
@@ -172,6 +176,7 @@
     "..:webrtc_common",
     "../base:rtc_base_approved",
     "../common_audio",
+    "../modules:module_api",
   ]
 }
 
@@ -181,6 +186,7 @@
       ":file_player",
       ":voice_engine",
       "../base:rtc_base_approved",
+      "../modules:module_api",
       "../test:test_common",
       "//testing/gmock",
       "//testing/gtest",
@@ -244,6 +250,7 @@
         ":voice_engine",
         "..:webrtc_common",
         "../base:rtc_base_approved",
+        "../modules:module_api",
         "../modules/audio_device:audio_device",
         "../modules/audio_processing:audio_processing",
         "../modules/rtp_rtcp:rtp_rtcp",