Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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)