qt6windows7/configure

169 lines
4.6 KiB
Plaintext
Raw Normal View History

2023-10-30 06:33:08 +08:00
#!/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"
2023-11-02 01:02:52 +08:00
relpath=`dirname "$0"`
2023-10-30 06:33:08 +08:00
relpath=`(cd "$relpath"; /bin/pwd)`
# the current directory is the "build tree" or "object tree"
outpath=`/bin/pwd`
2023-11-02 01:02:52 +08:00
outpathPrefix=$outpath
2023-10-30 06:33:08 +08:00
# do this early so we don't store it in config.status
CFG_TOPLEVEL=
2023-11-02 01:02:52 +08:00
SAVED_IFS=$IFS
IFS='
'
2023-10-30 06:33:08 +08:00
checkTopLevelBuild()
{
relpathMangled=$relpath
if [ x"$1" = x"-top-level" ]; then
CFG_TOPLEVEL=yes
relpathMangled=`dirname "$relpath"`
2023-11-02 01:02:52 +08:00
outpathPrefix="$outpathPrefix/.."
2023-10-30 06:33:08 +08:00
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()
{
2023-11-02 01:02:52 +08:00
> "${outpathPrefix}/config.redo.in"
2023-10-30 06:33:08 +08:00
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)
2023-11-02 01:02:52 +08:00
optfile=${outpathPrefix}/config.opt
if ! test -f "$optfile"; then
2023-10-30 06:33:08 +08:00
echo >&2 "No config.opt present - cannot redo configuration."
exit 1
fi
;;
*)
2023-11-02 01:02:52 +08:00
# If redo-ing, write the rest of parameters into the config.redo.in file
echo \"$i\" >> "${outpathPrefix}/config.redo.in"
2023-10-30 06:33:08 +08:00
;;
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 "$@"
2023-11-02 01:02:52 +08:00
optfilepath=${outpathPrefix}/config.opt
opttmpfilepath=${outpathPrefix}/config.opt.in
redofilepath=${outpathPrefix}/config.redo
redotmpfilepath=${outpathPrefix}/config.redo.in
2023-10-30 06:33:08 +08:00
fresh_requested_arg=
if [ -z "$optfile" ]; then # only write optfile if not currently redoing
2023-11-02 01:02:52 +08:00
> "$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"
2023-10-30 06:33:08 +08:00
else
2023-11-02 01:02:52 +08:00
# 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}
2023-10-30 06:33:08 +08:00
fresh_requested_arg=-DFRESH_REQUESTED=TRUE
fi
top_level_arg=
if [ -n "$CFG_TOPLEVEL" ]; then
top_level_arg=-DTOP_LEVEL=TRUE
cd ..
fi
2023-11-02 01:02:52 +08:00
cmake "-DOPTFILE=${optfilepath}" ${top_level_arg} ${fresh_requested_arg} -P "${relpath}/cmake/QtProcessConfigureArgs.cmake"
IFS=$SAVED_IFS