aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BUILD.gn104
-rw-r--r--README.md17
-rw-r--r--api/BUILD.gn26
-rw-r--r--api/impl/BUILD.gn62
-rw-r--r--api/impl/presentation/presentation_common.cc4
-rw-r--r--api/impl/presentation/presentation_connection.cc2
-rw-r--r--api/impl/presentation/presentation_connection_unittest.cc2
-rw-r--r--api/impl/quic/BUILD.gn12
-rw-r--r--api/impl/quic/quic_connection_impl.cc2
-rw-r--r--api/impl/testing/BUILD.gn8
-rw-r--r--api/public/BUILD.gn7
-rw-r--r--api/public/message_demuxer.cc2
-rw-r--r--api/public/presentation/presentation_connection.h4
-rw-r--r--api/public/presentation/presentation_controller.h2
-rw-r--r--base/BUILD.gn6
-rw-r--r--base/ip_address.cc2
-rw-r--r--build/config/services.gni13
-rw-r--r--demo/demo.cc2
-rw-r--r--discovery/mdns/BUILD.gn65
-rw-r--r--discovery/mdns/domain_name.cc4
-rw-r--r--msgs/BUILD.gn12
-rw-r--r--msgs/presentation/BUILD.gn27
-rw-r--r--platform/BUILD.gn43
-rw-r--r--platform/api/logging.h9
-rw-r--r--platform/base/event_loop.cc2
-rw-r--r--platform/chromium/logging.cc52
-rw-r--r--platform/linux/network_interface.cc2
-rw-r--r--sample/BUILD.gn3
-rw-r--r--third_party/abseil/BUILD.gn107
-rw-r--r--third_party/googletest/BUILD.gn98
-rw-r--r--third_party/tinycbor/BUILD.gn10
-rw-r--r--tools/cddl/BUILD.gn5
-rw-r--r--tools/cddl/codegen.cc2
-rw-r--r--tools/cddl/parse.cc4
-rw-r--r--tools/cddl/parse.h2
-rw-r--r--tools/cddl/sema.cc6
-rw-r--r--tools/cddl/sema.h2
37 files changed, 455 insertions, 277 deletions
diff --git a/BUILD.gn b/BUILD.gn
index 58047cf4..04f92269 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -2,47 +2,91 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build_overrides/build.gni")
+import("build/config/services.gni")
+
+config("root_config_overrides") {
+ if (build_with_chromium) {
+ include_dirs = [ "." ]
+ }
+}
+
# All compilable non-test targets in the repository (both executables and
# source_sets).
group("gn_all") {
deps = [
- "//api",
- "//base",
- "//discovery/mdns:embedder_demo",
- "//platform",
- "//sample:hello",
- "//third_party/abseil",
- "//third_party/chromium_quic",
- "//third_party/chromium_quic:demo_client",
- "//third_party/chromium_quic:demo_server",
- "//third_party/tinycbor",
- "//tools/cddl",
+ "api",
+ "base",
+ "msgs",
+ "platform",
+ "sample:hello",
+ "third_party/abseil",
+ "third_party/tinycbor",
+ "tools/cddl",
]
-}
-executable("demo") {
- sources = [
- "//demo/demo.cc",
- ]
+ if (use_mdns_responder) {
+ deps += [ "discovery/mdns:embedder_demo" ]
+ }
- deps = [
- "//api:api_with_chromium_quic",
- "//base",
- "//discovery/mdns",
- "//platform",
- ]
+ if (use_chromium_quic) {
+ deps += [
+ "third_party/chromium_quic",
+ "third_party/chromium_quic:demo_client",
+ "third_party/chromium_quic:demo_server",
+ ]
+ }
}
-executable("unittests") {
+executable("openscreen_unittests") {
testonly = true
deps = [
- "//api:api_unittests",
- "//base:base_unittests",
- "//discovery/mdns:mdns_unittests",
- "//msgs:unittests",
- "//platform:platform_unittests",
- "//sample:hello_unittests",
- "//third_party/abseil",
+ "api:api_unittests",
+ "base:base_unittests",
+ "discovery/mdns:mdns_unittests",
+ "msgs:unittests",
+ "platform:platform_unittests",
+ "sample:hello_unittests",
+ "third_party/abseil",
"//third_party/googletest:gtest_main",
]
}
+
+if (!build_with_chromium) {
+ # TODO(btolsch): This is to keep the openscreen bots happy with a `unittests`
+ # target and executable. Remove this after the bot recipe can be updated.
+ group("unittests") {
+ testonly = true
+ deps = [
+ ":openscreen_unittests",
+ ]
+ }
+
+ copy("unittests_rename") {
+ testonly = true
+ sources = [
+ "$root_out_dir/openscreen_unittests",
+ ]
+ outputs = [
+ "$root_out_dir/unittests",
+ ]
+ deps = [
+ ":openscreen_unittests",
+ ]
+ }
+}
+
+if (use_chromium_quic && use_mdns_responder) {
+ executable("demo") {
+ sources = [
+ "demo/demo.cc",
+ ]
+
+ deps = [
+ "api:api_with_chromium_quic",
+ "base",
+ "discovery/mdns",
+ "platform",
+ ]
+ }
+}
diff --git a/README.md b/README.md
index 7bb4a864..0e83b4db 100644
--- a/README.md
+++ b/README.md
@@ -158,7 +158,7 @@ the build flags available.
./out/Default/unittests
```
-## Continuous build and try jobs
+## Continuous build and try jobs
openscreen uses [LUCI builders](https://ci.chromium.org/p/openscreen/builders)
to monitor the build and test health of the library. Current builders include:
@@ -195,7 +195,7 @@ committed changes locally, simply run:
```
This will run our `PRESUBMIT.sh` script to check style, and if it passes, a new
-code review will be posted on `chromium-review.googlesource.com`.
+code review will be posted on `chromium-review.googlesource.com`.
If you make additional commits to your local branch, then running `git cl
upload` again in the same branch will merge those commits into the ongoing
@@ -234,3 +234,16 @@ After your patch has received one or more LGTM commit it by clicking the
`SUBMIT` button (or, confusingly, `COMMIT QUEUE +2`) in Gerrit. This will run
your patch through the builders again before committing to the main openscreen
repository.
+
+## Chromium Build Differences
+
+Currently, openscreen is also built in Chromium, with some build differences.
+The files that are built are determined by the following build variables:
+ - `build_with_chromium`: `true` when building as part of a Chromium checkout,
+ `false` otherwise. Set by `//build_overrides/build.gni`.
+ - `use_mdns_responder`: `true` by default, `false` when `build_with_chromium`
+ is `true`. Controls whether the default mDNSResponder mDNS implementation is
+ used. Set by `//build/config/services.gni`.
+ - `use_chromium_quic`: `true` by default, `false` when `build_with_chromium`
+ is `true`. Controls whether the Chromium QUIC implementation clone is used.
+ Set by `//build/config/services.gni`.
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 750b0dd9..7423f926 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -2,6 +2,8 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("../build/config/services.gni")
+
source_set("api") {
public_deps = [
"public:api",
@@ -11,20 +13,21 @@ source_set("api") {
]
}
-source_set("api_with_chromium_quic") {
- public_deps = [
- ":api",
- ]
- deps = [
- "impl:chromium_quic_integration",
- ]
+if (use_chromium_quic) {
+ source_set("api_with_chromium_quic") {
+ public_deps = [
+ ":api",
+ ]
+ deps = [
+ "impl:chromium_quic_integration",
+ ]
+ }
}
source_set("api_unittests") {
testonly = true
sources = [
- "impl/mdns_responder_service_unittest.cc",
"impl/presentation/presentation_connection_unittest.cc",
"impl/presentation/presentation_controller_unittest.cc",
"impl/presentation/presentation_receiver_unittest.cc",
@@ -40,12 +43,17 @@ source_set("api_unittests") {
deps = [
":api",
+ "../third_party/abseil",
"impl/quic:test_support",
"impl/testing",
"impl/testing:fakes_unittests",
"public:test_support",
- "//third_party/abseil",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
]
+ configs += [ "..:root_config_overrides" ]
+
+ if (use_mdns_responder) {
+ sources += [ "impl/mdns_responder_service_unittest.cc" ]
+ }
}
diff --git a/api/impl/BUILD.gn b/api/impl/BUILD.gn
index 2e5efeae..4ba40a5b 100644
--- a/api/impl/BUILD.gn
+++ b/api/impl/BUILD.gn
@@ -2,16 +2,12 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("../../build/config/services.gni")
+
source_set("impl") {
sources = [
- "internal_services.cc",
- "internal_services.h",
"mdns_platform_service.cc",
"mdns_platform_service.h",
- "mdns_responder_service.cc",
- "mdns_responder_service.h",
- "mdns_service_listener_factory.cc",
- "mdns_service_publisher_factory.cc",
"network_service_manager.cc",
"presentation/presentation_common.cc",
"presentation/presentation_common.h",
@@ -28,34 +24,48 @@ source_set("impl") {
"service_publisher_impl.h",
]
+ if (use_mdns_responder) {
+ sources += [
+ "internal_services.cc",
+ "internal_services.h",
+ "mdns_responder_service.cc",
+ "mdns_responder_service.h",
+ "mdns_service_listener_factory.cc",
+ "mdns_service_publisher_factory.cc",
+ ]
+ }
+
public_deps = [
+ "../../msgs",
"../public:api",
- "//msgs",
]
deps = [
+ "../../base",
+ "../../platform",
"quic",
- "//base",
- "//platform",
]
+ configs += [ "../..:root_config_overrides" ]
}
-source_set("chromium_quic_integration") {
- sources = [
- "protocol_connection_client_factory.cc",
- "protocol_connection_server_factory.cc",
- "quic/quic_connection_factory_impl.cc",
- "quic/quic_connection_factory_impl.h",
- "quic/quic_connection_impl.cc",
- "quic/quic_connection_impl.h",
- ]
+if (use_chromium_quic) {
+ source_set("chromium_quic_integration") {
+ sources = [
+ "protocol_connection_client_factory.cc",
+ "protocol_connection_server_factory.cc",
+ "quic/quic_connection_factory_impl.cc",
+ "quic/quic_connection_factory_impl.h",
+ "quic/quic_connection_impl.cc",
+ "quic/quic_connection_impl.h",
+ ]
- public_configs = [ "//third_party/chromium_quic:chromium_quic_config" ]
+ public_configs = [ "//third_party/chromium_quic:chromium_quic_config" ]
- deps = [
- "quic",
- "//base",
- "//msgs",
- "//platform",
- "//third_party/chromium_quic",
- ]
+ deps = [
+ "quic",
+ "//base",
+ "//msgs",
+ "//platform",
+ "//third_party/chromium_quic",
+ ]
+ }
}
diff --git a/api/impl/presentation/presentation_common.cc b/api/impl/presentation/presentation_common.cc
index fabc567b..773e8826 100644
--- a/api/impl/presentation/presentation_common.cc
+++ b/api/impl/presentation/presentation_common.cc
@@ -4,7 +4,7 @@
#include "api/impl/presentation/presentation_common.h"
-#include "third_party/abseil/src/absl/strings/ascii.h"
+#include "absl/strings/ascii.h"
namespace openscreen {
namespace presentation {
@@ -43,4 +43,4 @@ PresentationID::PresentationID(std::string presentation_id)
}
} // namespace presentation
-} // namespace openscreen \ No newline at end of file
+} // namespace openscreen
diff --git a/api/impl/presentation/presentation_connection.cc b/api/impl/presentation/presentation_connection.cc
index 8f525226..65722b3d 100644
--- a/api/impl/presentation/presentation_connection.cc
+++ b/api/impl/presentation/presentation_connection.cc
@@ -7,6 +7,7 @@
#include <algorithm>
#include <memory>
+#include "absl/strings/string_view.h"
#include "api/impl/presentation/presentation_common.h"
#include "api/public/network_service_manager.h"
#include "api/public/presentation/presentation_controller.h"
@@ -15,7 +16,6 @@
#include "base/std_util.h"
#include "msgs/osp_messages.h"
#include "platform/api/logging.h"
-#include "third_party/abseil/src/absl/strings/string_view.h"
// TODO(issue/27): Address TODOs in this file
namespace openscreen {
diff --git a/api/impl/presentation/presentation_connection_unittest.cc b/api/impl/presentation/presentation_connection_unittest.cc
index ab3ed21d..1df47ca6 100644
--- a/api/impl/presentation/presentation_connection_unittest.cc
+++ b/api/impl/presentation/presentation_connection_unittest.cc
@@ -6,13 +6,13 @@
#include <memory>
+#include "absl/strings/string_view.h"
#include "api/impl/quic/testing/fake_quic_connection.h"
#include "api/impl/quic/testing/fake_quic_connection_factory.h"
#include "api/impl/quic/testing/quic_test_support.h"
#include "api/impl/testing/fake_clock.h"
#include "api/public/network_service_manager.h"
#include "api/public/presentation/presentation_controller.h"
-#include "third_party/abseil/src/absl/strings/string_view.h"
#include "third_party/googletest/src/googlemock/include/gmock/gmock.h"
#include "third_party/googletest/src/googletest/include/gtest/gtest.h"
diff --git a/api/impl/quic/BUILD.gn b/api/impl/quic/BUILD.gn
index 8d3a5f83..72d5d706 100644
--- a/api/impl/quic/BUILD.gn
+++ b/api/impl/quic/BUILD.gn
@@ -16,9 +16,10 @@ source_set("quic") {
deps = [
"../../public:api",
- "//base",
- "//platform",
+ "../../../base",
+ "../../../platform",
]
+ configs += [ "../../..:root_config_overrides" ]
}
source_set("test_support") {
@@ -33,9 +34,10 @@ source_set("test_support") {
]
deps = [
- "//base",
- "//msgs",
- "//platform",
+ "../../../base",
+ "../../../msgs",
+ "../../../platform",
"//third_party/googletest:gmock",
]
+ configs += [ "../../..:root_config_overrides" ]
}
diff --git a/api/impl/quic/quic_connection_impl.cc b/api/impl/quic/quic_connection_impl.cc
index 2abf2e41..5371f68c 100644
--- a/api/impl/quic/quic_connection_impl.cc
+++ b/api/impl/quic/quic_connection_impl.cc
@@ -7,10 +7,10 @@
#include <limits>
#include <memory>
+#include "absl/types/optional.h"
#include "api/impl/quic/quic_connection_factory_impl.h"
#include "base/error.h"
#include "platform/api/logging.h"
-#include "third_party/abseil/src/absl/types/optional.h"
#include "third_party/chromium_quic/src/net/third_party/quic/platform/impl/quic_chromium_clock.h"
namespace openscreen {
diff --git a/api/impl/testing/BUILD.gn b/api/impl/testing/BUILD.gn
index db6084e9..b9090b95 100644
--- a/api/impl/testing/BUILD.gn
+++ b/api/impl/testing/BUILD.gn
@@ -14,9 +14,10 @@ source_set("testing") {
]
deps = [
- "//discovery/mdns",
- "//platform",
+ "../../../discovery/mdns:mdns_interface",
+ "../../../platform",
]
+ configs += [ "../../..:root_config_overrides" ]
}
source_set("fakes_unittests") {
@@ -28,7 +29,8 @@ source_set("fakes_unittests") {
deps = [
":testing",
- "//third_party/abseil",
+ "../../../third_party/abseil",
"//third_party/googletest:gtest",
]
+ configs += [ "../../..:root_config_overrides" ]
}
diff --git a/api/public/BUILD.gn b/api/public/BUILD.gn
index e22645e7..17b29435 100644
--- a/api/public/BUILD.gn
+++ b/api/public/BUILD.gn
@@ -34,12 +34,13 @@ source_set("api") {
]
public_deps = [
- "//msgs",
+ "../../msgs",
]
deps = [
- "//base",
- "//platform",
+ "../../base",
+ "../../platform",
]
+ configs += [ "../..:root_config_overrides" ]
}
source_set("test_support") {
diff --git a/api/public/message_demuxer.cc b/api/public/message_demuxer.cc
index 8ad5257e..4ceec7f5 100644
--- a/api/public/message_demuxer.cc
+++ b/api/public/message_demuxer.cc
@@ -170,7 +170,7 @@ MessageDemuxer::HandleStreamBufferResult MessageDemuxer::HandleStreamBufferLoop(
&default_callbacks_, buffer);
}
}
- OSP_LOG_IF(VERBOSE, !result.handled) << "no message handler matched";
+ OSP_VLOG_IF(!result.handled) << "no message handler matched";
} while (result.consumed && !buffer->empty());
return result;
}
diff --git a/api/public/presentation/presentation_connection.h b/api/public/presentation/presentation_connection.h
index 5a3f030b..e8624629 100644
--- a/api/public/presentation/presentation_connection.h
+++ b/api/public/presentation/presentation_connection.h
@@ -11,13 +11,13 @@
#include <string>
#include <vector>
+#include "absl/strings/string_view.h"
+#include "absl/types/optional.h"
#include "api/public/message_demuxer.h"
#include "base/ip_address.h"
#include "base/macros.h"
#include "platform/api/logging.h"
#include "platform/api/time.h"
-#include "third_party/abseil/src/absl/strings/string_view.h"
-#include "third_party/abseil/src/absl/types/optional.h"
namespace openscreen {
diff --git a/api/public/presentation/presentation_controller.h b/api/public/presentation/presentation_controller.h
index ada59183..64233282 100644
--- a/api/public/presentation/presentation_controller.h
+++ b/api/public/presentation/presentation_controller.h
@@ -9,12 +9,12 @@
#include <memory>
#include <string>
+#include "absl/types/optional.h"
#include "api/public/presentation/presentation_connection.h"
#include "api/public/protocol_connection.h"
#include "api/public/service_listener.h"
#include "base/error.h"
#include "platform/api/time.h"
-#include "third_party/abseil/src/absl/types/optional.h"
namespace openscreen {
namespace presentation {
diff --git a/base/BUILD.gn b/base/BUILD.gn
index 7bba1f4a..187620fe 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -18,8 +18,9 @@ source_set("base") {
]
deps = [
- "//third_party/abseil",
+ "../third_party/abseil",
]
+ configs += [ "..:root_config_overrides" ]
}
source_set("base_unittests") {
@@ -33,8 +34,9 @@ source_set("base_unittests") {
deps = [
":base",
- "//third_party/abseil",
+ "../third_party/abseil",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
]
+ configs += [ "..:root_config_overrides" ]
}
diff --git a/base/ip_address.cc b/base/ip_address.cc
index fc7924df..27213f98 100644
--- a/base/ip_address.cc
+++ b/base/ip_address.cc
@@ -7,8 +7,8 @@
#include <cstring>
#include <iomanip>
+#include "absl/types/optional.h"
#include "platform/api/logging.h"
-#include "third_party/abseil/src/absl/types/optional.h"
namespace openscreen {
diff --git a/build/config/services.gni b/build/config/services.gni
new file mode 100644
index 00000000..1d3d3466
--- /dev/null
+++ b/build/config/services.gni
@@ -0,0 +1,13 @@
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build_overrides/build.gni")
+
+use_chromium_quic = true
+use_mdns_responder = true
+
+if (build_with_chromium) {
+ use_chromium_quic = false
+ use_mdns_responder = false
+}
diff --git a/demo/demo.cc b/demo/demo.cc
index 9e51eb4d..5fb42203 100644
--- a/demo/demo.cc
+++ b/demo/demo.cc
@@ -12,6 +12,7 @@
#include <string>
#include <vector>
+#include "absl/strings/string_view.h"
#include "api/public/mdns_service_listener_factory.h"
#include "api/public/mdns_service_publisher_factory.h"
#include "api/public/message_demuxer.h"
@@ -28,7 +29,6 @@
#include "platform/api/logging.h"
#include "platform/api/network_interface.h"
#include "platform/api/time.h"
-#include "third_party/abseil/src/absl/strings/string_view.h"
#include "third_party/tinycbor/src/src/cbor.h"
namespace openscreen {
diff --git a/discovery/mdns/BUILD.gn b/discovery/mdns/BUILD.gn
index 61f35931..76590be9 100644
--- a/discovery/mdns/BUILD.gn
+++ b/discovery/mdns/BUILD.gn
@@ -2,36 +2,21 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-executable("embedder_demo") {
- sources = [
- "embedder_demo.cc",
- ]
-
- deps = [
- ":mdns",
- ]
-}
+import("../../build/config/services.gni")
-source_set("mdns") {
+source_set("mdns_interface") {
sources = [
"domain_name.cc",
"domain_name.h",
"mdns_responder_adapter.cc",
"mdns_responder_adapter.h",
- "mdns_responder_adapter_impl.cc",
- "mdns_responder_adapter_impl.h",
- "mdns_responder_platform.cc",
- "mdns_responder_platform.h",
]
public_deps = [
- "//base",
- "//platform",
- ]
-
- deps = [
- "//third_party/mDNSResponder:core",
+ "../../base",
+ "../../platform",
]
+ configs += [ "../..:root_config_overrides" ]
}
source_set("mdns_unittests") {
@@ -39,12 +24,48 @@ source_set("mdns_unittests") {
sources = [
"domain_name_unittest.cc",
- "mdns_responder_adapter_impl_unittest.cc",
]
deps = [
- ":mdns",
+ ":mdns_interface",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
]
+ configs += [ "../..:root_config_overrides" ]
+
+ if (use_mdns_responder) {
+ sources += [ "mdns_responder_adapter_impl_unittest.cc" ]
+ deps += [ ":mdns" ]
+ }
+}
+
+if (use_mdns_responder) {
+ executable("embedder_demo") {
+ sources = [
+ "embedder_demo.cc",
+ ]
+
+ deps = [
+ ":mdns",
+ ]
+ }
+
+ source_set("mdns") {
+ sources = [
+ "mdns_responder_adapter_impl.cc",
+ "mdns_responder_adapter_impl.h",
+ "mdns_responder_platform.cc",
+ "mdns_responder_platform.h",
+ ]
+
+ public_deps = [
+ ":mdns_interface",
+ "../../base",
+ "../../platform",
+ ]
+
+ deps = [
+ "../../third_party/mDNSResponder:core",
+ ]
+ }
}
diff --git a/discovery/mdns/domain_name.cc b/discovery/mdns/domain_name.cc
index e96e9fea..67efcd5e 100644
--- a/discovery/mdns/domain_name.cc
+++ b/discovery/mdns/domain_name.cc
@@ -87,7 +87,7 @@ Error DomainName::Append(const DomainName& after) {
}
std::vector<std::string> DomainName::GetLabels() const {
- OSP_DCHECK_GT(domain_name_.size(), 0);
+ OSP_DCHECK_GT(domain_name_.size(), 0u);
std::vector<std::string> result;
auto it = domain_name_.begin();
while (*it != 0) {
@@ -106,7 +106,7 @@ bool DomainNameComparator::operator()(const DomainName& a,
std::ostream& operator<<(std::ostream& os, const DomainName& domain_name) {
const auto& data = domain_name.domain_name();
- OSP_DCHECK_GT(data.size(), 0);
+ OSP_DCHECK_GT(data.size(), 0u);
auto it = data.begin();
while (*it != 0) {
size_t length = *it++;
diff --git a/msgs/BUILD.gn b/msgs/BUILD.gn
index f886dea3..aec80a78 100644
--- a/msgs/BUILD.gn
+++ b/msgs/BUILD.gn
@@ -12,17 +12,18 @@ source_set("msgs") {
":cddl_gen",
]
deps = [
- "//third_party/abseil",
- "//third_party/tinycbor",
+ "../third_party/abseil",
+ "../third_party/tinycbor",
]
+ configs += [ "..:root_config_overrides" ]
}
config("cddl_gen_config") {
- include_dirs = [ "$root_gen_dir" ]
+ include_dirs = [ "$root_gen_dir" + "/" + rebase_path("..", "//") ]
}
action("cddl_gen") {
- script = "//tools/cddl/cddl.py"
+ script = "../tools/cddl/cddl.py"
sources = [
"osp_messages.cddl",
]
@@ -47,7 +48,7 @@ action("cddl_gen") {
] + rebase_path(sources, root_build_dir)
deps = [
- "//tools/cddl",
+ "../tools/cddl",
]
}
@@ -62,4 +63,5 @@ source_set("unittests") {
":msgs",
"//third_party/googletest:gtest",
]
+ configs += [ "..:root_config_overrides" ]
}
diff --git a/msgs/presentation/BUILD.gn b/msgs/presentation/BUILD.gn
deleted file mode 100644
index 7273b23f..00000000
--- a/msgs/presentation/BUILD.gn
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2018 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-source_set("presentation") {
- sources = [
- "messages.cc",
- "messages.h",
- ]
-
- deps = [
- "//third_party/tinycbor",
- ]
-}
-
-source_set("unittests") {
- testonly = true
-
- sources = [
- "messages_unittest.cc",
- ]
-
- deps = [
- ":presentation",
- "//third_party/googletest:gtest",
- ]
-}
diff --git a/platform/BUILD.gn b/platform/BUILD.gn
index 18d12f4f..daa89a5f 100644
--- a/platform/BUILD.gn
+++ b/platform/BUILD.gn
@@ -16,29 +16,23 @@ source_set("platform") {
"api/network_interface.h",
"api/socket.h.",
"api/time.h",
- "base/event_loop.cc", # TODO: separate API from impl.
- "base/event_loop.h", # TODO: separate API from impl.
+ "base/event_loop.cc",
+ "base/event_loop.h",
+ "base/time.cc",
]
+ deps = []
public_deps = [
- "//base",
- "//third_party/abseil",
+ "../base",
+ "../third_party/abseil",
]
+ configs += [ "..:root_config_overrides" ]
if (build_with_chromium) {
- sources += [
- "chromium/event_waiter.cc",
- "chromium/logging.cc",
- "chromium/network_interface.cc",
- "chromium/socket.cc",
- "chromium/socket.h",
- "chromium/time.cc",
- ]
+ deps += [ ":chromium" ]
+ public_deps += [ "//base" ]
} else { # !build_with_chromium
- sources += [
- "base/logging.cc",
- "base/time.cc",
- ]
+ sources += [ "base/logging.cc" ]
if (is_linux) {
sources += [ "linux/network_interface.cc" ]
@@ -61,6 +55,21 @@ source_set("platform") {
}
}
+if (build_with_chromium) {
+ source_set("chromium") {
+ sources = [
+ "chromium/logging.cc",
+ ]
+
+ deps = [
+ "../third_party/abseil",
+ "//base",
+ ]
+
+ configs += [ "..:root_config_overrides" ]
+ }
+}
+
source_set("platform_unittests") {
testonly = true
@@ -78,4 +87,6 @@ source_set("platform_unittests") {
":platform",
"//third_party/googletest:gtest",
]
+
+ configs += [ "..:root_config_overrides" ]
}
diff --git a/platform/api/logging.h b/platform/api/logging.h
index 4f3c4184..1f051f03 100644
--- a/platform/api/logging.h
+++ b/platform/api/logging.h
@@ -7,7 +7,7 @@
#include <sstream>
-#include "third_party/abseil/src/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
namespace openscreen {
namespace platform {
@@ -64,9 +64,6 @@ class LogMessage {
__FILE__, __LINE__) \
.stream()
-// Necessary for auto macro in OSP_LOG_IF
-#define OSP_LOG_VERBOSE OSP_VLOG
-
#define OSP_LOG_INFO \
openscreen::platform::LogMessage(openscreen::platform::LogLevel::kInfo, \
__FILE__, __LINE__) \
@@ -99,6 +96,7 @@ class Voidify {
#define OSP_LAZY_STREAM(stream, condition) \
!(condition) ? (void)0 : openscreen::platform::detail::Voidify() & (stream)
#define OSP_EAT_STREAM OSP_LAZY_STREAM(OSP_LOG, false)
+#define OSP_VLOG_IF(condition) OSP_LAZY_STREAM(OSP_VLOG, (condition))
#define OSP_LOG_IF(level, condition) \
OSP_LAZY_STREAM(OSP_LOG_##level, (condition))
@@ -141,11 +139,12 @@ class Voidify {
#define OSP_DCHECK_GE(a, b) OSP_EAT_STREAM << !((a) >= (b))
#endif
-#define OSP_DVLOG OSP_LOG_IF(VERBOSE, OSP_DCHECK_IS_ON())
+#define OSP_DVLOG OSP_VLOG_IF(OSP_DCHECK_IS_ON())
#define OSP_DLOG_INFO OSP_LOG_IF(INFO, OSP_DCHECK_IS_ON())
#define OSP_DLOG_WARN OSP_LOG_IF(WARN, OSP_DCHECK_IS_ON())
#define OSP_DLOG_ERROR OSP_LOG_IF(ERROR, OSP_DCHECK_IS_ON())
#define OSP_DLOG_FATAL OSP_LOG_IF(FATAL, OSP_DCHECK_IS_ON())
+#define OSP_DVLOG_IF(condition) OSP_VLOG_IF(OSP_DCHECK_IS_ON() && (condition))
#define OSP_DLOG_IF(level, condition) \
OSP_LOG_IF(level, OSP_DCHECK_IS_ON() && (condition))
diff --git a/platform/base/event_loop.cc b/platform/base/event_loop.cc
index 2b2b23a5..90587b49 100644
--- a/platform/base/event_loop.cc
+++ b/platform/base/event_loop.cc
@@ -24,7 +24,7 @@ Error ReceiveDataFromEvent(const UdpSocketReadableEvent& read_event,
<< len.error().message();
return len.error();
}
- OSP_DCHECK_LE(len.value(), kUdpMaxPacketSize);
+ OSP_DCHECK_LE(len.value(), static_cast<size_t>(kUdpMaxPacketSize));
data->length = len.value();
data->socket = read_event.socket;
return Error::None();
diff --git a/platform/chromium/logging.cc b/platform/chromium/logging.cc
new file mode 100644
index 00000000..90d3a104
--- /dev/null
+++ b/platform/chromium/logging.cc
@@ -0,0 +1,52 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "platform/api/logging.h"
+
+#include "base/logging.h"
+
+namespace openscreen {
+namespace platform {
+namespace {
+
+::logging::LogSeverity MapLogLevel(LogLevel level) {
+ switch (level) {
+ case LogLevel::kVerbose:
+ return ::logging::LOG_VERBOSE;
+ case LogLevel::kInfo:
+ return ::logging::LOG_INFO;
+ case LogLevel::kWarning:
+ return ::logging::LOG_WARNING;
+ case LogLevel::kError:
+ return ::logging::LOG_ERROR;
+ case LogLevel::kFatal:
+ return ::logging::LOG_FATAL;
+ }
+}
+
+} // namespace
+
+// We don't initialize Chromium's logging.
+void LogInit(const char* filename) {}
+
+// We don't set Chromium's logging level.
+void SetLogLevel(LogLevel level) {}
+
+void LogWithLevel(LogLevel level,
+ absl::string_view file,
+ int line,
+ absl::string_view msg) {
+ ::logging::LogMessage(file.data(), line, MapLogLevel(level)).stream() << msg;
+}
+
+void Break() {
+#if defined(OFFICIAL_BUILD) && defined(NDEBUG)
+ IMMEDIATE_CRASH();
+#else
+ ::base::debug::BreakDebugger();
+#endif
+}
+
+} // namespace platform
+} // namespace openscreen
diff --git a/platform/linux/network_interface.cc b/platform/linux/network_interface.cc
index 303c96f5..dbc2e3d3 100644
--- a/platform/linux/network_interface.cc
+++ b/platform/linux/network_interface.cc
@@ -23,10 +23,10 @@
#include <algorithm>
#include <cstring>
+#include "absl/strings/string_view.h"
#include "base/ip_address.h"
#include "base/scoped_pipe.h"
#include "platform/api/logging.h"
-#include "third_party/abseil/src/absl/strings/string_view.h"
namespace openscreen {
namespace platform {
diff --git a/sample/BUILD.gn b/sample/BUILD.gn
index 09b03b8b..118da316 100644
--- a/sample/BUILD.gn
+++ b/sample/BUILD.gn
@@ -23,6 +23,7 @@ source_set("hello_unittests") {
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
]
+ configs += [ "..:root_config_overrides" ]
}
shared_library("hello_shared") {
@@ -32,6 +33,7 @@ shared_library("hello_shared") {
]
defines = [ "OPENSCREEN_SHARED_IMPLEMENTATION" ]
+ public_configs = [ "..:root_config_overrides" ]
}
static_library("hello_static") {
@@ -39,4 +41,5 @@ static_library("hello_static") {
"hello_static.cc",
"hello_static.h",
]
+ public_configs = [ "..:root_config_overrides" ]
}
diff --git a/third_party/abseil/BUILD.gn b/third_party/abseil/BUILD.gn
index 59d600ce..1aa744bf 100644
--- a/third_party/abseil/BUILD.gn
+++ b/third_party/abseil/BUILD.gn
@@ -2,55 +2,66 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-config("abseil_config") {
- include_dirs = [ "//third_party/abseil/src" ]
-}
+import("//build_overrides/build.gni")
+
+if (build_with_chromium) {
+ source_set("abseil") {
+ public_deps = [
+ "//third_party/abseil-cpp/absl/strings",
+ "//third_party/abseil-cpp/absl/types:optional",
+ ]
+ }
+} else {
+ config("abseil_config") {
+ include_dirs = [ "//third_party/abseil/src" ]
+ }
-source_set("abseil") {
- cflags_cc = [ "-Wno-sign-compare" ]
+ source_set("abseil") {
+ cflags_cc = [ "-Wno-sign-compare" ]
- sources = [
- "src/absl/base/attributes.h",
- "src/absl/base/config.h",
- "src/absl/base/internal/atomic_hook.h",
- "src/absl/base/internal/identity.h",
- "src/absl/base/internal/inline_variable.h",
- "src/absl/base/internal/invoke.h",
- "src/absl/base/internal/raw_logging.cc",
- "src/absl/base/internal/raw_logging.h",
- "src/absl/base/internal/throw_delegate.cc",
- "src/absl/base/internal/throw_delegate.h",
- "src/absl/base/log_severity.h",
- "src/absl/base/macros.h",
- "src/absl/base/optimization.h",
- "src/absl/base/policy_checks.h",
- "src/absl/base/port.h",
- "src/absl/memory/memory.h",
- "src/absl/meta/type_traits.h",
- "src/absl/strings/ascii.cc",
- "src/absl/strings/ascii.h",
- "src/absl/strings/internal/charconv_bigint.cc",
- "src/absl/strings/internal/charconv_bigint.h",
- "src/absl/strings/internal/charconv_parse.cc",
- "src/absl/strings/internal/charconv_parse.h",
- "src/absl/strings/internal/memutil.cc",
- "src/absl/strings/internal/memutil.h",
- "src/absl/strings/charconv.cc",
- "src/absl/strings/charconv.h",
- "src/absl/strings/match.cc",
- "src/absl/strings/match.h",
- "src/absl/strings/numbers.cc",
- "src/absl/strings/numbers.h",
- "src/absl/strings/string_view.cc",
- "src/absl/strings/string_view.h",
- "src/absl/types/bad_optional_access.cc",
- "src/absl/types/bad_optional_access.h",
- "src/absl/types/optional.cc",
- "src/absl/types/optional.h",
- ]
+ sources = [
+ "src/absl/base/attributes.h",
+ "src/absl/base/config.h",
+ "src/absl/base/internal/atomic_hook.h",
+ "src/absl/base/internal/identity.h",
+ "src/absl/base/internal/inline_variable.h",
+ "src/absl/base/internal/invoke.h",
+ "src/absl/base/internal/raw_logging.cc",
+ "src/absl/base/internal/raw_logging.h",
+ "src/absl/base/internal/throw_delegate.cc",
+ "src/absl/base/internal/throw_delegate.h",
+ "src/absl/base/log_severity.h",
+ "src/absl/base/macros.h",
+ "src/absl/base/optimization.h",
+ "src/absl/base/policy_checks.h",
+ "src/absl/base/port.h",
+ "src/absl/memory/memory.h",
+ "src/absl/meta/type_traits.h",
+ "src/absl/strings/ascii.cc",
+ "src/absl/strings/ascii.h",
+ "src/absl/strings/charconv.cc",
+ "src/absl/strings/charconv.h",
+ "src/absl/strings/internal/charconv_bigint.cc",
+ "src/absl/strings/internal/charconv_bigint.h",
+ "src/absl/strings/internal/charconv_parse.cc",
+ "src/absl/strings/internal/charconv_parse.h",
+ "src/absl/strings/internal/memutil.cc",
+ "src/absl/strings/internal/memutil.h",
+ "src/absl/strings/match.cc",
+ "src/absl/strings/match.h",
+ "src/absl/strings/numbers.cc",
+ "src/absl/strings/numbers.h",
+ "src/absl/strings/string_view.cc",
+ "src/absl/strings/string_view.h",
+ "src/absl/types/bad_optional_access.cc",
+ "src/absl/types/bad_optional_access.h",
+ "src/absl/types/optional.cc",
+ "src/absl/types/optional.h",
+ ]
- configs -= [ "//build/config:symbol_visibility_hidden" ]
- configs += [ "//build/config:symbol_visibility_default" ]
- configs -= [ "//build:default_include_dirs" ]
- public_configs = [ ":abseil_config" ]
+ configs -= [ "//build/config:symbol_visibility_hidden" ]
+ configs += [ "//build/config:symbol_visibility_default" ]
+ configs -= [ "//build:default_include_dirs" ]
+ public_configs = [ ":abseil_config" ]
+ }
}
diff --git a/third_party/googletest/BUILD.gn b/third_party/googletest/BUILD.gn
index 729b0889..b7a718ea 100644
--- a/third_party/googletest/BUILD.gn
+++ b/third_party/googletest/BUILD.gn
@@ -2,64 +2,68 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-config("gtest_config") {
- visibility = [ ":*" ]
+import("//build_overrides/build.gni")
- include_dirs = [ "src/googletest/include" ]
+if (!build_with_chromium) {
+ config("gmock_config") {
+ visibility = [ ":*" ]
- cflags_cc = []
- if (is_clang) {
- cflags_cc += [ "-Wno-exit-time-destructors" ]
+ cflags_cc = [
+ # issue/15: GMock does not support the override keyword.
+ "-Wno-inconsistent-missing-override",
+ ]
+ if (is_clang) {
+ cflags_cc += [ "-Wno-exit-time-destructors" ]
+ }
+
+ include_dirs = [ "src/googlemock/include" ]
}
-}
-config("gmock_config") {
- visibility = [ ":*" ]
+ config("gtest_config") {
+ visibility = [ ":*" ]
- cflags_cc = [
- # issue/15: GMock does not support the override keyword.
- "-Wno-inconsistent-missing-override",
- ]
- if (is_clang) {
- cflags_cc += [ "-Wno-exit-time-destructors" ]
- }
+ include_dirs = [ "src/googletest/include" ]
- include_dirs = [ "src/googlemock/include" ]
-}
+ cflags_cc = []
+ if (is_clang) {
+ cflags_cc += [ "-Wno-exit-time-destructors" ]
+ }
+ }
-source_set("gtest") {
- testonly = true
- sources = [
- "src/googletest/include/gtest.h",
- "src/googletest/src/gtest-all.cc",
- ]
+ source_set("gmock") {
+ testonly = true
+ sources = [
+ "src/googlemock/include/gmock.h",
+ "src/googlemock/src/gmock-all.cc",
+ ]
- public_configs = [ ":gtest_config" ]
+ public_configs = [
+ ":gmock_config",
+ ":gtest_config",
+ ]
- include_dirs = [ "src/googletest" ]
-}
+ include_dirs = [ "src/googlemock" ]
+ }
-source_set("gtest_main") {
- testonly = true
- sources = [
- "src/googletest/src/gtest_main.cc",
- ]
- deps = [
- ":gtest",
- ]
-}
+ source_set("gtest") {
+ testonly = true
+ sources = [
+ "src/googletest/include/gtest.h",
+ "src/googletest/src/gtest-all.cc",
+ ]
-source_set("gmock") {
- testonly = true
- sources = [
- "src/googlemock/include/gmock.h",
- "src/googlemock/src/gmock-all.cc",
- ]
+ public_configs = [ ":gtest_config" ]
- public_configs = [
- ":gmock_config",
- ":gtest_config",
- ]
+ include_dirs = [ "src/googletest" ]
+ }
- include_dirs = [ "src/googlemock" ]
+ source_set("gtest_main") {
+ testonly = true
+ sources = [
+ "src/googletest/src/gtest_main.cc",
+ ]
+ deps = [
+ ":gtest",
+ ]
+ }
}
diff --git a/third_party/tinycbor/BUILD.gn b/third_party/tinycbor/BUILD.gn
index f478381c..5127febb 100644
--- a/third_party/tinycbor/BUILD.gn
+++ b/third_party/tinycbor/BUILD.gn
@@ -2,6 +2,8 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build_overrides/build.gni")
+
source_set("tinycbor") {
sources = [
"src/src/cbor.h",
@@ -14,8 +16,12 @@ source_set("tinycbor") {
"src/src/utf8_p.h",
]
- configs -= [ "//build/config:symbol_visibility_hidden" ]
- configs += [ "//build/config:symbol_visibility_default" ]
+ config_path = "//build/config"
+ if (build_with_chromium) {
+ config_path += "/gcc"
+ }
+ configs -= [ "$config_path:symbol_visibility_hidden" ]
+ configs += [ "$config_path:symbol_visibility_default" ]
defines = [ "WITHOUT_OPEN_MEMSTREAM" ]
}
diff --git a/tools/cddl/BUILD.gn b/tools/cddl/BUILD.gn
index 32772ef3..01fe2546 100644
--- a/tools/cddl/BUILD.gn
+++ b/tools/cddl/BUILD.gn
@@ -14,7 +14,8 @@ executable("cddl") {
]
deps = [
- "//platform",
- "//third_party/abseil",
+ "../../platform",
+ "../../third_party/abseil",
]
+ configs += [ "../..:root_config_overrides" ]
}
diff --git a/tools/cddl/codegen.cc b/tools/cddl/codegen.cc
index 2ed3bc52..80d788d7 100644
--- a/tools/cddl/codegen.cc
+++ b/tools/cddl/codegen.cc
@@ -11,7 +11,7 @@
#include <utility>
#include <vector>
-#include "third_party/abseil/src/absl/types/optional.h"
+#include "absl/types/optional.h"
// Convert '-' to '_' to use a CDDL identifier as a C identifier.
std::string ToUnderscoreId(const std::string& x) {
diff --git a/tools/cddl/parse.cc b/tools/cddl/parse.cc
index 74c40c7d..f7ba3ded 100644
--- a/tools/cddl/parse.cc
+++ b/tools/cddl/parse.cc
@@ -12,9 +12,9 @@
#include <sstream>
#include <vector>
+#include "absl/strings/ascii.h"
+#include "absl/strings/match.h"
#include "platform/api/logging.h"
-#include "third_party/abseil/src/absl/strings/ascii.h"
-#include "third_party/abseil/src/absl/strings/match.h"
static_assert(sizeof(absl::string_view::size_type) == sizeof(size_t),
"We assume string_view's size_type is the same as size_t. If "
diff --git a/tools/cddl/parse.h b/tools/cddl/parse.h
index 92f6b7ce..d029c851 100644
--- a/tools/cddl/parse.h
+++ b/tools/cddl/parse.h
@@ -11,7 +11,7 @@
#include <string>
#include <vector>
-#include "third_party/abseil/src/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
struct AstNode {
// These types all correspond to types in the grammar, which can be found in
diff --git a/tools/cddl/sema.cc b/tools/cddl/sema.cc
index 1b938482..61632c1f 100644
--- a/tools/cddl/sema.cc
+++ b/tools/cddl/sema.cc
@@ -14,9 +14,9 @@
#include <string>
#include <vector>
-#include "third_party/abseil/src/absl/strings/numbers.h"
-#include "third_party/abseil/src/absl/strings/string_view.h"
-#include "third_party/abseil/src/absl/types/optional.h"
+#include "absl/strings/numbers.h"
+#include "absl/strings/string_view.h"
+#include "absl/types/optional.h"
CddlType::CddlType()
: map(nullptr), op(CddlType::Op::kNone), constraint_type(nullptr) {}
diff --git a/tools/cddl/sema.h b/tools/cddl/sema.h
index 38399f62..ee5b52da 100644
--- a/tools/cddl/sema.h
+++ b/tools/cddl/sema.h
@@ -12,7 +12,7 @@
#include <utility>
#include <vector>
-#include "third_party/abseil/src/absl/types/optional.h"
+#include "absl/types/optional.h"
#include "tools/cddl/parse.h"
struct CddlGroup;