Break dependencies on peerd DBus XML files
Fix all places we refer to peerd's XML files defining
the DBus interface directly. Now we can depend on libpeerd-client
to get up to date headers instead.
On the way, make buffet's dependency on peerd optional at compile time
by looking for the USE_wifi_bootstrapping flag.
BUG=chromium:516514
TEST=built buffet/brdebug with these changes
CQ-DEPEND=CL:290455
Change-Id: Ie03499952c154b39c1ad2b21ab04a64ad85c31a8
Reviewed-on: https://chromium-review.googlesource.com/290551
Trybot-Ready: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
diff --git a/buffet/buffet.gyp b/buffet/buffet.gyp
index fb2d151..5b229b6 100644
--- a/buffet/buffet.gyp
+++ b/buffet/buffet.gyp
@@ -19,10 +19,9 @@
'dbus_adaptors_out_dir': 'include/buffet',
'dbus_service_config': 'dbus_bindings/dbus-service-config.json',
'exported_deps': [
- 'libwebserv-<(libbase_ver)',
'libweave-<(libbase_ver)',
],
- 'deps': ['<@(exported_deps)'],
+ 'deps': ['>@(exported_deps)'],
},
'all_dependent_settings': {
'variables': {
@@ -41,9 +40,25 @@
'dbus_constants.cc',
'http_transport_client.cc',
'manager.cc',
- 'peerd_client.cc',
'shill_client.cc',
- 'webserv_client.cc',
+ ],
+ 'conditions': [
+ ['USE_wifi_bootstrapping == 1', {
+ 'variables': {
+ 'exported_deps': [
+ 'libpeerd-client',
+ 'libwebserv-<(libbase_ver)',
+ ],
+ },
+ 'all_dependent_settings': {
+ 'defines': [ 'BUFFET_USE_WIFI_BOOTSTRAPPING' ],
+ },
+ 'defines': [ 'BUFFET_USE_WIFI_BOOTSTRAPPING' ],
+ 'sources': [
+ 'webserv_client.cc',
+ 'peerd_client.cc',
+ ],
+ }],
],
'includes': ['../common-mk/generate-dbus-adaptors.gypi'],
'actions': [
@@ -60,20 +75,6 @@
'includes': ['../common-mk/generate-dbus-proxies.gypi'],
},
{
- # Import D-Bus bindings from peerd.
- 'action_name': 'generate-peerd-proxies',
- 'variables': {
- 'dbus_service_config': '../peerd/dbus_bindings/dbus-service-config.json',
- 'proxy_output_file': 'include/peerd/dbus-proxies.h'
- },
- 'sources': [
- '../peerd/dbus_bindings/org.chromium.peerd.Manager.xml',
- '../peerd/dbus_bindings/org.chromium.peerd.Peer.xml',
- '../peerd/dbus_bindings/org.chromium.peerd.Service.xml',
- ],
- 'includes': ['../common-mk/generate-dbus-proxies.gypi'],
- },
- {
# Import D-Bus bindings from shill.
'action_name': 'generate-shill-proxies',
'variables': {
diff --git a/buffet/manager.cc b/buffet/manager.cc
index f0ebff9..9a07a77 100644
--- a/buffet/manager.cc
+++ b/buffet/manager.cc
@@ -27,9 +27,12 @@
#include "buffet/dbus_command_dispatcher.h"
#include "buffet/dbus_conversion.h"
#include "buffet/http_transport_client.h"
-//#include "buffet/peerd_client.h"
//#include "buffet/shill_client.h"
+
+#ifdef BUFFET_USE_WIFI_BOOTSTRAPPING
+//#include "buffet/peerd_client.h"
//#include "buffet/webserv_client.h"
+#endif // BUFFET_USE_WIFI_BOOTSTRAPPING
using chromeos::dbus_utils::AsyncEventSequencer;
using chromeos::dbus_utils::ExportedObjectManager;
@@ -61,14 +64,20 @@
AsyncEventSequencer* sequencer) {
http_client_.reset(new HttpTransportClient);
// shill_client_.reset(new ShillClient{dbus_object_.GetBus(), device_whitelist});
+ weave::Mdns* mdns{nullptr};
+ weave::HttpServer* http_server{nullptr};
+#ifdef BUFFET_USE_WIFI_BOOTSTRAPPING
// if (!options.disable_privet) {
// peerd_client_.reset(new PeerdClient{dbus_object_.GetBus()});
// web_serv_client_.reset(new WebServClient{dbus_object_.GetBus(), sequencer});
+// mdns = peerd_client_.get();
+// http_server = web_serv_client_.get();
// }
+#endif // BUFFET_USE_WIFI_BOOTSTRAPPING
device_ = weave::Device::Create();
device_->Start(options, http_client_.get(), nullptr /*shill_client_.get()*/,
- nullptr /*peerd_client_.get()*/, nullptr /*web_serv_client_.get()*/);
+ mdns, http_server);
command_dispatcher_.reset(new DBusCommandDispacher{
dbus_object_.GetObjectManager(), device_->GetCommands()});
diff --git a/buffet/manager.h b/buffet/manager.h
index 873c24f..19d8772 100644
--- a/buffet/manager.h
+++ b/buffet/manager.h
@@ -121,8 +121,10 @@
std::unique_ptr<HttpTransportClient> http_client_;
// std::unique_ptr<ShillClient> shill_client_;
+#ifdef BUFFET_USE_WIFI_BOOTSTRAPPING
// std::unique_ptr<PeerdClient> peerd_client_;
// std::unique_ptr<WebServClient> web_serv_client_;
+#endif // BUFFET_USE_WIFI_BOOTSTRAPPING
std::unique_ptr<weave::Device> device_;
std::unique_ptr<DBusCommandDispacher> command_dispatcher_;