diff options
author | Stef Walter <stefw@redhat.com> | 2014-03-23 09:12:50 +0100 |
---|---|---|
committer | Stef Walter <stefw@redhat.com> | 2014-03-23 09:14:30 +0100 |
commit | ace7c1570556c44d1292e74a187ce75e53a4a991 (patch) | |
tree | d5ace7be2af5ad2b6af093b9a12306e9bd076d3e | |
parent | 5b3a10be39dc8ec63c7f93ca052085823a841ba0 (diff) | |
download | gcr-ace7c1570556c44d1292e74a187ce75e53a4a991.tar.gz |
Work around for gdbus-codegen bug
https://bugzilla.gnome.org/show_bug.cgi?id=710133
-rw-r--r-- | Makefile.am | 6 | ||||
-rwxr-xr-x | build/gdbus-unbreak-codegen | 36 | ||||
-rw-r--r-- | gcr/Makefile.am | 2 |
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] |