Add build rules to generate native DBus interfaces
With this patch, we can now write Android makefiles like:
include $(CLEAR_VARS)
LOCAL_MODULE := dbus-binding-example
LOCAL_SRC_FILES := main.cpp \
dbus-service-config.json \
org.example.Daemon.Command.dbus.xml \
org.example.Daemon.Manager.dbus.xml
include $(BUILD_EXECUTABLE)
This will cause header files defining native DBus interfaces
to be generated. These can be included from main.cpp to
easily expose object oriented interface over DBus.
Bug: 22608897
Change-Id: Ic4304ac8de77de74d6955ed17789e5477be9a53e
diff --git a/core/definitions.mk b/core/definitions.mk
index f688f41..7760306 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -968,6 +968,21 @@
endef
+######################################################################
+## Commands for running protoc to compile .proto into .pb.cc and .pb.h
+######################################################################
+define generate-dbus-bindings
+@echo "Generating DBus bindings for $(PRIVATE_DBUS_MODULE)"
+@mkdir -p $(PRIVATE_DBUS_HEADER_DIRECTORY)
+$(hide) $(DBUS_GENERATOR) \
+ --service-config=$(PRIVATE_DBUS_SERVICE_CONFIG) \
+ --adaptor=$(PRIVATE_DBUS_ADAPTORS_HEADER) \
+ --proxy=$(PRIVATE_DBUS_PROXIES_HEADER) \
+ --method-names=$(PRIVATE_DBUS_METHOD_NAMES_HEADER) \
+ $(PRIVATE_DBUS_INTERFACE_DEFINITIONS)
+endef
+
+
###########################################################
## Commands for running gcc to compile a C++ file
###########################################################