write relative paths to qconfig.cpp as far as possible
this cuts down the bloat in the binaries and the binary patching requirements in the installer. as a side effect, the sysroot and makespecs are not binary patchable any more as well, which is ok, as the installer does not do it anyway. we now also warn if -[host]<foo>dir is not a subdir of -[host]prefix, as putting things outside the prefix is anti-thetical (the obvious exception being the (unix-only) -sysconfdir). Change-Id: I878f0e71a4dfcfd55b2f8b1cf3045b98b502569b Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This commit is contained in:
parent
887c8129e6
commit
5b27d02c35
403
configure
vendored
403
configure
vendored
@ -436,16 +436,6 @@ filterLibraryOptions()
|
||||
filterPathOptions -L "$DEFAULT_LIBDIRS"
|
||||
}
|
||||
|
||||
substPrefix()
|
||||
{
|
||||
base=${1#$QT_SYSROOT_PREFIX}
|
||||
if [ x"$base" != x"$1" ]; then
|
||||
echo "$QT_EXT_PREFIX$base"
|
||||
else
|
||||
echo "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# device options
|
||||
#-------------------------------------------------------------------------------
|
||||
@ -2284,7 +2274,8 @@ Installation options:
|
||||
host machine. If [dir] is not given, the current build
|
||||
directory will be used. (default EXTPREFIX)
|
||||
|
||||
You may use these to separate different parts of the install:
|
||||
You may use these to change the layout of the install. Note that all directories
|
||||
except -sysconfdir should be located under -prefix/-hostprefix:
|
||||
|
||||
-bindir <dir> ......... User executables will be installed to <dir>
|
||||
(default PREFIX/bin)
|
||||
@ -3507,7 +3498,7 @@ if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
|
||||
fi
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# post process QT_INSTALL_* variables
|
||||
# postprocess installation and deployment paths
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
if [ -z "$QT_INSTALL_PREFIX" ]; then
|
||||
@ -3516,180 +3507,226 @@ if [ -z "$QT_INSTALL_PREFIX" ]; then
|
||||
else
|
||||
QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
|
||||
fi
|
||||
HAVE_INSTALL_PATH=false
|
||||
else
|
||||
HAVE_INSTALL_PATH=true
|
||||
fi
|
||||
QT_INSTALL_PREFIX=`makeabs "$QT_INSTALL_PREFIX"`
|
||||
|
||||
if [ -z "$QT_INSTALL_HEADERS" ]; then #default
|
||||
QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
|
||||
fi
|
||||
QT_INSTALL_HEADERS=`makeabs "$QT_INSTALL_HEADERS"`
|
||||
|
||||
if [ -z "$QT_INSTALL_LIBS" ]; then #default
|
||||
QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
|
||||
fi
|
||||
QT_INSTALL_LIBS=`makeabs "$QT_INSTALL_LIBS"`
|
||||
|
||||
if [ -z "$QT_INSTALL_ARCHDATA" ]; then #default
|
||||
QT_INSTALL_ARCHDATA="$QT_INSTALL_PREFIX" #fallback
|
||||
fi
|
||||
QT_INSTALL_ARCHDATA=`makeabs "$QT_INSTALL_ARCHDATA"`
|
||||
|
||||
if [ -z "$QT_INSTALL_DATA" ]; then #default
|
||||
QT_INSTALL_DATA="$QT_INSTALL_PREFIX" #fallback
|
||||
fi
|
||||
QT_INSTALL_DATA=`makeabs "$QT_INSTALL_DATA"`
|
||||
|
||||
if [ -z "$QT_INSTALL_BINS" ]; then #default
|
||||
QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
|
||||
fi
|
||||
QT_INSTALL_BINS=`makeabs "$QT_INSTALL_BINS"`
|
||||
|
||||
if [ "$XPLATFORM_MINGW" = "yes" ]; then
|
||||
QT_INSTALL_LIBEXECS_DIRNAME="bin"
|
||||
else
|
||||
QT_INSTALL_LIBEXECS_DIRNAME="libexec"
|
||||
fi
|
||||
|
||||
if [ -z "$QT_INSTALL_LIBEXECS" ]; then #default
|
||||
QT_INSTALL_LIBEXECS="$QT_INSTALL_ARCHDATA/$QT_INSTALL_LIBEXECS_DIRNAME" #fallback
|
||||
fi
|
||||
QT_INSTALL_LIBEXECS=`makeabs "$QT_INSTALL_LIBEXECS"`
|
||||
|
||||
if [ -z "$QT_INSTALL_DOCS" ]; then #default
|
||||
QT_INSTALL_DOCS="$QT_INSTALL_DATA/doc" #fallback
|
||||
fi
|
||||
QT_INSTALL_DOCS=`makeabs "$QT_INSTALL_DOCS"`
|
||||
|
||||
if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
|
||||
QT_INSTALL_PLUGINS="$QT_INSTALL_ARCHDATA/plugins" #fallback
|
||||
fi
|
||||
QT_INSTALL_PLUGINS=`makeabs "$QT_INSTALL_PLUGINS"`
|
||||
|
||||
if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
|
||||
QT_INSTALL_IMPORTS="$QT_INSTALL_ARCHDATA/imports" #fallback
|
||||
fi
|
||||
QT_INSTALL_IMPORTS=`makeabs "$QT_INSTALL_IMPORTS"`
|
||||
|
||||
#qml
|
||||
if [ -z "$QT_INSTALL_QML" ]; then #default
|
||||
QT_INSTALL_QML="$QT_INSTALL_ARCHDATA/qml" #fallback
|
||||
fi
|
||||
QT_INSTALL_QML=`makeabs "$QT_INSTALL_QML"`
|
||||
|
||||
if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
|
||||
QT_INSTALL_TRANSLATIONS="$QT_INSTALL_DATA/translations" #fallback
|
||||
fi
|
||||
QT_INSTALL_TRANSLATIONS=`makeabs "$QT_INSTALL_TRANSLATIONS"`
|
||||
|
||||
if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
|
||||
if [ "$XPLATFORM_MAC" = "yes" ]; then
|
||||
QT_INSTALL_SETTINGS=/Library/Preferences/Qt
|
||||
if [ -z "$QT_EXT_PREFIX" ]; then
|
||||
QT_EXT_PREFIX=$QT_INSTALL_PREFIX
|
||||
if [ -n "$CFG_SYSROOT" ]; then
|
||||
QMAKE_SYSROOTIFY=true
|
||||
else
|
||||
QT_INSTALL_SETTINGS=$QT_INSTALL_PREFIX/etc/xdg
|
||||
QMAKE_SYSROOTIFY=false
|
||||
fi
|
||||
else
|
||||
QT_EXT_PREFIX=`makeabs "$QT_EXT_PREFIX"`
|
||||
QMAKE_SYSROOTIFY=false
|
||||
fi
|
||||
|
||||
if [ -z "$QT_HOST_PREFIX" ]; then
|
||||
if $QMAKE_SYSROOTIFY; then
|
||||
QT_HOST_PREFIX=$CFG_SYSROOT$QT_EXT_PREFIX
|
||||
else
|
||||
QT_HOST_PREFIX=$QT_EXT_PREFIX
|
||||
fi
|
||||
HAVE_HOST_PATH=false
|
||||
else
|
||||
QT_HOST_PREFIX=`makeabs "$QT_HOST_PREFIX"`
|
||||
HAVE_HOST_PATH=true
|
||||
fi
|
||||
|
||||
#------- make the paths relative to the prefixes --------
|
||||
|
||||
PREFIX_COMPLAINTS=
|
||||
PREFIX_REMINDER=false
|
||||
while read basevar baseoption var option; do
|
||||
eval path=\$QT_${basevar}_$var
|
||||
[ -z "$path" ] && continue
|
||||
path=`makeabs "$path"`
|
||||
eval base=\$QT_${basevar}_PREFIX
|
||||
rel=${path##$base}
|
||||
if [ x"$rel" = x"$path" ]; then
|
||||
if [ x"$option" != x"sysconf" ]; then
|
||||
PREFIX_COMPLAINTS="$PREFIX_COMPLAINTS
|
||||
NOTICE: -${option}dir is not a subdirectory of ${baseoption}prefix."
|
||||
eval \$HAVE_${basevar}_PATH || PREFIX_REMINDER=true
|
||||
fi
|
||||
eval QT_REL_${basevar}_$var=\$rel
|
||||
elif [ -z "$rel" ]; then
|
||||
eval QT_REL_${basevar}_$var=.
|
||||
else
|
||||
eval QT_REL_${basevar}_$var=\${rel#/}
|
||||
fi
|
||||
done <<EOF
|
||||
INSTALL - DOCS doc
|
||||
INSTALL - HEADERS header
|
||||
INSTALL - LIBS lib
|
||||
INSTALL - LIBEXECS libexec
|
||||
INSTALL - BINS bin
|
||||
INSTALL - PLUGINS plugin
|
||||
INSTALL - IMPORTS import
|
||||
INSTALL - QML qml
|
||||
INSTALL - ARCHDATA archdata
|
||||
INSTALL - DATA data
|
||||
INSTALL - TRANSLATIONS translation
|
||||
INSTALL - EXAMPLES examples
|
||||
INSTALL - TESTS tests
|
||||
INSTALL - SETTINGS sysconf
|
||||
HOST -host BINS hostbin
|
||||
HOST -host LIBS hostlib
|
||||
HOST -host DATA hostdata
|
||||
EOF
|
||||
$PREFIX_REMINDER && PREFIX_COMPLAINTS="$PREFIX_COMPLAINTS
|
||||
Maybe you forgot to specify -prefix/-hostprefix?"
|
||||
|
||||
if [ -z "$QT_REL_INSTALL_HEADERS" ]; then
|
||||
QT_REL_INSTALL_HEADERS=include
|
||||
fi
|
||||
|
||||
if [ -z "$QT_REL_INSTALL_LIBS" ]; then
|
||||
QT_REL_INSTALL_LIBS=lib
|
||||
fi
|
||||
|
||||
if [ -z "$QT_REL_INSTALL_BINS" ]; then
|
||||
QT_REL_INSTALL_BINS=bin
|
||||
fi
|
||||
|
||||
if [ -z "$QT_REL_INSTALL_ARCHDATA" ]; then
|
||||
QT_REL_INSTALL_ARCHDATA=.
|
||||
fi
|
||||
if [ x"$QT_REL_INSTALL_ARCHDATA" != x. ]; then
|
||||
QT_REL_INSTALL_ARCHDATA_PREFIX=$QT_REL_INSTALL_ARCHDATA/
|
||||
fi
|
||||
|
||||
if [ -z "$QT_REL_INSTALL_LIBEXECS" ]; then
|
||||
if [ "$XPLATFORM_MINGW" = "yes" ]; then
|
||||
QT_REL_INSTALL_LIBEXECS=${QT_REL_INSTALL_ARCHDATA_PREFIX}bin
|
||||
else
|
||||
QT_REL_INSTALL_LIBEXECS=${QT_REL_INSTALL_ARCHDATA_PREFIX}libexec
|
||||
fi
|
||||
fi
|
||||
QT_INSTALL_SETTINGS=`makeabs "$QT_INSTALL_SETTINGS"`
|
||||
|
||||
if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
|
||||
QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
|
||||
if [ -z "$QT_REL_INSTALL_PLUGINS" ]; then
|
||||
QT_REL_INSTALL_PLUGINS=${QT_REL_INSTALL_ARCHDATA_PREFIX}plugins
|
||||
fi
|
||||
QT_INSTALL_EXAMPLES=`makeabs "$QT_INSTALL_EXAMPLES"`
|
||||
|
||||
#tests
|
||||
if [ -z "$QT_INSTALL_TESTS" ]; then #default
|
||||
QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
|
||||
if [ -z "$QT_REL_INSTALL_IMPORTS" ]; then
|
||||
QT_REL_INSTALL_IMPORTS=${QT_REL_INSTALL_ARCHDATA_PREFIX}imports
|
||||
fi
|
||||
QT_INSTALL_TESTS=`makeabs "$QT_INSTALL_TESTS"`
|
||||
|
||||
#------- sysroot-external install paths --------
|
||||
if [ -z "$QT_REL_INSTALL_QML" ]; then
|
||||
QT_REL_INSTALL_QML=${QT_REL_INSTALL_ARCHDATA_PREFIX}qml
|
||||
fi
|
||||
|
||||
QT_SYSROOT_PREFIX=$QT_INSTALL_PREFIX
|
||||
QT_SYSROOT_DOCS=$QT_INSTALL_DOCS
|
||||
QT_SYSROOT_HEADERS=$QT_INSTALL_HEADERS
|
||||
QT_SYSROOT_LIBS=$QT_INSTALL_LIBS
|
||||
QT_SYSROOT_LIBEXECS=$QT_INSTALL_LIBEXECS
|
||||
QT_SYSROOT_BINS=$QT_INSTALL_BINS
|
||||
QT_SYSROOT_PLUGINS=$QT_INSTALL_PLUGINS
|
||||
QT_SYSROOT_IMPORTS=$QT_INSTALL_IMPORTS
|
||||
QT_SYSROOT_QML=$QT_INSTALL_QML
|
||||
QT_SYSROOT_ARCHDATA=$QT_INSTALL_ARCHDATA
|
||||
QT_SYSROOT_DATA=$QT_INSTALL_DATA
|
||||
QT_SYSROOT_TRANSLATIONS=$QT_INSTALL_TRANSLATIONS
|
||||
QT_SYSROOT_EXAMPLES=$QT_INSTALL_EXAMPLES
|
||||
QT_SYSROOT_TESTS=$QT_INSTALL_TESTS
|
||||
if [ -n "$QT_EXT_PREFIX" ]; then
|
||||
QT_INSTALL_PREFIX=$QT_EXT_PREFIX
|
||||
QT_INSTALL_DOCS=`substPrefix "$QT_INSTALL_DOCS"`
|
||||
QT_INSTALL_HEADERS=`substPrefix "$QT_INSTALL_HEADERS"`
|
||||
QT_INSTALL_LIBS=`substPrefix "$QT_INSTALL_LIBS"`
|
||||
QT_INSTALL_LIBEXECS=`substPrefix "$QT_INSTALL_LIBEXECS"`
|
||||
QT_INSTALL_BINS=`substPrefix "$QT_INSTALL_BINS"`
|
||||
QT_INSTALL_PLUGINS=`substPrefix "$QT_INSTALL_PLUGINS"`
|
||||
QT_INSTALL_IMPORTS=`substPrefix "$QT_INSTALL_IMPORTS"`
|
||||
QT_INSTALL_QML=`substPrefix "$QT_INSTALL_QML"`
|
||||
QT_INSTALL_ARCHDATA=`substPrefix "$QT_INSTALL_ARCHDATA"`
|
||||
QT_INSTALL_DATA=`substPrefix "$QT_INSTALL_DATA"`
|
||||
QT_INSTALL_TRANSLATIONS=`substPrefix "$QT_INSTALL_TRANSLATIONS"`
|
||||
QT_INSTALL_EXAMPLES=`substPrefix "$QT_INSTALL_EXAMPLES"`
|
||||
QT_INSTALL_TESTS=`substPrefix "$QT_INSTALL_TESTS"`
|
||||
if [ -z "$QT_REL_INSTALL_DATA" ]; then
|
||||
QT_REL_INSTALL_DATA=.
|
||||
fi
|
||||
if [ x"$QT_REL_INSTALL_DATA" != x. ]; then
|
||||
QT_REL_INSTALL_DATA_PREFIX=$QT_REL_INSTALL_DATA/
|
||||
fi
|
||||
|
||||
if [ -z "$QT_REL_INSTALL_DOCS" ]; then
|
||||
QT_REL_INSTALL_DOCS=${QT_REL_INSTALL_DATA_PREFIX}doc
|
||||
fi
|
||||
|
||||
if [ -z "$QT_REL_INSTALL_TRANSLATIONS" ]; then
|
||||
QT_REL_INSTALL_TRANSLATIONS=${QT_REL_INSTALL_DATA_PREFIX}translations
|
||||
fi
|
||||
|
||||
if [ -z "$QT_REL_INSTALL_EXAMPLES" ]; then
|
||||
QT_REL_INSTALL_EXAMPLES=examples
|
||||
fi
|
||||
|
||||
if [ -z "$QT_REL_INSTALL_TESTS" ]; then
|
||||
QT_REL_INSTALL_TESTS=tests
|
||||
fi
|
||||
|
||||
if [ -z "$QT_REL_INSTALL_SETTINGS" ]; then
|
||||
if [ "$XPLATFORM_MAC" = "yes" ]; then
|
||||
QT_REL_INSTALL_SETTINGS=/Library/Preferences/Qt
|
||||
else
|
||||
QT_REL_INSTALL_SETTINGS=etc/xdg
|
||||
fi
|
||||
fi
|
||||
|
||||
#------- host paths --------
|
||||
|
||||
if [ -z "$QT_HOST_PREFIX" ]; then
|
||||
QT_HOST_PREFIX=$QT_INSTALL_PREFIX
|
||||
haveHpx=false
|
||||
else
|
||||
QT_HOST_PREFIX=`makeabs "$QT_HOST_PREFIX"`
|
||||
haveHpx=true
|
||||
fi
|
||||
|
||||
if [ -z "$QT_HOST_BINS" ]; then #default
|
||||
if $haveHpx; then
|
||||
QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
|
||||
if [ -z "$QT_REL_HOST_BINS" ]; then
|
||||
if $HAVE_HOST_PATH; then
|
||||
QT_REL_HOST_BINS=bin
|
||||
else
|
||||
QT_HOST_BINS="$QT_INSTALL_BINS"
|
||||
QT_REL_HOST_BINS=$QT_REL_INSTALL_BINS
|
||||
fi
|
||||
fi
|
||||
QT_HOST_BINS=`makeabs "$QT_HOST_BINS"`
|
||||
|
||||
if [ -z "$QT_HOST_LIBS" ]; then #default
|
||||
if $haveHpx; then
|
||||
QT_HOST_LIBS="$QT_HOST_PREFIX/lib" #fallback
|
||||
if [ -z "$QT_REL_HOST_LIBS" ]; then
|
||||
if $HAVE_HOST_PATH; then
|
||||
QT_REL_HOST_LIBS=lib
|
||||
else
|
||||
QT_HOST_LIBS="$QT_INSTALL_LIBS"
|
||||
QT_REL_HOST_LIBS=$QT_REL_INSTALL_LIBS
|
||||
fi
|
||||
fi
|
||||
QT_HOST_LIBS=`makeabs "$QT_HOST_LIBS"`
|
||||
|
||||
if [ -z "$QT_HOST_DATA" ]; then #default
|
||||
if $haveHpx; then
|
||||
QT_HOST_DATA="$QT_HOST_PREFIX"
|
||||
if [ -z "$QT_REL_HOST_DATA" ]; then
|
||||
if $HAVE_HOST_PATH; then
|
||||
QT_REL_HOST_DATA=.
|
||||
else
|
||||
QT_HOST_DATA="$QT_INSTALL_ARCHDATA"
|
||||
QT_REL_HOST_DATA=$QT_REL_INSTALL_ARCHDATA
|
||||
fi
|
||||
else
|
||||
QT_HOST_DATA=`makeabs "$QT_HOST_DATA"`
|
||||
fi
|
||||
|
||||
if [ "$CFG_COMPILE_EXAMPLES" = "yes" ]; then
|
||||
QMAKE_CONFIG="$QMAKE_CONFIG compile_examples"
|
||||
fi
|
||||
|
||||
shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
|
||||
shortspec=`echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
|
||||
|
||||
QT_CONFIGURE_STR_OFF=0
|
||||
|
||||
addConfStr()
|
||||
{
|
||||
QT_CONFIGURE_STR_OFFSETS="$QT_CONFIGURE_STR_OFFSETS $QT_CONFIGURE_STR_OFF,"
|
||||
QT_CONFIGURE_STRS="$QT_CONFIGURE_STRS \"$1\\0\"
|
||||
"
|
||||
count=`echo "$1" | wc -c`
|
||||
QT_CONFIGURE_STR_OFF=`expr $QT_CONFIGURE_STR_OFF + $count`
|
||||
}
|
||||
|
||||
QT_CONFIGURE_STR_OFFSETS=
|
||||
QT_CONFIGURE_STRS=
|
||||
addConfStr "$QT_REL_INSTALL_DOCS"
|
||||
addConfStr "$QT_REL_INSTALL_HEADERS"
|
||||
addConfStr "$QT_REL_INSTALL_LIBS"
|
||||
addConfStr "$QT_REL_INSTALL_LIBEXECS"
|
||||
addConfStr "$QT_REL_INSTALL_BINS"
|
||||
addConfStr "$QT_REL_INSTALL_PLUGINS"
|
||||
addConfStr "$QT_REL_INSTALL_IMPORTS"
|
||||
addConfStr "$QT_REL_INSTALL_QML"
|
||||
addConfStr "$QT_REL_INSTALL_ARCHDATA"
|
||||
addConfStr "$QT_REL_INSTALL_DATA"
|
||||
addConfStr "$QT_REL_INSTALL_TRANSLATIONS"
|
||||
addConfStr "$QT_REL_INSTALL_EXAMPLES"
|
||||
addConfStr "$QT_REL_INSTALL_TESTS"
|
||||
QT_CONFIGURE_STR_OFFSETS_ALL=$QT_CONFIGURE_STR_OFFSETS
|
||||
QT_CONFIGURE_STRS_ALL=$QT_CONFIGURE_STRS
|
||||
|
||||
QT_CONFIGURE_STR_OFFSETS=
|
||||
QT_CONFIGURE_STRS=
|
||||
addConfStr "$CFG_SYSROOT"
|
||||
addConfStr "$QT_REL_HOST_BINS"
|
||||
addConfStr "$QT_REL_HOST_LIBS"
|
||||
addConfStr "$QT_REL_HOST_DATA"
|
||||
addConfStr "$shortxspec"
|
||||
addConfStr "$shortspec"
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# generate qconfig.cpp
|
||||
#-------------------------------------------------------------------------------
|
||||
[ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
|
||||
|
||||
shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
|
||||
shortspec=`echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
|
||||
|
||||
if [ -z "$QT_EXT_PREFIX" ]; then
|
||||
QMAKE_SYSROOTIFY=y
|
||||
else
|
||||
QMAKE_SYSROOTIFY=n
|
||||
fi
|
||||
|
||||
cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
|
||||
/* License Info */
|
||||
static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
|
||||
@ -3699,60 +3736,38 @@ static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$
|
||||
static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
|
||||
|
||||
/* Installation Info */
|
||||
static const char qt_configure_prefix_path_strs[][256 + 12] = {
|
||||
#ifndef QT_BUILD_QMAKE
|
||||
"qt_prfxpath=$QT_SYSROOT_PREFIX",
|
||||
"qt_docspath=$QT_SYSROOT_DOCS",
|
||||
"qt_hdrspath=$QT_SYSROOT_HEADERS",
|
||||
"qt_libspath=$QT_SYSROOT_LIBS",
|
||||
"qt_lbexpath=$QT_SYSROOT_LIBEXECS",
|
||||
"qt_binspath=$QT_SYSROOT_BINS",
|
||||
"qt_plugpath=$QT_SYSROOT_PLUGINS",
|
||||
"qt_impspath=$QT_SYSROOT_IMPORTS",
|
||||
"qt_qml2path=$QT_SYSROOT_QML",
|
||||
"qt_adatpath=$QT_SYSROOT_ARCHDATA",
|
||||
"qt_datapath=$QT_SYSROOT_DATA",
|
||||
"qt_trnspath=$QT_SYSROOT_TRANSLATIONS",
|
||||
"qt_xmplpath=$QT_SYSROOT_EXAMPLES",
|
||||
"qt_tstspath=$QT_SYSROOT_TESTS",
|
||||
static const char qt_configure_prefix_path_str [256 + 12] = "qt_prfxpath=$QT_INSTALL_PREFIX";
|
||||
#else
|
||||
"qt_prfxpath=$QT_INSTALL_PREFIX",
|
||||
"qt_docspath=$QT_INSTALL_DOCS",
|
||||
"qt_hdrspath=$QT_INSTALL_HEADERS",
|
||||
"qt_libspath=$QT_INSTALL_LIBS",
|
||||
"qt_lbexpath=$QT_INSTALL_LIBEXECS",
|
||||
"qt_binspath=$QT_INSTALL_BINS",
|
||||
"qt_plugpath=$QT_INSTALL_PLUGINS",
|
||||
"qt_impspath=$QT_INSTALL_IMPORTS",
|
||||
"qt_qml2path=$QT_INSTALL_QML",
|
||||
"qt_adatpath=$QT_INSTALL_ARCHDATA",
|
||||
"qt_datapath=$QT_INSTALL_DATA",
|
||||
"qt_trnspath=$QT_INSTALL_TRANSLATIONS",
|
||||
"qt_xmplpath=$QT_INSTALL_EXAMPLES",
|
||||
"qt_tstspath=$QT_INSTALL_TESTS",
|
||||
"qt_ssrtpath=$CFG_SYSROOT",
|
||||
"qt_hpfxpath=$QT_HOST_PREFIX",
|
||||
"qt_hbinpath=$QT_HOST_BINS",
|
||||
"qt_hlibpath=$QT_HOST_LIBS",
|
||||
"qt_hdatpath=$QT_HOST_DATA",
|
||||
"qt_targspec=$shortxspec",
|
||||
"qt_hostspec=$shortspec",
|
||||
static const char qt_configure_prefix_path_str [256 + 12] = "qt_prfxpath=$QT_EXT_PREFIX";
|
||||
static const char qt_configure_host_prefix_path_str [256 + 12] = "qt_hpfxpath=$QT_HOST_PREFIX";
|
||||
#endif
|
||||
|
||||
static const short qt_configure_str_offsets[] = {
|
||||
$QT_CONFIGURE_STR_OFFSETS_ALL
|
||||
#ifdef QT_BUILD_QMAKE
|
||||
$QT_CONFIGURE_STR_OFFSETS
|
||||
#endif
|
||||
};
|
||||
static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
|
||||
static const char qt_configure_strs[] =
|
||||
$QT_CONFIGURE_STRS_ALL#ifdef QT_BUILD_QMAKE
|
||||
$QT_CONFIGURE_STRS#endif
|
||||
;
|
||||
|
||||
#define QT_CONFIGURE_SETTINGS_PATH "$QT_REL_INSTALL_SETTINGS"
|
||||
|
||||
#ifdef QT_BUILD_QMAKE
|
||||
static const char qt_sysrootify_prefix[] = "qt_ssrtfpfx=$QMAKE_SYSROOTIFY";
|
||||
# define QT_CONFIGURE_SYSROOTIFY_PREFIX $QMAKE_SYSROOTIFY
|
||||
#endif
|
||||
EOF
|
||||
|
||||
cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
|
||||
|
||||
/* strlen( "qt_lcnsxxxx" ) == 12 */
|
||||
#define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12
|
||||
#define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12
|
||||
|
||||
#define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12
|
||||
#define QT_CONFIGURE_PREFIX_PATH qt_configure_prefix_path_str + 12
|
||||
#ifdef QT_BUILD_QMAKE
|
||||
# define QT_CONFIGURE_HOST_PREFIX_PATH qt_configure_host_prefix_path_str + 12
|
||||
#endif
|
||||
EOF
|
||||
|
||||
# avoid unecessary rebuilds by copying only if qconfig.cpp has changed
|
||||
@ -7093,6 +7108,12 @@ if [ -n "$RPATH_MESSAGE" ]; then
|
||||
echo "$RPATH_MESSAGE"
|
||||
fi
|
||||
|
||||
if [ -n "$PREFIX_COMPLAINTS" ]; then
|
||||
echo
|
||||
echo "$PREFIX_COMPLAINTS"
|
||||
echo
|
||||
fi
|
||||
|
||||
MAKE=`basename "$MAKE"`
|
||||
echo
|
||||
echo Qt is now configured for building. Just run \'$MAKE\'.
|
||||
|
@ -361,12 +361,12 @@ static const struct {
|
||||
{ "Tests", "tests" },
|
||||
#ifdef QT_BUILD_QMAKE
|
||||
{ "Sysroot", "" },
|
||||
{ "HostPrefix", "" },
|
||||
{ "HostBinaries", "bin" },
|
||||
{ "HostLibraries", "lib" },
|
||||
{ "HostData", "." },
|
||||
{ "TargetSpec", "" },
|
||||
{ "HostSpec", "" },
|
||||
{ "HostPrefix", "" },
|
||||
#endif
|
||||
};
|
||||
|
||||
@ -381,7 +381,7 @@ QLibraryInfo::location(LibraryLocation loc)
|
||||
QString ret = rawLocation(loc, FinalPaths);
|
||||
|
||||
// Automatically prepend the sysroot to target paths
|
||||
if ((loc < SysrootPath || loc > LastHostPath) && qt_sysrootify_prefix[12] == 'y') {
|
||||
if ((loc < SysrootPath || loc > LastHostPath) && QT_CONFIGURE_SYSROOTIFY_PREFIX) {
|
||||
QString sysroot = rawLocation(SysrootPath, FinalPaths);
|
||||
if (!sysroot.isEmpty() && ret.length() > 2 && ret.at(1) == QLatin1Char(':')
|
||||
&& (ret.at(2) == QLatin1Char('/') || ret.at(2) == QLatin1Char('\\')))
|
||||
@ -416,12 +416,19 @@ QLibraryInfo::rawLocation(LibraryLocation loc, PathGroup group)
|
||||
#endif
|
||||
{
|
||||
const char *path = 0;
|
||||
if (unsigned(loc) < sizeof(qt_configure_prefix_path_strs)/sizeof(qt_configure_prefix_path_strs[0]))
|
||||
path = qt_configure_prefix_path_strs[loc] + 12;
|
||||
if (loc == PrefixPath) {
|
||||
path = QT_CONFIGURE_PREFIX_PATH;
|
||||
} else if (unsigned(loc) <= sizeof(qt_configure_str_offsets)/sizeof(qt_configure_str_offsets[0])) {
|
||||
path = qt_configure_strs + qt_configure_str_offsets[loc - 1];
|
||||
#ifndef Q_OS_WIN // On Windows we use the registry
|
||||
else if (loc == SettingsPath)
|
||||
} else if (loc == SettingsPath) {
|
||||
path = QT_CONFIGURE_SETTINGS_PATH;
|
||||
#endif
|
||||
#ifdef QT_BOOTSTRAPPED
|
||||
} else if (loc == HostPrefixPath) {
|
||||
path = QT_CONFIGURE_HOST_PREFIX_PATH;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (path)
|
||||
ret = QString::fromLocal8Bit(path);
|
||||
@ -455,7 +462,7 @@ QLibraryInfo::rawLocation(LibraryLocation loc, PathGroup group)
|
||||
ret = config->value(QLatin1String(qtConfEntries[PrefixPath].key),
|
||||
QLatin1String(qtConfEntries[PrefixPath].value)).toString();
|
||||
else if (loc == TargetSpecPath || loc == HostSpecPath)
|
||||
ret = QString::fromLocal8Bit(qt_configure_prefix_path_strs[loc] + 12);
|
||||
ret = QString::fromLocal8Bit(qt_configure_strs + qt_configure_str_offsets[loc - 1]);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -608,9 +615,9 @@ void qt_core_boilerplate()
|
||||
"Library path: %s\n"
|
||||
"Include path: %s\n",
|
||||
qt_configure_installation + 12,
|
||||
qt_configure_prefix_path_strs[QT_PREPEND_NAMESPACE(QLibraryInfo)::PrefixPath] + 12,
|
||||
qt_configure_prefix_path_strs[QT_PREPEND_NAMESPACE(QLibraryInfo)::LibrariesPath] + 12,
|
||||
qt_configure_prefix_path_strs[QT_PREPEND_NAMESPACE(QLibraryInfo)::HeadersPath] + 12);
|
||||
qt_configure_prefix_path_str + 12,
|
||||
qt_configure_strs + qt_configure_str_offsets[QT_PREPEND_NAMESPACE(QLibraryInfo)::LibrariesPath - 1],
|
||||
qt_configure_strs + qt_configure_str_offsets[QT_PREPEND_NAMESPACE(QLibraryInfo)::HeadersPath - 1]);
|
||||
|
||||
QT_PREPEND_NAMESPACE(qDumpCPUFeatures)();
|
||||
|
||||
|
@ -76,13 +76,13 @@ public:
|
||||
#ifdef QT_BUILD_QMAKE
|
||||
// These are not subject to binary compatibility constraints
|
||||
SysrootPath,
|
||||
HostPrefixPath,
|
||||
HostBinariesPath,
|
||||
HostLibrariesPath,
|
||||
HostDataPath,
|
||||
TargetSpecPath,
|
||||
HostSpecPath,
|
||||
LastHostPath = HostSpecPath,
|
||||
HostPrefixPath,
|
||||
LastHostPath = HostPrefixPath,
|
||||
#endif
|
||||
SettingsPath = 100
|
||||
};
|
||||
|
@ -1727,7 +1727,8 @@ bool Configure::displayHelp()
|
||||
"host machine. If [dir] is not given, the current build\n"
|
||||
"directory will be used. (default EXTPREFIX)\n");
|
||||
|
||||
desc("You may use these to separate different parts of the install:\n\n");
|
||||
desc("You may use these to change the layout of the install. Note that all directories\n"
|
||||
"except -sysconfdir should be located under -prefix/-hostprefix:\n\n");
|
||||
|
||||
desc( "-bindir <dir>", "User executables will be installed to <dir>\n(default PREFIX/bin)");
|
||||
desc( "-libdir <dir>", "Libraries will be installed to <dir>\n(default PREFIX/lib)");
|
||||
@ -3832,6 +3833,11 @@ void Configure::displayConfig()
|
||||
<< "will be the same unless you are cross-compiling)." << endl
|
||||
<< endl;
|
||||
}
|
||||
if (!dictionary["PREFIX_COMPLAINTS"].isEmpty()) {
|
||||
sout << endl
|
||||
<< dictionary["PREFIX_COMPLAINTS"] << endl
|
||||
<< endl;
|
||||
}
|
||||
|
||||
// display config.summary
|
||||
sout.seekg(0, ios::beg);
|
||||
@ -3867,11 +3873,11 @@ void Configure::generateHeaders()
|
||||
}
|
||||
}
|
||||
|
||||
void Configure::substPrefix(QString *path)
|
||||
void Configure::addConfStr(int group, const QString &val)
|
||||
{
|
||||
QString spfx = dictionary["QT_SYSROOT_PREFIX"];
|
||||
if (path->startsWith(spfx))
|
||||
path->replace(0, spfx.size(), dictionary["QT_EXT_PREFIX"]);
|
||||
confStrOffsets[group] += ' ' + QString::number(confStringOff) + ',';
|
||||
confStrings[group] += " \"" + val + "\\0\"\n";
|
||||
confStringOff += val.length() + 1;
|
||||
}
|
||||
|
||||
void Configure::generateQConfigCpp()
|
||||
@ -3879,87 +3885,163 @@ void Configure::generateQConfigCpp()
|
||||
QString hostSpec = dictionary["QMAKESPEC"];
|
||||
QString targSpec = dictionary.contains("XQMAKESPEC") ? dictionary["XQMAKESPEC"] : hostSpec;
|
||||
|
||||
// if QT_INSTALL_* have not been specified on commandline, define them now from QT_INSTALL_PREFIX
|
||||
// if prefix is empty (WINCE), make all of them empty, if they aren't set
|
||||
dictionary["CFG_SYSROOT"] = QDir::cleanPath(dictionary["CFG_SYSROOT"]);
|
||||
|
||||
bool qipempty = false;
|
||||
if (dictionary["QT_INSTALL_PREFIX"].isEmpty())
|
||||
qipempty = true;
|
||||
|
||||
if (!dictionary["QT_INSTALL_HEADERS"].size())
|
||||
dictionary["QT_INSTALL_HEADERS"] = qipempty ? "" : dictionary["QT_INSTALL_PREFIX"] + "/include";
|
||||
if (!dictionary["QT_INSTALL_LIBS"].size())
|
||||
dictionary["QT_INSTALL_LIBS"] = qipempty ? "" : dictionary["QT_INSTALL_PREFIX"] + "/lib";
|
||||
if (!dictionary["QT_INSTALL_ARCHDATA"].size())
|
||||
dictionary["QT_INSTALL_ARCHDATA"] = qipempty ? "" : dictionary["QT_INSTALL_PREFIX"];
|
||||
if (!dictionary["QT_INSTALL_LIBEXECS"].size()) {
|
||||
if (targSpec.startsWith("win"))
|
||||
dictionary["QT_INSTALL_LIBEXECS"] = qipempty ? "" : dictionary["QT_INSTALL_ARCHDATA"] + "/bin";
|
||||
else
|
||||
dictionary["QT_INSTALL_LIBEXECS"] = qipempty ? "" : dictionary["QT_INSTALL_ARCHDATA"] + "/libexec";
|
||||
}
|
||||
if (!dictionary["QT_INSTALL_BINS"].size())
|
||||
dictionary["QT_INSTALL_BINS"] = qipempty ? "" : dictionary["QT_INSTALL_PREFIX"] + "/bin";
|
||||
if (!dictionary["QT_INSTALL_PLUGINS"].size())
|
||||
dictionary["QT_INSTALL_PLUGINS"] = qipempty ? "" : dictionary["QT_INSTALL_ARCHDATA"] + "/plugins";
|
||||
if (!dictionary["QT_INSTALL_IMPORTS"].size())
|
||||
dictionary["QT_INSTALL_IMPORTS"] = qipempty ? "" : dictionary["QT_INSTALL_ARCHDATA"] + "/imports";
|
||||
if (!dictionary["QT_INSTALL_QML"].size())
|
||||
dictionary["QT_INSTALL_QML"] = qipempty ? "" : dictionary["QT_INSTALL_ARCHDATA"] + "/qml";
|
||||
if (!dictionary["QT_INSTALL_DATA"].size())
|
||||
dictionary["QT_INSTALL_DATA"] = qipempty ? "" : dictionary["QT_INSTALL_PREFIX"];
|
||||
if (!dictionary["QT_INSTALL_DOCS"].size())
|
||||
dictionary["QT_INSTALL_DOCS"] = qipempty ? "" : dictionary["QT_INSTALL_DATA"] + "/doc";
|
||||
if (!dictionary["QT_INSTALL_TRANSLATIONS"].size())
|
||||
dictionary["QT_INSTALL_TRANSLATIONS"] = qipempty ? "" : dictionary["QT_INSTALL_DATA"] + "/translations";
|
||||
if (!dictionary["QT_INSTALL_EXAMPLES"].size())
|
||||
dictionary["QT_INSTALL_EXAMPLES"] = qipempty ? "" : dictionary["QT_INSTALL_PREFIX"] + "/examples";
|
||||
if (!dictionary["QT_INSTALL_TESTS"].size())
|
||||
dictionary["QT_INSTALL_TESTS"] = qipempty ? "" : dictionary["QT_INSTALL_PREFIX"] + "/tests";
|
||||
|
||||
QChar sysrootifyPrefix = QLatin1Char('y');
|
||||
dictionary["QT_SYSROOT_PREFIX"] = dictionary["QT_INSTALL_PREFIX"];
|
||||
dictionary["QT_SYSROOT_HEADERS"] = dictionary["QT_INSTALL_HEADERS"];
|
||||
dictionary["QT_SYSROOT_LIBS"] = dictionary["QT_INSTALL_LIBS"];
|
||||
dictionary["QT_SYSROOT_ARCHDATA"] = dictionary["QT_INSTALL_ARCHDATA"];
|
||||
dictionary["QT_SYSROOT_LIBEXECS"] = dictionary["QT_INSTALL_LIBEXECS"];
|
||||
dictionary["QT_SYSROOT_BINS"] = dictionary["QT_INSTALL_BINS"];
|
||||
dictionary["QT_SYSROOT_PLUGINS"] = dictionary["QT_INSTALL_PLUGINS"];
|
||||
dictionary["QT_SYSROOT_IMPORTS"] = dictionary["QT_INSTALL_IMPORTS"];
|
||||
dictionary["QT_SYSROOT_QML"] = dictionary["QT_INSTALL_QML"];
|
||||
dictionary["QT_SYSROOT_DATA"] = dictionary["QT_INSTALL_DATA"];
|
||||
dictionary["QT_SYSROOT_DOCS"] = dictionary["QT_INSTALL_DOCS"];
|
||||
dictionary["QT_SYSROOT_TRANSLATIONS"] = dictionary["QT_INSTALL_TRANSLATIONS"];
|
||||
dictionary["QT_SYSROOT_EXAMPLES"] = dictionary["QT_INSTALL_EXAMPLES"];
|
||||
dictionary["QT_SYSROOT_TESTS"] = dictionary["QT_INSTALL_TESTS"];
|
||||
if (dictionary["QT_EXT_PREFIX"].size()) {
|
||||
sysrootifyPrefix = QLatin1Char('n');
|
||||
dictionary["QT_INSTALL_PREFIX"] = dictionary["QT_EXT_PREFIX"];
|
||||
substPrefix(&dictionary["QT_INSTALL_HEADERS"]);
|
||||
substPrefix(&dictionary["QT_INSTALL_LIBS"]);
|
||||
substPrefix(&dictionary["QT_INSTALL_ARCHDATA"]);
|
||||
substPrefix(&dictionary["QT_INSTALL_LIBEXECS"]);
|
||||
substPrefix(&dictionary["QT_INSTALL_BINS"]);
|
||||
substPrefix(&dictionary["QT_INSTALL_PLUGINS"]);
|
||||
substPrefix(&dictionary["QT_INSTALL_IMPORTS"]);
|
||||
substPrefix(&dictionary["QT_INSTALL_QML"]);
|
||||
substPrefix(&dictionary["QT_INSTALL_DATA"]);
|
||||
substPrefix(&dictionary["QT_INSTALL_DOCS"]);
|
||||
substPrefix(&dictionary["QT_INSTALL_TRANSLATIONS"]);
|
||||
substPrefix(&dictionary["QT_INSTALL_EXAMPLES"]);
|
||||
substPrefix(&dictionary["QT_INSTALL_TESTS"]);
|
||||
}
|
||||
|
||||
bool haveHpx = false;
|
||||
if (dictionary["QT_HOST_PREFIX"].isEmpty())
|
||||
dictionary["QT_HOST_PREFIX"] = dictionary["QT_INSTALL_PREFIX"];
|
||||
else
|
||||
dictionary["QT_INSTALL_PREFIX"] = QDir::cleanPath(dictionary["QT_INSTALL_PREFIX"]);
|
||||
|
||||
bool sysrootifyPrefix;
|
||||
if (dictionary["QT_EXT_PREFIX"].isEmpty()) {
|
||||
dictionary["QT_EXT_PREFIX"] = dictionary["QT_INSTALL_PREFIX"];
|
||||
sysrootifyPrefix = !dictionary["CFG_SYSROOT"].isEmpty();
|
||||
} else {
|
||||
dictionary["QT_EXT_PREFIX"] = QDir::cleanPath(dictionary["QT_EXT_PREFIX"]);
|
||||
sysrootifyPrefix = false;
|
||||
}
|
||||
|
||||
bool haveHpx;
|
||||
if (dictionary["QT_HOST_PREFIX"].isEmpty()) {
|
||||
dictionary["QT_HOST_PREFIX"] = (sysrootifyPrefix ? dictionary["CFG_SYSROOT"] : QString())
|
||||
+ dictionary["QT_INSTALL_PREFIX"];
|
||||
haveHpx = false;
|
||||
} else {
|
||||
dictionary["QT_HOST_PREFIX"] = QDir::cleanPath(dictionary["QT_HOST_PREFIX"]);
|
||||
haveHpx = true;
|
||||
if (dictionary["QT_HOST_BINS"].isEmpty())
|
||||
dictionary["QT_HOST_BINS"] = haveHpx ? dictionary["QT_HOST_PREFIX"] + "/bin" : dictionary["QT_INSTALL_BINS"];
|
||||
if (dictionary["QT_HOST_LIBS"].isEmpty())
|
||||
dictionary["QT_HOST_LIBS"] = haveHpx ? dictionary["QT_HOST_PREFIX"] + "/lib" : dictionary["QT_INSTALL_LIBS"];
|
||||
if (dictionary["QT_HOST_DATA"].isEmpty())
|
||||
dictionary["QT_HOST_DATA"] = haveHpx ? dictionary["QT_HOST_PREFIX"] : dictionary["QT_INSTALL_ARCHDATA"];
|
||||
}
|
||||
|
||||
static const struct {
|
||||
const char *basevar, *baseoption, *var, *option;
|
||||
} varmod[] = {
|
||||
{ "INSTALL_", "-prefix", "DOCS", "-docdir" },
|
||||
{ "INSTALL_", "-prefix", "HEADERS", "-headerdir" },
|
||||
{ "INSTALL_", "-prefix", "LIBS", "-libdir" },
|
||||
{ "INSTALL_", "-prefix", "LIBEXECS", "-libexecdir" },
|
||||
{ "INSTALL_", "-prefix", "BINS", "-bindir" },
|
||||
{ "INSTALL_", "-prefix", "PLUGINS", "-plugindir" },
|
||||
{ "INSTALL_", "-prefix", "IMPORTS", "-importdir" },
|
||||
{ "INSTALL_", "-prefix", "QML", "-qmldir" },
|
||||
{ "INSTALL_", "-prefix", "ARCHDATA", "-archdatadir" },
|
||||
{ "INSTALL_", "-prefix", "DATA", "-datadir" },
|
||||
{ "INSTALL_", "-prefix", "TRANSLATIONS", "-translationdir" },
|
||||
{ "INSTALL_", "-prefix", "EXAMPLES", "-examplesdir" },
|
||||
{ "INSTALL_", "-prefix", "TESTS", "-testsdir" },
|
||||
{ "INSTALL_", "-prefix", "SETTINGS", "-sysconfdir" },
|
||||
{ "HOST_", "-hostprefix", "BINS", "-hostbindir" },
|
||||
{ "HOST_", "-hostprefix", "LIBS", "-hostlibdir" },
|
||||
{ "HOST_", "-hostprefix", "DATA", "-hostdatadir" },
|
||||
};
|
||||
|
||||
bool prefixReminder = false;
|
||||
for (int i = 0; i < sizeof(varmod) / sizeof(varmod[0]); i++) {
|
||||
QString path = QDir::cleanPath(
|
||||
dictionary[QLatin1String("QT_") + varmod[i].basevar + varmod[i].var]);
|
||||
if (path.isEmpty())
|
||||
continue;
|
||||
QString base = dictionary[QLatin1String("QT_") + varmod[i].basevar + "PREFIX"];
|
||||
if (!path.startsWith(base)) {
|
||||
if (i != 13) {
|
||||
dictionary["PREFIX_COMPLAINTS"] += QLatin1String("\n NOTICE: ")
|
||||
+ varmod[i].option + " is not a subdirectory of " + varmod[i].baseoption + ".";
|
||||
if (i < 13 ? qipempty : !haveHpx)
|
||||
prefixReminder = true;
|
||||
}
|
||||
} else {
|
||||
path.remove(0, base.size());
|
||||
if (path.startsWith('/'))
|
||||
path.remove(0, 1);
|
||||
}
|
||||
dictionary[QLatin1String("QT_REL_") + varmod[i].basevar + varmod[i].var]
|
||||
= path.isEmpty() ? "." : path;
|
||||
}
|
||||
if (prefixReminder) {
|
||||
dictionary["PREFIX_COMPLAINTS"]
|
||||
+= "\n Maybe you forgot to specify -prefix/-hostprefix?";
|
||||
}
|
||||
|
||||
if (!qipempty) {
|
||||
// If QT_INSTALL_* have not been specified on the command line,
|
||||
// default them here, unless prefix is empty (WinCE).
|
||||
|
||||
if (dictionary["QT_REL_INSTALL_HEADERS"].isEmpty())
|
||||
dictionary["QT_REL_INSTALL_HEADERS"] = "include";
|
||||
|
||||
if (dictionary["QT_REL_INSTALL_LIBS"].isEmpty())
|
||||
dictionary["QT_REL_INSTALL_LIBS"] = "lib";
|
||||
|
||||
if (dictionary["QT_REL_INSTALL_BINS"].isEmpty())
|
||||
dictionary["QT_REL_INSTALL_BINS"] = "bin";
|
||||
|
||||
if (dictionary["QT_REL_INSTALL_ARCHDATA"].isEmpty())
|
||||
dictionary["QT_REL_INSTALL_ARCHDATA"] = ".";
|
||||
if (dictionary["QT_REL_INSTALL_ARCHDATA"] != ".")
|
||||
dictionary["QT_REL_INSTALL_ARCHDATA_PREFIX"] = dictionary["QT_REL_INSTALL_ARCHDATA"] + '/';
|
||||
|
||||
if (dictionary["QT_REL_INSTALL_LIBEXECS"].isEmpty()) {
|
||||
if (targSpec.startsWith("win"))
|
||||
dictionary["QT_REL_INSTALL_LIBEXECS"] = dictionary["QT_REL_INSTALL_ARCHDATA_PREFIX"] + "bin";
|
||||
else
|
||||
dictionary["QT_REL_INSTALL_LIBEXECS"] = dictionary["QT_REL_INSTALL_ARCHDATA_PREFIX"] + "libexec";
|
||||
}
|
||||
|
||||
if (dictionary["QT_REL_INSTALL_PLUGINS"].isEmpty())
|
||||
dictionary["QT_REL_INSTALL_PLUGINS"] = dictionary["QT_REL_INSTALL_ARCHDATA_PREFIX"] + "plugins";
|
||||
|
||||
if (dictionary["QT_REL_INSTALL_IMPORTS"].isEmpty())
|
||||
dictionary["QT_REL_INSTALL_IMPORTS"] = dictionary["QT_REL_INSTALL_ARCHDATA_PREFIX"] + "imports";
|
||||
|
||||
if (dictionary["QT_REL_INSTALL_QML"].isEmpty())
|
||||
dictionary["QT_REL_INSTALL_QML"] = dictionary["QT_REL_INSTALL_ARCHDATA_PREFIX"] + "qml";
|
||||
|
||||
if (dictionary["QT_REL_INSTALL_DATA"].isEmpty())
|
||||
dictionary["QT_REL_INSTALL_DATA"] = ".";
|
||||
if (dictionary["QT_REL_INSTALL_DATA"] != ".")
|
||||
dictionary["QT_REL_INSTALL_DATA_PREFIX"] = dictionary["QT_REL_INSTALL_DATA"] + '/';
|
||||
|
||||
if (dictionary["QT_REL_INSTALL_DOCS"].isEmpty())
|
||||
dictionary["QT_REL_INSTALL_DOCS"] = dictionary["QT_REL_INSTALL_DATA_PREFIX"] + "doc";
|
||||
|
||||
if (dictionary["QT_REL_INSTALL_TRANSLATIONS"].isEmpty())
|
||||
dictionary["QT_REL_INSTALL_TRANSLATIONS"] = dictionary["QT_REL_INSTALL_DATA_PREFIX"] + "translations";
|
||||
|
||||
if (dictionary["QT_REL_INSTALL_EXAMPLES"].isEmpty())
|
||||
dictionary["QT_REL_INSTALL_EXAMPLES"] = "examples";
|
||||
|
||||
if (dictionary["QT_REL_INSTALL_TESTS"].isEmpty())
|
||||
dictionary["QT_REL_INSTALL_TESTS"] = "tests";
|
||||
}
|
||||
|
||||
if (dictionary["QT_REL_HOST_BINS"].isEmpty())
|
||||
dictionary["QT_REL_HOST_BINS"] = haveHpx ? "bin" : dictionary["QT_REL_INSTALL_BINS"];
|
||||
|
||||
if (dictionary["QT_REL_HOST_LIBS"].isEmpty())
|
||||
dictionary["QT_REL_HOST_LIBS"] = haveHpx ? "lib" : dictionary["QT_REL_INSTALL_LIBS"];
|
||||
|
||||
if (dictionary["QT_REL_HOST_DATA"].isEmpty())
|
||||
dictionary["QT_REL_HOST_DATA"] = haveHpx ? "." : dictionary["QT_REL_INSTALL_ARCHDATA"];
|
||||
|
||||
confStringOff = 0;
|
||||
addConfStr(0, dictionary["QT_REL_INSTALL_DOCS"]);
|
||||
addConfStr(0, dictionary["QT_REL_INSTALL_HEADERS"]);
|
||||
addConfStr(0, dictionary["QT_REL_INSTALL_LIBS"]);
|
||||
addConfStr(0, dictionary["QT_REL_INSTALL_LIBEXECS"]);
|
||||
addConfStr(0, dictionary["QT_REL_INSTALL_BINS"]);
|
||||
addConfStr(0, dictionary["QT_REL_INSTALL_PLUGINS"]);
|
||||
addConfStr(0, dictionary["QT_REL_INSTALL_IMPORTS"]);
|
||||
addConfStr(0, dictionary["QT_REL_INSTALL_QML"]);
|
||||
addConfStr(0, dictionary["QT_REL_INSTALL_ARCHDATA"]);
|
||||
addConfStr(0, dictionary["QT_REL_INSTALL_DATA"]);
|
||||
addConfStr(0, dictionary["QT_REL_INSTALL_TRANSLATIONS"]);
|
||||
addConfStr(0, dictionary["QT_REL_INSTALL_EXAMPLES"]);
|
||||
addConfStr(0, dictionary["QT_REL_INSTALL_TESTS"]);
|
||||
addConfStr(1, dictionary["CFG_SYSROOT"]);
|
||||
addConfStr(1, dictionary["QT_REL_HOST_BINS"]);
|
||||
addConfStr(1, dictionary["QT_REL_HOST_LIBS"]);
|
||||
addConfStr(1, dictionary["QT_REL_HOST_DATA"]);
|
||||
addConfStr(1, targSpec);
|
||||
addConfStr(1, hostSpec);
|
||||
|
||||
// Generate the new qconfig.cpp file
|
||||
{
|
||||
@ -3971,60 +4053,40 @@ void Configure::generateQConfigCpp()
|
||||
<< "/* Build date */" << endl
|
||||
<< "static const char qt_configure_installation [11 + 12] = \"qt_instdate=" << QDate::currentDate().toString(Qt::ISODate) << "\";" << endl
|
||||
<< endl
|
||||
<< "static const char qt_configure_prefix_path_strs[][12 + 512] = {" << endl
|
||||
<< "/* Installation Info */" << endl
|
||||
<< "#ifndef QT_BUILD_QMAKE" << endl
|
||||
<< " \"qt_prfxpath=" << QDir::cleanPath(dictionary["QT_SYSROOT_PREFIX"]) << "\"," << endl
|
||||
<< " \"qt_docspath=" << QDir::cleanPath(dictionary["QT_SYSROOT_DOCS"]) << "\"," << endl
|
||||
<< " \"qt_hdrspath=" << QDir::cleanPath(dictionary["QT_SYSROOT_HEADERS"]) << "\"," << endl
|
||||
<< " \"qt_libspath=" << QDir::cleanPath(dictionary["QT_SYSROOT_LIBS"]) << "\"," << endl
|
||||
<< " \"qt_lbexpath=" << QDir::cleanPath(dictionary["QT_SYSROOT_LIBEXECS"]) << "\"," << endl
|
||||
<< " \"qt_binspath=" << QDir::cleanPath(dictionary["QT_SYSROOT_BINS"]) << "\"," << endl
|
||||
<< " \"qt_plugpath=" << QDir::cleanPath(dictionary["QT_SYSROOT_PLUGINS"]) << "\"," << endl
|
||||
<< " \"qt_impspath=" << QDir::cleanPath(dictionary["QT_SYSROOT_IMPORTS"]) << "\"," << endl
|
||||
<< " \"qt_qml2path=" << QDir::cleanPath(dictionary["QT_SYSROOT_QML"]) << "\"," << endl
|
||||
<< " \"qt_adatpath=" << QDir::cleanPath(dictionary["QT_SYSROOT_ARCHDATA"]) << "\"," << endl
|
||||
<< " \"qt_datapath=" << QDir::cleanPath(dictionary["QT_SYSROOT_DATA"]) << "\"," << endl
|
||||
<< " \"qt_trnspath=" << QDir::cleanPath(dictionary["QT_SYSROOT_TRANSLATIONS"]) << "\"," << endl
|
||||
<< " \"qt_xmplpath=" << QDir::cleanPath(dictionary["QT_SYSROOT_EXAMPLES"]) << "\"," << endl
|
||||
<< " \"qt_tstspath=" << QDir::cleanPath(dictionary["QT_SYSROOT_TESTS"]) << "\"," << endl
|
||||
<< "static const char qt_configure_prefix_path_str [512 + 12] = \"qt_prfxpath=" << dictionary["QT_INSTALL_PREFIX"] << "\";" << endl
|
||||
<< "#else" << endl
|
||||
<< " \"qt_prfxpath=" << QDir::cleanPath(dictionary["QT_INSTALL_PREFIX"]) << "\"," << endl
|
||||
<< " \"qt_docspath=" << QDir::cleanPath(dictionary["QT_INSTALL_DOCS"]) << "\"," << endl
|
||||
<< " \"qt_hdrspath=" << QDir::cleanPath(dictionary["QT_INSTALL_HEADERS"]) << "\"," << endl
|
||||
<< " \"qt_libspath=" << QDir::cleanPath(dictionary["QT_INSTALL_LIBS"]) << "\"," << endl
|
||||
<< " \"qt_lbexpath=" << QDir::cleanPath(dictionary["QT_INSTALL_LIBEXECS"]) << "\"," << endl
|
||||
<< " \"qt_binspath=" << QDir::cleanPath(dictionary["QT_INSTALL_BINS"]) << "\"," << endl
|
||||
<< " \"qt_plugpath=" << QDir::cleanPath(dictionary["QT_INSTALL_PLUGINS"]) << "\"," << endl
|
||||
<< " \"qt_impspath=" << QDir::cleanPath(dictionary["QT_INSTALL_IMPORTS"]) << "\"," << endl
|
||||
<< " \"qt_qml2path=" << QDir::cleanPath(dictionary["QT_INSTALL_QML"]) << "\"," << endl
|
||||
<< " \"qt_adatpath=" << QDir::cleanPath(dictionary["QT_INSTALL_ARCHDATA"]) << "\"," << endl
|
||||
<< " \"qt_datapath=" << QDir::cleanPath(dictionary["QT_INSTALL_DATA"]) << "\"," << endl
|
||||
<< " \"qt_trnspath=" << QDir::cleanPath(dictionary["QT_INSTALL_TRANSLATIONS"]) << "\"," << endl
|
||||
<< " \"qt_xmplpath=" << QDir::cleanPath(dictionary["QT_INSTALL_EXAMPLES"]) << "\"," << endl
|
||||
<< " \"qt_tstspath=" << QDir::cleanPath(dictionary["QT_INSTALL_TESTS"]) << "\"," << endl
|
||||
<< " \"qt_ssrtpath=" << QDir::cleanPath(dictionary["CFG_SYSROOT"]) << "\"," << endl
|
||||
<< " \"qt_hpfxpath=" << QDir::cleanPath(dictionary["QT_HOST_PREFIX"]) << "\"," << endl
|
||||
<< " \"qt_hbinpath=" << QDir::cleanPath(dictionary["QT_HOST_BINS"]) << "\"," << endl
|
||||
<< " \"qt_hlibpath=" << QDir::cleanPath(dictionary["QT_HOST_LIBS"]) << "\"," << endl
|
||||
<< " \"qt_hdatpath=" << QDir::cleanPath(dictionary["QT_HOST_DATA"]) << "\"," << endl
|
||||
<< " \"qt_targspec=" << targSpec << "\"," << endl
|
||||
<< " \"qt_hostspec=" << hostSpec << "\"," << endl
|
||||
<< "static const char qt_configure_prefix_path_str [512 + 12] = \"qt_prfxpath=" << dictionary["QT_EXT_PREFIX"] << "\";" << endl
|
||||
<< "static const char qt_configure_host_prefix_path_str [512 + 12] = \"qt_hpfxpath=" << dictionary["QT_HOST_PREFIX"] << "\";" << endl
|
||||
<< "#endif" << endl
|
||||
<< "};" << endl;
|
||||
|
||||
<< endl
|
||||
<< "static const short qt_configure_str_offsets[] = {\n"
|
||||
<< " " << confStrOffsets[0] << endl
|
||||
<< "#ifdef QT_BUILD_QMAKE\n"
|
||||
<< " " << confStrOffsets[1] << endl
|
||||
<< "#endif\n"
|
||||
<< "};\n"
|
||||
<< "static const char qt_configure_strs[] =\n"
|
||||
<< confStrings[0] << "#ifdef QT_BUILD_QMAKE\n"
|
||||
<< confStrings[1] << "#endif\n"
|
||||
<< ";\n"
|
||||
<< endl;
|
||||
if ((platform() != WINDOWS) && (platform() != WINDOWS_CE) && (platform() != WINDOWS_RT))
|
||||
tmpStream << "static const char qt_configure_settings_path_str [256 + 12] = \"qt_stngpath=" << QDir::cleanPath(dictionary["QT_INSTALL_SETTINGS"]) << "\";" << endl;
|
||||
tmpStream << "#define QT_CONFIGURE_SETTINGS_PATH \"" << QDir::cleanPath(dictionary["QT_INSTALL_SETTINGS"]) << "\"" << endl;
|
||||
|
||||
tmpStream << endl
|
||||
<< "#ifdef QT_BUILD_QMAKE\n"
|
||||
<< "static const char qt_sysrootify_prefix[] = \"qt_ssrtfpfx=" << sysrootifyPrefix << "\";\n"
|
||||
<< "# define QT_CONFIGURE_SYSROOTIFY_PREFIX " << (sysrootifyPrefix ? "true" : "false") << endl
|
||||
<< "#endif\n\n"
|
||||
<< "/* strlen( \"qt_lcnsxxxx\") == 12 */" << endl
|
||||
<< "#define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12" << endl
|
||||
<< "#define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12" << endl;
|
||||
|
||||
if ((platform() != WINDOWS) && (platform() != WINDOWS_CE) && (platform() != WINDOWS_RT))
|
||||
tmpStream << "#define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12" << endl;
|
||||
<< "#define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12" << endl
|
||||
<< endl
|
||||
<< "#define QT_CONFIGURE_PREFIX_PATH qt_configure_prefix_path_str + 12\n"
|
||||
<< "#ifdef QT_BUILD_QMAKE\n"
|
||||
<< "# define QT_CONFIGURE_HOST_PREFIX_PATH qt_configure_host_prefix_path_str + 12\n"
|
||||
<< "#endif\n";
|
||||
|
||||
if (!tmpStream.flush())
|
||||
dictionary[ "DONE" ] = "error";
|
||||
|
@ -143,8 +143,11 @@ private:
|
||||
int descIndent;
|
||||
int outputWidth;
|
||||
|
||||
void substPrefix(QString *path);
|
||||
QString confStrOffsets[2];
|
||||
QString confStrings[2];
|
||||
int confStringOff;
|
||||
|
||||
void addConfStr(int group, const QString &val);
|
||||
QString formatPath(const QString &path);
|
||||
QString formatPaths(const QStringList &paths);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user