From e2ed04bac3cd353711bfd50eba3232692b40ab99 Mon Sep 17 00:00:00 2001 From: Harald Fernengel Date: Thu, 17 Dec 2009 11:26:31 +0100 Subject: Configure support for multiple include levels in qmake.conf hierarchy. If a configuration file included in qmake.conf had an include statements of its own, the variables defined in the second level of included files were not parsed by getQMakeConf function from configure. Author: Adrian Constantin Reviewed-by: Thiago Macieira --- configure | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/configure b/configure index 04f17bd..1b1799c 100755 --- a/configure +++ b/configure @@ -106,6 +106,28 @@ QMakeVar() echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE" } +# Helper function for getQMakeConf. It parses include statements in +# qmake.conf and prints out the expanded file +getQMakeConf1() +{ + while read line; do case "$line" in + include*) + inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"` + current_dir=`dirname "$1"` + conf_file="$current_dir/$inc_file" + if [ ! -e "$conf_file" ]; then + echo "WARNING: Unable to find file $conf_file" >&2 + continue + fi + getQMakeConf1 "$conf_file" + ;; + *) + echo "$line" + ;; + esac; done < "$1" +} + + # relies on $QMAKESPEC being set correctly. parses include statements in # qmake.conf and prints out the expanded file getQMakeConf() @@ -114,15 +136,7 @@ getQMakeConf() if [ -n "$1" ]; then tmpSPEC="$1" fi - $AWK -v "QMAKESPEC=$tmpSPEC" ' -/^include\(.+\)$/{ - fname = QMAKESPEC "/" substr($0, 9, length($0) - 9) - while ((getline line < fname) > 0) - print line - close(fname) - next -} -{ print }' "$tmpSPEC/qmake.conf" + getQMakeConf1 "$tmpSPEC/qmake.conf" } # relies on $TEST_COMPILER being set correctly -- cgit v0.12