diff --git a/PRESUBMIT.py b/PRESUBMIT.py index 417a8d4212..fe7514dc99 100755 --- a/PRESUBMIT.py +++ b/PRESUBMIT.py @@ -376,39 +376,6 @@ def CheckNoSourcesAbove(input_api, gn_files, output_api): return [] -def CheckAbseilDependencies(input_api, gn_files, output_api): - """Checks that Abseil dependencies are declared in `absl_deps`.""" - absl_re = re.compile(r'third_party/abseil-cpp', re.MULTILINE | re.DOTALL) - target_types_to_check = [ - 'rtc_library', - 'rtc_source_set', - 'rtc_static_library', - 'webrtc_fuzzer_test', - ] - error_msg = ('Abseil dependencies in target "%s" (file: %s) ' - 'should be moved to the "absl_deps" parameter.') - errors = [] - - # pylint: disable=too-many-nested-blocks - for gn_file in gn_files: - gn_file_content = input_api.ReadFile(gn_file) - for target_match in TARGET_RE.finditer(gn_file_content): - target_type = target_match.group('target_type') - target_name = target_match.group('target_name') - target_contents = target_match.group('target_contents') - if target_type in target_types_to_check: - for deps_match in DEPS_RE.finditer(target_contents): - deps = deps_match.group('deps').splitlines() - for dep in deps: - if re.search(absl_re, dep): - errors.append( - output_api.PresubmitError( - error_msg % - (target_name, gn_file.LocalPath()))) - break # no need to warn more than once per target - return errors - - def CheckNoMixingSources(input_api, gn_files, output_api): """Disallow mixing C, C++ and Obj-C/Obj-C++ in the same target. @@ -671,7 +638,6 @@ def CheckGnChanges(input_api, output_api): if gn_files: result.extend(CheckNoSourcesAbove(input_api, gn_files, output_api)) result.extend(CheckNoMixingSources(input_api, gn_files, output_api)) - result.extend(CheckAbseilDependencies(input_api, gn_files, output_api)) result.extend( CheckNoPackageBoundaryViolations(input_api, gn_files, output_api)) result.extend(CheckPublicDepsIsNotUsed(gn_files, input_api, diff --git a/api/BUILD.gn b/api/BUILD.gn index d366f3d760..3587367cce 100644 --- a/api/BUILD.gn +++ b/api/BUILD.gn @@ -115,8 +115,8 @@ rtc_library("rtp_headers") { ":array_view", "units:timestamp", "video:video_rtp_headers", + "//third_party/abseil-cpp/absl/types:optional", ] - absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] } rtc_library("rtp_packet_info") { diff --git a/webrtc.gni b/webrtc.gni index 2077c0e9a8..860a69b7eb 100644 --- a/webrtc.gni +++ b/webrtc.gni @@ -413,6 +413,7 @@ set_defaults("rtc_test") { configs = rtc_add_configs public_deps = rtc_common_public_deps # no-presubmit-check TODO(webrtc:8603) suppressed_configs = [] + absl_deps = [] } set_defaults("rtc_library") { @@ -564,14 +565,20 @@ template("rtc_test") { # If absl_deps is [], no action is needed. If not [], then it needs to be # converted to //third_party/abseil-cpp:absl when build_with_chromium=true # otherwise it just needs to be added to deps. - if (defined(absl_deps) && absl_deps != []) { + if (absl_deps != []) { if (!defined(deps)) { deps = [] } - if (build_with_chromium) { + deps += absl_deps + } + + if (build_with_chromium && defined(deps)) { + absl_dependencies = filter_labels_include(deps, ["//third_party/abseil-cpp/*"]) + if (absl_dependencies != []) { + filtered_deps = filter_labels_exclude(deps, ["//third_party/abseil-cpp/*"]) + deps = [] + deps = filtered_deps deps += [ "//third_party/abseil-cpp:absl" ] - } else { - deps += absl_deps } } @@ -682,10 +689,16 @@ template("rtc_source_set") { if (!defined(deps)) { deps = [] } - if (build_with_chromium) { + deps += absl_deps + } + + if (build_with_chromium && defined(deps)) { + absl_dependencies = filter_labels_include(deps, ["//third_party/abseil-cpp/*"]) + if (absl_dependencies != []) { + filtered_deps = filter_labels_exclude(deps, ["//third_party/abseil-cpp/*"]) + deps = [] + deps = filtered_deps deps += [ "//third_party/abseil-cpp:absl" ] - } else { - deps += absl_deps } } } @@ -771,10 +784,16 @@ template("rtc_static_library") { if (!defined(deps)) { deps = [] } - if (build_with_chromium) { + deps += absl_deps + } + + if (build_with_chromium && defined(deps)) { + absl_dependencies = filter_labels_include(deps, ["//third_party/abseil-cpp/*"]) + if (absl_dependencies != []) { + filtered_deps = filter_labels_exclude(deps, ["//third_party/abseil-cpp/*"]) + deps = [] + deps = filtered_deps deps += [ "//third_party/abseil-cpp:absl" ] - } else { - deps += absl_deps } } } @@ -910,10 +929,16 @@ template("rtc_library") { if (!defined(deps)) { deps = [] } - if (build_with_chromium) { + deps += absl_deps + } + + if (build_with_chromium && defined(deps)) { + absl_dependencies = filter_labels_include(deps, ["//third_party/abseil-cpp/*"]) + if (absl_dependencies != []) { + filtered_deps = filter_labels_exclude(deps, ["//third_party/abseil-cpp/*"]) + deps = [] + deps = filtered_deps deps += [ "//third_party/abseil-cpp:absl" ] - } else { - deps += absl_deps } } }