summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStef Walter <stefw@redhat.com>2014-03-23 09:12:50 +0100
committerStef Walter <stefw@redhat.com>2014-03-23 09:14:30 +0100
commitace7c1570556c44d1292e74a187ce75e53a4a991 (patch)
treed5ace7be2af5ad2b6af093b9a12306e9bd076d3e
parent5b3a10be39dc8ec63c7f93ca052085823a841ba0 (diff)
downloadgcr-ace7c1570556c44d1292e74a187ce75e53a4a991.tar.gz
Work around for gdbus-codegen bug
https://bugzilla.gnome.org/show_bug.cgi?id=710133
-rw-r--r--Makefile.am6
-rwxr-xr-xbuild/gdbus-unbreak-codegen36
-rw-r--r--gcr/Makefile.am2
3 files changed, 42 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am
index af36e6a..aca4c6b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -108,10 +108,14 @@ EXTRA_DIST = \
build/enum-template.h \
build/g-ir-unbreak.xsl \
build/tap-driver \
- build/tap-gtester
+ build/tap-gtester \
+ build/gdbus-unbreak-codegen \
+ $(NULL)
TEST_SUPPRESSIONS = $(top_builddir)/build/valgrind-suppressions
+GDBUS_CODEGEN = $(top_srcdir)/build/gdbus-unbreak-codegen
+
V_SED = $(V_SED_$(V))
V_SED_ = $(V_SED_$(AM_DEFAULT_VERBOSITY))
V_SED_0 = @echo " SED " $@;
diff --git a/build/gdbus-unbreak-codegen b/build/gdbus-unbreak-codegen
new file mode 100755
index 0000000..7ea6c22
--- /dev/null
+++ b/build/gdbus-unbreak-codegen
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+set -uef
+
+generate_c_code=
+next_arg_is_name="no"
+
+for arg in "$@"; do
+ if [ "$next_arg_is_name" = "yes" ]; then
+ generate_c_code="$arg"
+ next_arg_is_name="no"
+ continue
+ fi
+ case "$arg" in
+ --generate-c-code)
+ next_arg_is_name="yes"
+ ;;
+ --generate-c-code=*)
+ generate_c_code="${arg#--generate-c-code=}"
+ ;;
+ esac
+done
+
+gdbus-codegen "$@"
+
+if [ -n "$generate_c_code" ]; then
+ # HACK: This is a work around for gdbus-codegen crashing when
+ # we build with GLIB_VERSION_MAX_ALLOWED. See:
+ # https://bugzilla.gnome.org/show_bug.cgi?id=710133
+ sed -e '1i\
+#ifdef GLIB_VERSION_MAX_ALLOWED\
+#undef GLIB_VERSION_MAX_ALLOWED\
+#endif' \
+ "$generate_c_code.c" > "$generate_c_code.$$"
+ mv "$generate_c_code.$$" "$generate_c_code.c"
+fi
diff --git a/gcr/Makefile.am b/gcr/Makefile.am
index 1bfc1bc..2be0658 100644
--- a/gcr/Makefile.am
+++ b/gcr/Makefile.am
@@ -157,7 +157,7 @@ DBUS_XML_DEFINITIONS = \
gcr/org.gnome.keyring.Prompter.xml
gcr/gcr-dbus-generated.c: $(DBUS_XML_DEFINITIONS)
- $(AM_V_GEN) gdbus-codegen --interface-prefix org.gnome.keyring.internal. \
+ $(AM_V_GEN) $(GDBUS_CODEGEN) --interface-prefix org.gnome.keyring.internal. \
--generate-c-code gcr/gcr-dbus-generated --c-namespace GcrDBus $^
$(AM_V_GEN) sed -i -e 's/gcr_dbus/_gcr_dbus/g' gcr/gcr-dbus-generated.[ch]