Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2009-02-17 23:07:51 (GMT)
committer Colin Walters <walters@verbum.org>2009-02-17 23:07:51 (GMT)
commit4dc2fda639adc45d16e9925be516dbdefcba1f31 (patch)
tree6ff051c4c69c23c510a27080951d39d4af58a8f8
parent5444b63da235cf8e43da7352556de04943354a56 (diff)
Followup to bug 567906 - Redo option filtering logic to be a bit cleaner
This was suggested during a refactoring of the affected code for bug 567906.
-rwxr-xr-xtools/g-ir-scanner21
1 files changed, 11 insertions, 10 deletions
diff --git a/tools/g-ir-scanner b/tools/g-ir-scanner
index 6b31925..0cf54ce 100755
--- a/tools/g-ir-scanner
+++ b/tools/g-ir-scanner
@@ -194,6 +194,14 @@ def validate(assertions, path):
f.close()
print "=== PASSED %s ===" % (assertions, )
return 0
+
+def process_options(output, allowed_flags):
+ for option in output.split():
+ for flag in allowed_flags:
+ if not option.startswith(flag):
+ continue
+ yield option
+ break
def process_packages(parser, options, packages):
args = ['pkg-config', '--cflags']
@@ -206,14 +214,8 @@ def process_packages(parser, options, packages):
sys.exit(1)
# Some pkg-config files on Windows have options we don't understand,
# so we explicitly filter to only the ones we need.
- options_whitelist = ['-I', '-D', '-U', '-l', '-L']
- def filter_option(opt):
- for optstart in options_whitelist:
- if opt.startswith(optstart):
- return True
- return False
- output = output.split()
- filtered_output = filter(filter_option, output)
+ options_whitelist = ['-I', '-D', '-U', '-l', '-L']
+ filtered_output = list(process_options(output, options_whitelist))
pkg_options, unused = parser.parse_args(filtered_output)
options.cpp_includes.extend(pkg_options.cpp_includes)
options.cpp_defines.extend(pkg_options.cpp_defines)
@@ -225,8 +227,7 @@ def process_packages(parser, options, packages):
stdout=subprocess.PIPE).communicate()[0]
if output is None:
sys.exit(1)
- output = output.split()
- filtered_output = filter(filter_option, output)
+ filtered_output = list(process_options(output, options_whitelist))
pkg_options, unused = parser.parse_args(filtered_output)
options.library_paths.extend(pkg_options.library_paths)