aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJo Shields <jms@destiny>2010-09-19 20:41:59 +0100
committerJo Shields <jms@destiny>2010-09-19 20:41:59 +0100
commitb598108bd71748ab0dc7088a36835864f5f96e22 (patch)
treec7dd4ac64de4df4e2b83beb5c9a918a1bfa54f1f
parentc2aee8ac8876b03c1fcddaeca884620f973d698d (diff)
downloadayatana-indicator-application-b598108bd71748ab0dc7088a36835864f5f96e22.tar.gz
ayatana-indicator-application-b598108bd71748ab0dc7088a36835864f5f96e22.tar.bz2
ayatana-indicator-application-b598108bd71748ab0dc7088a36835864f5f96e22.zip
gapi2-parser cannot cope with multiple signals connected to the same method - it will bail out, complaining it cannot find a method to match the second signal.
This patch modifies the build system to copy app-indicator.c locally, with the "bad" X_NEW_LABEL signal removed, and use that copy to build the binding.
-rw-r--r--bindings/mono/Makefile.am8
-rw-r--r--bindings/mono/app-indicator.sources.xml2
2 files changed, 8 insertions, 2 deletions
diff --git a/bindings/mono/Makefile.am b/bindings/mono/Makefile.am
index 98fe6f9..b504d9a 100644
--- a/bindings/mono/Makefile.am
+++ b/bindings/mono/Makefile.am
@@ -15,6 +15,8 @@ ASSEMBLY = $(ASSEMBLY_NAME).dll
POLICY = policy.$(POLICY_VERSION).$(ASSEMBLY_NAME)
POLICY_VERSION = 0.0
DLLPOLICY = $(POLICY).dll
+WRAPPER_FREE_BINDING_SRC = ../../src/app-indicator.c
+WRAPPER_FREE_BINDING = app-indicator.c
TARGET = \
$(ASSEMBLY) \
@@ -35,6 +37,7 @@ CLEANFILES = \
$(RAW_API) \
$(TEST) \
$(DLLPOLICY) \
+ $(WRAPPER_FREE_BINDING) \
$(POLICY).config
DISTCLEANFILES = $(ASSEMBLY).config
@@ -57,9 +60,12 @@ GACUTIL_FLAGS=-package $(ASSEMBLY_NAME) -root $(DESTDIR)$(prefix)/lib
references = $(GTK_SHARP_LIBS)
test_references = $(GTK_SHARP_LIBS) $(NUNIT_LIBS) -r:$(ASSEMBLY)
-$(RAW_API): app-indicator.sources.xml
+$(RAW_API): app-indicator.sources.xml $(WRAPPER_FREE_BINDING)
$(GAPI_PARSER) app-indicator.sources.xml
+$(WRAPPER_FREE_BINDING): $(WRAPPER_FREE_BINDING_SRC)
+ sed '/signals\[X_NEW_LABEL\] /,+6d' $(WRAPPER_FREE_BINDING_SRC) > $(WRAPPER_FREE_BINDING)
+
$(MIDDLE_API): $(METADATA) $(RAW_API)
cp $(srcdir)/$(RAW_API) $(MIDDLE_API)
chmod u+w $(MIDDLE_API)
diff --git a/bindings/mono/app-indicator.sources.xml b/bindings/mono/app-indicator.sources.xml
index 2649eb4..97faadf 100644
--- a/bindings/mono/app-indicator.sources.xml
+++ b/bindings/mono/app-indicator.sources.xml
@@ -2,7 +2,7 @@
<api filename="libappindicator-api.raw">
<library name="libappindicator.so.0">
<namespace name="AppIndicator">
- <file>../../src/app-indicator.c</file>
+ <file>app-indicator.c</file>
<file>../../src/app-indicator-enum-types.c</file>
<file>../../src/app-indicator-enum-types.h</file>
<file>../../src/app-indicator.h</file>