qt5base-lts/configure
Edward Welbourne 372dc4c6a1 Fix bash-ism in configure; /bin/sh doesn't handle +=
The script claims to be #!/bin/sh so should not use bash extensions.

Amends 5c40cb0f1a.

Change-Id: Ib88f528acda0893fd6e96878c49ec5a2cf7ebba7
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-01-24 18:48:15 +00:00

171 lines
4.6 KiB
Bash
Executable File

#!/bin/sh
# Copyright (C) 2016 The Qt Company Ltd.
# Copyright (C) 2016 Intel Corporation.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#-------------------------------------------------------------------------------
# script initialization
#-------------------------------------------------------------------------------
# the directory of this script is the "source tree"
relpath=`dirname "$0"`
relpath=`(cd "$relpath"; /bin/pwd)`
# the current directory is the "build tree" or "object tree"
outpath=`/bin/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
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
# In case config.opt.in is missing for some reason
if [ ! -f "$opttmpfilepath" ]; then
> "$opttmpfilepath"
for arg in `cat $optfile`; do echo \"$arg\" >> "$opttmpfilepath"; done
fi
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
cmake "-DOPTFILE=${optfilepath}" ${top_level_arg} ${fresh_requested_arg} -P "${relpath}/cmake/QtProcessConfigureArgs.cmake"
IFS=$SAVED_IFS