summaryrefslogtreecommitdiffstats
path: root/patches/glademm-2.6.0/fix-glade-only.diff
diff options
context:
space:
mode:
Diffstat (limited to 'patches/glademm-2.6.0/fix-glade-only.diff')
-rw-r--r--patches/glademm-2.6.0/fix-glade-only.diff104
1 files changed, 104 insertions, 0 deletions
diff --git a/patches/glademm-2.6.0/fix-glade-only.diff b/patches/glademm-2.6.0/fix-glade-only.diff
new file mode 100644
index 000000000..6d63a3322
--- /dev/null
+++ b/patches/glademm-2.6.0/fix-glade-only.diff
@@ -0,0 +1,104 @@
+Subject: fix --gladeonly
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+ Don't do things that are not needed to create *_glade.* files.
+ This fixes a crash and various bogus output.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ src/Cxx_Fileset.cc | 6 ++++++
+ src/glade--.cc | 15 ++++++++++-----
+ 2 files changed, 16 insertions(+), 5 deletions(-)
+
+Index: b/src/Cxx_Fileset.cc
+===================================================================
+--- a/src/Cxx_Fileset.cc
++++ b/src/Cxx_Fileset.cc
+@@ -180,6 +180,8 @@ void Cxx_Fileset::WriteClasses(const Wid
+ }
+
+ /******* H: class Xyz ******/
++ if (!Configuration.bare_bones)
++ {
+ if (Configuration.baseclass)
+ { bc.Definition().Class(Configuration.TypeName(w.Name())+"_base");
+ bc.StartBlock();
+@@ -210,6 +212,7 @@ void Cxx_Fileset::WriteClasses(const Wid
+
+ DeclareSignalHandler(top_wr,w,w,true);
+ h.EndBlock();
++ }
+
+ /****** GC: include, definitions **************/
+
+@@ -405,6 +408,8 @@ void Cxx_Fileset::WriteClasses(const Wid
+
+ /****** C: signal handler stubs *******/
+
++ if (!Configuration.bare_bones)
++ {
+ if (Configuration.debug)
+ std::cout << "======== C signal stubs ============\n";
+ for (Widget::const_contained_iterator i=w.begin_contained(Internal_Both);
+@@ -416,6 +421,7 @@ void Cxx_Fileset::WriteClasses(const Wid
+ }
+
+ DefineSignalHandler(top_wr,w,w);
++ }
+
+ /****** other classes/files ********/
+ // recurse
+Index: b/src/glade--.cc
+===================================================================
+--- a/src/glade--.cc
++++ b/src/glade--.cc
+@@ -160,10 +160,8 @@ static bool CheckVersion(const std::stri
+ return result;
+ }
+
+-static void call_gtkmm_config()
+-{ CheckVersion("pkg-config --version",Configuration.pc_version,Pkg_Version::Pkg_Config);
+-
+- if (CheckVersion("automake-1.9 --version",Configuration.automake_version,Pkg_Version::MMVersion,true))
++static void call_autotool_config()
++{ if (CheckVersion("automake-1.9 --version",Configuration.automake_version,Pkg_Version::MMVersion,true))
+ Configuration.automake_name="automake-1.9";
+ else if (CheckVersion("automake-1.8 --version",Configuration.automake_version,Pkg_Version::MMVersion,true))
+ Configuration.automake_name="automake-1.8";
+@@ -189,7 +187,10 @@ static void call_gtkmm_config()
+ // Configuration.use_autoreconf=true;
+
+ CheckVersion("gettext --version",Configuration.gettext_version,Pkg_Version::MMVersion,true);
++}
+
++static void call_gtkmm_config()
++{ CheckVersion("pkg-config --version",Configuration.pc_version,Pkg_Version::Pkg_Config);
+ // Pkgconfig checks (Gnome 2)
+ if (Configuration.gnome2) {
+ if (!!Configuration.pc_version) {
+@@ -412,6 +413,7 @@ int main(int argc,char **argv)
+ case 's': Configuration.sample_code=true;
+ break;
+ case 'r': Configuration.bare_bones=true;
++ Configuration.no_autoconf=true;
+ break;
+ case 'A': Configuration.no_autoconf=true;
+ break;
+@@ -535,7 +537,8 @@ reopen:
+ else std::cerr << "Warning: strange project tag '" << t.Type() << "'\n";
+ }
+ catch (...)
+- { std::cerr << "Warning: no or illegal project file.\n";
++ { if (!Configuration.bare_bones)
++ std::cerr << "Warning: no or illegal project file.\n";
+ Tag t("glade-project","");
+ // Configuration.in_filename without path and .glade
+ std::string name=Configuration.in_filename;
+@@ -572,6 +575,8 @@ reopen:
+
+ if (Configuration.debug) top.debug(depth);
+ call_gtkmm_config();
++ if (!Configuration.no_autoconf)
++ call_autotool_config();
+
+ // Apply dependant preferences
+ if (Configuration.gettext_support)