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_;