1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
|
#!/bin/sh
# Copyright (C) 2016 The Qt Company Ltd.
# Copyright (C) 2016 Intel Corporation.
# SPDX-License-Identifier: BSD-3-Clause
#-------------------------------------------------------------------------------
# script initialization
#-------------------------------------------------------------------------------
# the directory of this script is the "source tree"
relpath=`dirname "$0"`
relpath=`(cd "$relpath"; pwd)`
# the current directory is the "build tree" or "object tree"
outpath=`pwd`
outpathPrefix=$outpath
# do this early so we don't store it in config.status
CFG_TOPLEVEL=
SAVED_IFS=$IFS
IFS='
'
checkTopLevelBuild()
{
relpathMangled=$relpath
if [ x"$1" = x"-top-level" ]; then
CFG_TOPLEVEL=yes
relpathMangled=`dirname "$relpath"`
outpathPrefix="$outpathPrefix/.."
else
if [ -f ../.qmake.super ]; then
echo >&2 "ERROR: You cannot configure qtbase separately within a top-level build."
exit 1
fi
fi
}
OPT_CMDLINE= # expanded version for the script
determineOptFilePath()
{
> "${outpathPrefix}/config.redo.in"
set -f # suppress globbing in for loop
for i in "$@"; do
if [ x"$i" = x"-top-level" ]; then
continue
fi
case $i in
-redo|--redo)
optfile=${outpathPrefix}/config.opt
if ! test -f "$optfile"; then
echo >&2 "No config.opt present - cannot redo configuration."
exit 1
fi
;;
*)
# If redo-ing, write the rest of parameters into the config.redo.in file
echo \"$i\" >> "${outpathPrefix}/config.redo.in"
;;
esac
done
}
#-------------------------------------------------------------------------------
# initialize variables
#-------------------------------------------------------------------------------
OPT_HELP=
#-------------------------------------------------------------------------------
# parse command line arguments
#-------------------------------------------------------------------------------
parseCommandline()
{
# parse the arguments, setting things to "yes" or "no"
while [ "$#" -gt 0 ]; do
CURRENT_OPT="$1"
case "$1" in
#Autoconf style options
--*)
VAR=`echo $1 | sed 's,^--\(.*\),\1,'`
VAL=yes
;;
#General options, including Qt style yes options
-*)
VAR=`echo $1 | sed 's,^-\(.*\),\1,'`
VAL="yes"
;;
# most options don't need processing in the configure script, skip them. qmake will do the real validation
*)
shift
continue
;;
esac
shift
case "$VAR" in
h|help)
if [ "$VAL" = "yes" ]; then
OPT_HELP="$VAL"
fi
;;
*)
;;
esac
done
}
#-------------------------------------------------------------------------------
# help - interactive parts of the script _after_ this section please
#-------------------------------------------------------------------------------
handleHelp()
{
if [ "$OPT_HELP" = "yes" ]; then
cat $relpath/config_help.txt
if [ -n "$CFG_TOPLEVEL" ]; then
IFS='
'
for i in $relpathMangled/qt*/config_help.txt; do
if [ x"$i" != x"$relpath/config_help.txt" ]; then
echo
cat "$i"
fi
done
fi
exit 0
fi
}
checkTopLevelBuild "$@"
parseCommandline "$@"
handleHelp
determineOptFilePath "$@"
optfilepath=${outpathPrefix}/config.opt
opttmpfilepath=${outpathPrefix}/config.opt.in
redofilepath=${outpathPrefix}/config.redo.last
redotmpfilepath=${outpathPrefix}/config.redo.in
fresh_requested_arg=
if [ -z "$optfile" ]; then # only write optfile if not currently redoing
> "$opttmpfilepath"
> "$redotmpfilepath"
for arg in "$@"; do echo \"$arg\" >> "$opttmpfilepath"; done
cmake -DIN_FILE="${opttmpfilepath}" -DOUT_FILE="${optfilepath}" -DIGNORE_ARGS=-top-level -P "${relpath}/cmake/QtWriteArgsFile.cmake"
else
# Rewriting config.opt into config.opt.in anyway. Allows for direct manipulation of config.opt
> "$opttmpfilepath"
for arg in `cat $optfile`; do echo \"$arg\" >> "$opttmpfilepath"; done
cmake -DIN_FILE="${opttmpfilepath}" -DREDO_FILE="${redotmpfilepath}" -DOUT_FILE="${redofilepath}" -DIGNORE_ARGS=-top-level -P "${relpath}/cmake/QtWriteArgsFile.cmake"
optfilepath=${redofilepath}
fresh_requested_arg=-DFRESH_REQUESTED=TRUE
fi
top_level_arg=
if [ -n "$CFG_TOPLEVEL" ]; then
top_level_arg=-DTOP_LEVEL=TRUE
cd ..
fi
exec cmake "-DOPTFILE=${optfilepath}" ${top_level_arg} ${fresh_requested_arg} -P "${relpath}/cmake/QtProcessConfigureArgs.cmake"
IFS=$SAVED_IFS
|