From 17323d2b966146ad19af6285e4eea4cd76bd2c7e Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Tue, 28 Nov 2017 06:05:53 +0530 Subject: giscanner: Fix options in the preprocessor group The way we were parsing cflags was causing cpp_includes, cpp_defines, cpp_undefines to always be empty because we would consume all arguments with --cflags-begin's callback. Now, we make a copy of the 'remaining arguments' and parse those to populate the cflags independent of cpp_* flags that are used for building the scanner executable. This fixes the build when glib and friends aren't available in the system prefix. --- giscanner/scannermain.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py index ffcb95cd..1366c04c 100755 --- a/giscanner/scannermain.py +++ b/giscanner/scannermain.py @@ -52,11 +52,14 @@ from . import utils def process_cflags_begin(option, opt, value, parser): cflags = getattr(parser.values, option.dest) - while len(parser.rargs) > 0 and parser.rargs[0] != '--cflags-end': - arg = parser.rargs.pop(0) - if arg == "-I" and parser.rargs and parser.rargs[0] != '--cflags-end': + # Copy instead of consuming else cpp_defines, cpp_includes, etc will be empty + rargs = parser.rargs[:] + while len(rargs) > 0 and rargs[0] != '--cflags-end': + arg = rargs.pop(0) + if arg == "-I" and rargs and rargs[0] != '--cflags-end': # This is a special case where there's a space between -I and the path. - arg += parser.rargs.pop(0) + arg += rargs.pop(0) + incdir = utils.cflag_real_include_path(arg) cflags.append(utils.cflag_real_include_path(arg)) -- cgit v1.2.1