chromeos-dbus-bindings: Add "ignore_interfaces" option to config.json

Some services (e.g. Avahi) include system interfaces such as
org.freedesktop.DBus.Introspectable as part of their object
description.

This causes problems when generating multiple proxies since the
same interface is included more than once and the resutling proxy
code fails to compile.

Add an optional setting "ignore_interfaces" to the config .json
file to allow to list the interfaces we are not interested in.

Also, it turns out that a lot of places use "/" object path
legitimately, so I removed that extra hacky check for "/" path
and treating it as if not specified. If some objects do use
"/" incorrectly, their XML files should be fixed to omit
<name> attribute on interface completely.

BUG=chromium:438685
TEST=FEATURES=test emerge-link chromeos-dbus-bindings

Change-Id: I692e4621f3d36e683a21f96b72bb147b2dd8d88a
Reviewed-on: https://chromium-review.googlesource.com/232865
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
5 files changed
tree: 82dec0cb0873f5818a2b2db9906b490b6eed5253
  1. chromeos-dbus-bindings/