Separate build target for rtc_base/numerics/safe_minmax.h

So that we can avoid dependency cycles.

Bug: none
Change-Id: I821d9f1319dff01403d6e4e310cbb2d4b2b125e8
Reviewed-on: https://webrtc-review.googlesource.com/60500
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22328}
diff --git a/api/audio_codecs/g711/BUILD.gn b/api/audio_codecs/g711/BUILD.gn
index b62c679..f28342f 100644
--- a/api/audio_codecs/g711/BUILD.gn
+++ b/api/audio_codecs/g711/BUILD.gn
@@ -24,6 +24,7 @@
     "../../..:webrtc_common",
     "../../../modules/audio_coding:g711",
     "../../../rtc_base:rtc_base_approved",
+    "../../../rtc_base:safe_minmax",
   ]
 }
 
diff --git a/api/audio_codecs/g722/BUILD.gn b/api/audio_codecs/g722/BUILD.gn
index 0d12195..b3ef381 100644
--- a/api/audio_codecs/g722/BUILD.gn
+++ b/api/audio_codecs/g722/BUILD.gn
@@ -32,6 +32,7 @@
     "../../..:webrtc_common",
     "../../../modules/audio_coding:g722",
     "../../../rtc_base:rtc_base_approved",
+    "../../../rtc_base:safe_minmax",
   ]
 }
 
diff --git a/api/audio_codecs/ilbc/BUILD.gn b/api/audio_codecs/ilbc/BUILD.gn
index 944d4eb..765e279 100644
--- a/api/audio_codecs/ilbc/BUILD.gn
+++ b/api/audio_codecs/ilbc/BUILD.gn
@@ -32,6 +32,7 @@
     "../../..:webrtc_common",
     "../../../modules/audio_coding:ilbc",
     "../../../rtc_base:rtc_base_approved",
+    "../../../rtc_base:safe_minmax",
   ]
 }
 
diff --git a/audio/BUILD.gn b/audio/BUILD.gn
index 0d8ca07..12760d4 100644
--- a/audio/BUILD.gn
+++ b/audio/BUILD.gn
@@ -80,6 +80,7 @@
     "../rtc_base:rtc_base",
     "../rtc_base:rtc_base_approved",
     "../rtc_base:rtc_task_queue",
+    "../rtc_base:safe_minmax",
     "../rtc_base:stringutils",
     "../system_wrappers",
     "../system_wrappers:field_trial_api",
diff --git a/common_video/BUILD.gn b/common_video/BUILD.gn
index c0cc70a..7b91b00 100644
--- a/common_video/BUILD.gn
+++ b/common_video/BUILD.gn
@@ -65,6 +65,7 @@
     "../rtc_base:checks",
     "../rtc_base:rtc_base",
     "../rtc_base:rtc_task_queue",
+    "../rtc_base:safe_minmax",
     "../system_wrappers",
     "//third_party/libyuv",
   ]
diff --git a/logging/BUILD.gn b/logging/BUILD.gn
index d31086b..16b186c 100644
--- a/logging/BUILD.gn
+++ b/logging/BUILD.gn
@@ -220,6 +220,7 @@
     "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
     "../rtc_base:rtc_task_queue_api",
+    "../rtc_base:safe_minmax",
     "../rtc_base:sequenced_task_checker",
   ]
 
diff --git a/modules/audio_coding/BUILD.gn b/modules/audio_coding/BUILD.gn
index 797b547..760c89a 100644
--- a/modules/audio_coding/BUILD.gn
+++ b/modules/audio_coding/BUILD.gn
@@ -856,6 +856,7 @@
     "../../rtc_base:checks",
     "../../rtc_base:rtc_base_approved",
     "../../rtc_base:rtc_numerics",
+    "../../rtc_base:safe_minmax",
     "../../system_wrappers:field_trial_api",
   ]
   public_deps = [
@@ -1088,6 +1089,7 @@
     "../../rtc_base:checks",
     "../../rtc_base:gtest_prod",
     "../../rtc_base:rtc_base_approved",
+    "../../rtc_base:safe_minmax",
     "../../rtc_base:sanitizer",
     "../../rtc_base/system:fallthrough",
     "../../system_wrappers:field_trial_api",
diff --git a/modules/audio_processing/BUILD.gn b/modules/audio_processing/BUILD.gn
index 3dcea89..186c43a 100644
--- a/modules/audio_processing/BUILD.gn
+++ b/modules/audio_processing/BUILD.gn
@@ -156,6 +156,7 @@
     "../../rtc_base:deprecation",
     "../../rtc_base:gtest_prod",
     "../../rtc_base:protobuf_utils",
+    "../../rtc_base:safe_minmax",
     "../../rtc_base:sanitizer",
     "../../system_wrappers:cpu_features_api",
     "../../system_wrappers:field_trial_api",
@@ -558,6 +559,7 @@
       "../../rtc_base:protobuf_utils",
       "../../rtc_base:rtc_base",
       "../../rtc_base:rtc_base_approved",
+      "../../rtc_base:safe_minmax",
       "../../system_wrappers",
       "../../system_wrappers:cpu_features_api",
       "../../test:test_support",
diff --git a/modules/audio_processing/aec3/BUILD.gn b/modules/audio_processing/aec3/BUILD.gn
index 03202fa..372b30f 100644
--- a/modules/audio_processing/aec3/BUILD.gn
+++ b/modules/audio_processing/aec3/BUILD.gn
@@ -108,6 +108,7 @@
     "../../../common_audio:common_audio_c",
     "../../../rtc_base:checks",
     "../../../rtc_base:rtc_base_approved",
+    "../../../rtc_base:safe_minmax",
     "../../../system_wrappers:cpu_features_api",
     "../../../system_wrappers:metrics_api",
   ]
@@ -138,6 +139,7 @@
       "../../../api/audio:aec3_config",
       "../../../rtc_base:checks",
       "../../../rtc_base:rtc_base_approved",
+      "../../../rtc_base:safe_minmax",
       "../../../system_wrappers:cpu_features_api",
       "../../../test:test_support",
     ]
diff --git a/modules/audio_processing/agc2/BUILD.gn b/modules/audio_processing/agc2/BUILD.gn
index 4aa212f..8710164 100644
--- a/modules/audio_processing/agc2/BUILD.gn
+++ b/modules/audio_processing/agc2/BUILD.gn
@@ -31,6 +31,7 @@
     "../../../rtc_base:checks",
     "../../../rtc_base:gtest_prod",
     "../../../rtc_base:rtc_base_approved",
+    "../../../rtc_base:safe_minmax",
   ]
 }
 
diff --git a/modules/congestion_controller/BUILD.gn b/modules/congestion_controller/BUILD.gn
index 7446df9..a88f5fb 100644
--- a/modules/congestion_controller/BUILD.gn
+++ b/modules/congestion_controller/BUILD.gn
@@ -110,6 +110,7 @@
     "../../rtc_base:checks",
     "../../rtc_base:rtc_base_approved",
     "../../rtc_base:rtc_numerics",
+    "../../rtc_base:safe_minmax",
     "../../system_wrappers:field_trial_api",
     "../../system_wrappers:metrics_api",
     "../remote_bitrate_estimator:remote_bitrate_estimator",
diff --git a/modules/congestion_controller/goog_cc/BUILD.gn b/modules/congestion_controller/goog_cc/BUILD.gn
index bc17af1..fe8aa54 100644
--- a/modules/congestion_controller/goog_cc/BUILD.gn
+++ b/modules/congestion_controller/goog_cc/BUILD.gn
@@ -91,6 +91,7 @@
     "../../../rtc_base:checks",
     "../../../rtc_base:rtc_base_approved",
     "../../../rtc_base:rtc_numerics",
+    "../../../rtc_base:safe_minmax",
     "../../../system_wrappers:field_trial_api",
     "../../../system_wrappers:metrics_api",
     "../../remote_bitrate_estimator",
diff --git a/modules/congestion_controller/rtp/BUILD.gn b/modules/congestion_controller/rtp/BUILD.gn
index 4842591..a1e15ad 100644
--- a/modules/congestion_controller/rtp/BUILD.gn
+++ b/modules/congestion_controller/rtp/BUILD.gn
@@ -42,6 +42,7 @@
     "../../../rtc_base:checks",
     "../../../rtc_base:rate_limiter",
     "../../../rtc_base:rtc_task_queue_api",
+    "../../../rtc_base:safe_minmax",
     "../../../rtc_base:sequenced_task_checker",
     "../../../system_wrappers",
     "../../../system_wrappers:field_trial_api",
diff --git a/modules/remote_bitrate_estimator/BUILD.gn b/modules/remote_bitrate_estimator/BUILD.gn
index ddd77d1..c4c7515 100644
--- a/modules/remote_bitrate_estimator/BUILD.gn
+++ b/modules/remote_bitrate_estimator/BUILD.gn
@@ -51,6 +51,7 @@
     "../../modules/rtp_rtcp:rtp_rtcp_format",
     "../../rtc_base:checks",
     "../../rtc_base:rtc_base_approved",
+    "../../rtc_base:safe_minmax",
     "../../system_wrappers",
     "../../system_wrappers:field_trial_api",
     "../../system_wrappers:metrics_api",
@@ -141,6 +142,7 @@
       "../../rtc_base:rtc_base",
       "../../rtc_base:rtc_base_approved",
       "../../rtc_base:rtc_numerics",
+      "../../rtc_base:safe_minmax",
       "../../rtc_base/experiments:alr_experiment",
       "../../rtc_base/system:fallthrough",
       "../../system_wrappers",
diff --git a/modules/rtp_rtcp/BUILD.gn b/modules/rtp_rtcp/BUILD.gn
index be3fd03..13b10c0 100644
--- a/modules/rtp_rtcp/BUILD.gn
+++ b/modules/rtp_rtcp/BUILD.gn
@@ -206,6 +206,7 @@
     "../../rtc_base:rate_limiter",
     "../../rtc_base:rtc_base_approved",
     "../../rtc_base:rtc_numerics",
+    "../../rtc_base:safe_minmax",
     "../../rtc_base:sequenced_task_checker",
     "../../rtc_base:stringutils",
     "../../rtc_base/system:fallthrough",
diff --git a/p2p/BUILD.gn b/p2p/BUILD.gn
index 9e3655d..5d7e59a 100644
--- a/p2p/BUILD.gn
+++ b/p2p/BUILD.gn
@@ -89,6 +89,7 @@
     "../logging:ice_log",
     "../rtc_base:checks",
     "../rtc_base:rtc_base",
+    "../rtc_base:safe_minmax",
     "../rtc_base:stringutils",
     "../system_wrappers:field_trial_api",
   ]
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 50c5c68..e38b713 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -129,6 +129,17 @@
   ]
 }
 
+rtc_source_set("safe_minmax") {
+  sources = [
+    "numerics/safe_minmax.h",
+  ]
+  deps = [
+    ":checks",
+    ":safe_compare",
+    ":type_traits",
+  ]
+}
+
 rtc_source_set("stringutils") {
   sources = [
     "strings/string_builder.h",
@@ -210,7 +221,6 @@
     "numerics/moving_max_counter.h",
     "numerics/safe_conversions.h",
     "numerics/safe_conversions_impl.h",
-    "numerics/safe_minmax.h",
     "onetimeevent.h",
     "pathutils.cc",
     "pathutils.h",
@@ -1002,6 +1012,7 @@
       ":rtc_base_tests_utils",
       ":rtc_task_queue",
       ":safe_compare",
+      ":safe_minmax",
       ":stringutils",
       "../api:array_view",
       "../system_wrappers:system_wrappers",
diff --git a/rtc_tools/BUILD.gn b/rtc_tools/BUILD.gn
index 32a594b..b4faf0e 100644
--- a/rtc_tools/BUILD.gn
+++ b/rtc_tools/BUILD.gn
@@ -292,6 +292,7 @@
       "../modules/audio_processing",
       "../modules/audio_processing/vad",
       "../rtc_base:rtc_base_approved",
+      "../rtc_base:safe_minmax",
       "../system_wrappers:metrics_default",
       "../test:test_support",
       "//build/win:default_exe_manifest",
diff --git a/test/fuzzers/BUILD.gn b/test/fuzzers/BUILD.gn
index 660230e..639c54b 100644
--- a/test/fuzzers/BUILD.gn
+++ b/test/fuzzers/BUILD.gn
@@ -448,6 +448,7 @@
     "../../modules/audio_processing",
     "../../modules/audio_processing/aec3",
     "../../rtc_base:rtc_base_approved",
+    "../../rtc_base:safe_minmax",
   ]
   seed_corpus = "corpora/audio_processing-corpus"
 }