From f9715c5369c7dca34da0cb7b416efe65ed52a474 Mon Sep 17 00:00:00 2001 From: "mark a. foltz" Date: Tue, 20 Jul 2021 17:00:33 -0700 Subject: [Open Screen] Create a //discovery:public target This creates a :public GN target for other Open Screen modules (or embedders) to depend on. It also: - Consolidates the DNS-SD public APIs. - Adds DEPS rules to enforce use of public headers. - Adds DEPS rules to enforce layering inside of //discovery (with some exceptions). - Adjusts deps for the //discovery targets. Bug: b/179705382 Change-Id: Ice48b8d8937d3c68351d693b348a2928f14dfb4b Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/3032947 Commit-Queue: mark a. foltz Reviewed-by: Ryan Keane --- BUILD.gn | 1 - DEPS | 7 ++++ cast/common/BUILD.gn | 7 ++-- cast/standalone_receiver/BUILD.gn | 2 +- discovery/BUILD.gn | 68 ++++++++++++++++----------------------- discovery/DEPS | 2 +- discovery/dnssd/impl/DEPS | 10 +++++- discovery/dnssd/public/DEPS | 6 ++++ discovery/mdns/DEPS | 2 ++ discovery/mdns/public/DEPS | 8 +++++ osp/impl/BUILD.gn | 1 - 11 files changed, 63 insertions(+), 51 deletions(-) create mode 100644 discovery/dnssd/public/DEPS create mode 100644 discovery/mdns/public/DEPS diff --git a/BUILD.gn b/BUILD.gn index 95ab0c96..7d26028a 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -16,7 +16,6 @@ group("gn_all") { "cast/sender:channel", "cast/streaming:receiver", "cast/streaming:sender", - "discovery:common", "discovery:dnssd", "discovery:mdns", "discovery:public", diff --git a/DEPS b/DEPS index 2fb5f1ba..64d06374 100644 --- a/DEPS +++ b/DEPS @@ -226,6 +226,13 @@ include_rules = [ '+testing/util', '+third_party', + # Inter-module dependencies must be through public APIs. + '-discovery', + '+discovery/common', + '+discovery/dnssd/public', + '+discovery/mdns/public', + '+discovery/public', + # Don't include abseil from the root so the path can change via include_dirs # rules when in Chromium. '-third_party/abseil', diff --git a/cast/common/BUILD.gn b/cast/common/BUILD.gn index 750d72ea..154d436e 100644 --- a/cast/common/BUILD.gn +++ b/cast/common/BUILD.gn @@ -88,11 +88,10 @@ source_set("public") { ] deps = [ - "../../discovery:dnssd", - "../../discovery:mdns", "../../discovery:public", "../../platform", "../../third_party/abseil", + "../../util", ] } @@ -107,7 +106,6 @@ if (!build_with_chromium) { deps = [ ":public", "../../discovery:dnssd", - "../../discovery:mdns", "../../discovery:public", "../../platform:standalone_impl", "../../testing/util", @@ -132,8 +130,7 @@ source_set("test_helpers") { ":certificate", ":channel", ":public", - "../../discovery:dnssd", - "../../discovery:mdns", + "../../discovery:public", "../../platform:test", "../../testing/util", "../../third_party/abseil", diff --git a/cast/standalone_receiver/BUILD.gn b/cast/standalone_receiver/BUILD.gn index 956a1a71..23d394ac 100644 --- a/cast/standalone_receiver/BUILD.gn +++ b/cast/standalone_receiver/BUILD.gn @@ -23,7 +23,7 @@ if (!build_with_chromium) { ] shared_deps = [ - "../../discovery:common", + "../../discovery:dnssd", "../../discovery:public", "../../platform:standalone_impl", "../common:public", diff --git a/discovery/BUILD.gn b/discovery/BUILD.gn index 11598c8f..0a747258 100644 --- a/discovery/BUILD.gn +++ b/discovery/BUILD.gn @@ -5,20 +5,32 @@ import("//build_overrides/build.gni") import("../testing/libfuzzer/fuzzer_test.gni") -source_set("common") { +source_set("public") { sources = [ "common/config.h", "common/reporting_client.h", + "dnssd/public/dns_sd_instance.cc", + "dnssd/public/dns_sd_instance.h", + "dnssd/public/dns_sd_instance_endpoint.cc", + "dnssd/public/dns_sd_instance_endpoint.h", + "dnssd/public/dns_sd_publisher.h", + "dnssd/public/dns_sd_querier.h", + "dnssd/public/dns_sd_service.h", + "dnssd/public/dns_sd_txt_record.cc", + "dnssd/public/dns_sd_txt_record.h", + "mdns/public/mdns_constants.h", + "mdns/public/mdns_service.cc", + "mdns/public/mdns_service.h", + "public/dns_sd_service_factory.h", + "public/dns_sd_service_publisher.h", + "public/dns_sd_service_watcher.h", ] - + public_deps = [ "../platform" ] deps = [ "../util" ] - - public_deps = [ - "../platform", - "../third_party/abseil", - ] } +# TODO(https://issuetracker.google.com/issues/194234872): +# Move implementation files to impl/ source_set("mdns") { sources = [ "mdns/mdns_domain_confirmed_provider.h", @@ -47,21 +59,16 @@ source_set("mdns") { "mdns/mdns_trackers.h", "mdns/mdns_writer.cc", "mdns/mdns_writer.h", - "mdns/public/mdns_constants.h", - "mdns/public/mdns_service.cc", - "mdns/public/mdns_service.h", ] - deps = [ "../util" ] - - public_deps = [ - ":common", + deps = [ + ":public", "../platform", "../third_party/abseil", + "../util", ] } -# TODO(issuetracker.google.com/179705382): Separate out a public target. source_set("dnssd") { sources = [ "dnssd/impl/conversion_layer.cc", @@ -82,34 +89,12 @@ source_set("dnssd") { "dnssd/impl/service_instance.h", "dnssd/impl/service_key.cc", "dnssd/impl/service_key.h", - "dnssd/public/dns_sd_instance.cc", - "dnssd/public/dns_sd_instance.h", - "dnssd/public/dns_sd_instance_endpoint.cc", - "dnssd/public/dns_sd_instance_endpoint.h", - "dnssd/public/dns_sd_publisher.h", - "dnssd/public/dns_sd_querier.h", - "dnssd/public/dns_sd_service.h", - "dnssd/public/dns_sd_txt_record.cc", - "dnssd/public/dns_sd_txt_record.h", ] - public_deps = [ - ":common", + deps = [ ":mdns", - "../util", - ] -} - -source_set("public") { - sources = [ - "public/dns_sd_service_factory.h", - "public/dns_sd_service_publisher.h", - "public/dns_sd_service_watcher.h", - ] - - public_deps = [ - ":common", - ":dnssd", + ":public", + "../third_party/abseil", "../util", ] } @@ -133,8 +118,9 @@ source_set("testing") { sources += [ "mdns/testing/hash_test_util_abseil.h" ] } - public_deps = [ + deps = [ ":mdns", + ":public", "../third_party/abseil", "../third_party/googletest:gmock", "../third_party/googletest:gtest", diff --git a/discovery/DEPS b/discovery/DEPS index de7afcec..4d758dcd 100644 --- a/discovery/DEPS +++ b/discovery/DEPS @@ -4,6 +4,6 @@ include_rules = [ # Intra-discovery dependencies must be explicit. '-discovery', - # All discovery code can use discovery/common + # All discovery code can use discovery/common. '+discovery/common', ] diff --git a/discovery/dnssd/impl/DEPS b/discovery/dnssd/impl/DEPS index 243d363d..57d73c16 100644 --- a/discovery/dnssd/impl/DEPS +++ b/discovery/dnssd/impl/DEPS @@ -2,5 +2,13 @@ include_rules = [ '+discovery/dnssd/public', - '+discovery/mdns', + '+discovery/mdns/public', + + # TODO(https://issuetracker.google.com/issues/194234872): + # Move these to discovery/mdns/public + '+discovery/mdns/mdns_domain_confirmed_provider.h', + '+discovery/mdns/mdns_record_changed_callback.h', + '+discovery/mdns/mdns_records.h', + + '+discovery/mdns/testing/mdns_test_util.h', ] diff --git a/discovery/dnssd/public/DEPS b/discovery/dnssd/public/DEPS new file mode 100644 index 00000000..e8ae0cbe --- /dev/null +++ b/discovery/dnssd/public/DEPS @@ -0,0 +1,6 @@ +# -*- Mode: Python; -*- + +include_rules = [ + # Layering rule. + '-discovery/dnssd/impl', +] diff --git a/discovery/mdns/DEPS b/discovery/mdns/DEPS index 309d03f4..c0348a87 100644 --- a/discovery/mdns/DEPS +++ b/discovery/mdns/DEPS @@ -2,4 +2,6 @@ include_rules = [ '+discovery/mdns/public', + # DNS-SD is layered on top of mDNS. + '-discovery/dnssd', ] diff --git a/discovery/mdns/public/DEPS b/discovery/mdns/public/DEPS new file mode 100644 index 00000000..5b65c0e4 --- /dev/null +++ b/discovery/mdns/public/DEPS @@ -0,0 +1,8 @@ +# -*- Mode: Python; -*- +include_rules = [ + # Layering rule. + '-discovery/mdns', + # Except ourselves. + '+discovery/mdns/public', +] + diff --git a/osp/impl/BUILD.gn b/osp/impl/BUILD.gn index 8b50164f..54404a61 100644 --- a/osp/impl/BUILD.gn +++ b/osp/impl/BUILD.gn @@ -32,7 +32,6 @@ source_set("impl") { "../public", ] deps = [ - "../../discovery:common", "../../discovery:dnssd", "../../discovery:public", "../../platform", -- cgit v1.2.3