aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormark a. foltz <mfoltz@chromium.org>2021-07-20 17:00:33 -0700
committerOpenscreen LUCI CQ <openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com>2021-07-21 01:08:04 +0000
commitf9715c5369c7dca34da0cb7b416efe65ed52a474 (patch)
treed7c301f5976aaf2492c12471af206c94af787804
parent0d8bd6b2f8ffde7cfc93a414e38bcc8e93f82699 (diff)
downloadopenscreen-f9715c5369c7dca34da0cb7b416efe65ed52a474.tar.gz
[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 <mfoltz@chromium.org> Reviewed-by: Ryan Keane <rwkeane@google.com>
-rw-r--r--BUILD.gn1
-rw-r--r--DEPS7
-rw-r--r--cast/common/BUILD.gn7
-rw-r--r--cast/standalone_receiver/BUILD.gn2
-rw-r--r--discovery/BUILD.gn68
-rw-r--r--discovery/DEPS2
-rw-r--r--discovery/dnssd/impl/DEPS10
-rw-r--r--discovery/dnssd/public/DEPS6
-rw-r--r--discovery/mdns/DEPS2
-rw-r--r--discovery/mdns/public/DEPS8
-rw-r--r--osp/impl/BUILD.gn1
11 files changed, 63 insertions, 51 deletions
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",