[gobject-introspection] scanner: don't pass certain debug level flags to cpp



commit d2dce55c971fc44cc327818b0341eb89f1243db6
Author: Michael Catanzaro <mcatanzaro gnome org>
Date:   Wed Jan 28 21:55:20 2015 -0600

    scanner: don't pass certain debug level flags to cpp
    
    These may cause cpp to output code that still has #defines in them,
    which the scanner does not expect.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=720504

 giscanner/sourcescanner.py |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/giscanner/sourcescanner.py b/giscanner/sourcescanner.py
index dab1602..9a81421 100644
--- a/giscanner/sourcescanner.py
+++ b/giscanner/sourcescanner.py
@@ -294,6 +294,14 @@ class SourceScanner(object):
         cpp_args += ['-E', '-C', '-I.', '-']
         cpp_args += self._cpp_options
 
+        # We expect the preprocessor to remove macros. If debugging is turned
+        # up high enough that won't happen, so strip these out. Bug #720504
+        for flag in ['-g3', '-ggdb3', '-gstabs3', '-gcoff3', '-gxcoff3', '-gvms3']:
+            try:
+                cpp_args.remove(flag)
+            except ValueError:
+                pass
+
         proc = subprocess.Popen(cpp_args,
                                 stdin=subprocess.PIPE,
                                 stdout=subprocess.PIPE)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]