shill: ChromeOS DBus proxy for supplicant process interface

DBus properties are not generated by the proxy generator
since supplicant DBus interface doesn't export ObjectManager.
So manually create/register properties.

Note: PropertySet::Set method is async call, proxy interface APIs
that uses PropertySet::Set method will always return success, with
failures being logged in the callback.  Since the caller of those
APIs generally only use the return status for logging purpose.

BUG=chromium:507869
TEST=USE="asan clang chromeos_dbus" FEATURES=test emerge-$BOARD shill

Change-Id: I583fc517525a354fa783db4cf17f20397169541e
Reviewed-on: https://chromium-review.googlesource.com/286545
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
diff --git a/shill.gyp b/shill.gyp
index fbdbe9e..6227bc6 100644
--- a/shill.gyp
+++ b/shill.gyp
@@ -362,6 +362,27 @@
             'supplicant/supplicant_process_proxy.cc',
             'supplicant/wpa_supplicant.cc',
           ],
+          'conditions': [
+            ['USE_chromeos_dbus == 1', {
+              'sources': [
+                'dbus/chromeos_supplicant_process_proxy.cc',
+              ],
+              'actions': [
+                {
+                  'action_name': 'generate-supplicant-proxies',
+                  'variables': {
+                    'proxy_output_file': 'include/supplicant/dbus-proxies.h',
+                  },
+                  'sources': [
+                    'dbus_bindings/supplicant-interface.xml',
+                    'dbus_bindings/supplicant-network.xml',
+                    'dbus_bindings/supplicant-process.xml',
+                  ],
+                  'includes': ['../common-mk/generate-dbus-proxies.gypi'],
+                },
+              ],
+            }],
+          ],
         }],
         ['USE_wimax == 1', {
           'sources': [