Merge remote-tracking branch 'origin/5.8' into dev
Conflicts: configure qmake/Makefile.unix.macos qmake/Makefile.unix.win32 qmake/generators/win32/msvc_vcproj.cpp src/3rdparty/pcre/qt_attribution.json src/corelib/io/qsettings.cpp src/corelib/kernel/qdeadlinetimer.cpp src/platformsupport/kmsconvenience/qkmsdevice.cpp src/platformsupport/kmsconvenience/qkmsdevice_p.h src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevicescreen.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.h tests/manual/qstorageinfo/printvolumes.cpp tools/configure/configureapp.cpp Change-Id: Ibaabcc8e965c44926f9fb018466e8b132b8df49ebb10
|
|
@ -399,14 +399,6 @@ HostVar()
|
|||
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
|
||||
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
|
||||
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
|
||||
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
|
||||
|
||||
# detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
|
||||
if echo '\c' | grep '\c' >/dev/null; then
|
||||
ECHO_N=-n
|
||||
else
|
||||
ECHO_C='\c'
|
||||
fi
|
||||
|
||||
BUILD_ON_MAC=no
|
||||
if [ -d /System/Library/Frameworks/Carbon.framework ]; then
|
||||
|
|
@ -470,7 +462,6 @@ unset QTDIR
|
|||
|
||||
# initalize internal variables
|
||||
CFG_RELEASE_TOOLS=no
|
||||
CFG_ANDROID_STYLE_ASSETS=yes
|
||||
|
||||
XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
|
||||
XPLATFORM_MAC=no # Whether target platform is macOS, iOS, tvOS, or watchOS
|
||||
|
|
@ -479,7 +470,7 @@ XPLATFORM_TVOS=no # Whether target platform is tvOS
|
|||
XPLATFORM_WATCHOS=no # Whether target platform is watchOS
|
||||
XPLATFORM_ANDROID=no
|
||||
XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
|
||||
PLATFORM=$QMAKESPEC
|
||||
PLATFORM=
|
||||
OPT_CONFIRM_LICENSE=no
|
||||
OPT_SHADOW=maybe
|
||||
OPT_VERBOSE=no
|
||||
|
|
@ -512,8 +503,6 @@ QT_HOST_LIBS=
|
|||
QT_HOST_DATA=
|
||||
QT_EXT_PREFIX=
|
||||
|
||||
# default qpa platform
|
||||
|
||||
# Android vars
|
||||
if [ -z "$ANDROID_SDK_ROOT" ]; then
|
||||
if [ "$UNAME_SYSTEM" = "Darwin" ] && [ -d "$HOME/Library/Android/sdk" ]; then
|
||||
|
|
@ -547,7 +536,6 @@ CFG_DEFAULT_ANDROID_NDK_HOST=$ANDROID_NDK_HOST
|
|||
# parse the arguments, setting things to "yes" or "no"
|
||||
while [ "$#" -gt 0 ]; do
|
||||
CURRENT_OPT="$1"
|
||||
UNKNOWN_ARG=no
|
||||
case "$1" in
|
||||
#Autoconf style options
|
||||
--enable-*)
|
||||
|
|
@ -676,10 +664,6 @@ while [ "$#" -gt 0 ]; do
|
|||
extprefix)
|
||||
QT_EXT_PREFIX="$VAL"
|
||||
;;
|
||||
pkg-config)
|
||||
;;
|
||||
force-pkg-config)
|
||||
;;
|
||||
docdir)
|
||||
QT_INSTALL_DOCS="$VAL"
|
||||
;;
|
||||
|
|
@ -816,12 +800,6 @@ while [ "$#" -gt 0 ]; do
|
|||
android-toolchain-version)
|
||||
CFG_DEFAULT_ANDROID_NDK_TOOLCHAIN_VERSION="$VAL"
|
||||
;;
|
||||
android-style-assets)
|
||||
# Required to be able to show the correct license text
|
||||
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
|
||||
CFG_ANDROID_STYLE_ASSETS="$VAL"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
|
@ -1033,168 +1011,6 @@ case "$XPLATFORM" in
|
|||
;;
|
||||
esac
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# check the license
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
if [ "$COMMERCIAL_USER" = "ask" ]; then
|
||||
while true; do
|
||||
echo "Which edition of Qt do you want to use ?"
|
||||
echo
|
||||
echo "Type 'c' if you want to use the Commercial Edition."
|
||||
echo "Type 'o' if you want to use the Open Source Edition."
|
||||
echo
|
||||
read commercial
|
||||
echo
|
||||
if [ "$commercial" = "c" ]; then
|
||||
COMMERCIAL_USER="yes"
|
||||
OPT_CMDLINE="$OPT_CMDLINE
|
||||
-commercial"
|
||||
break
|
||||
elif [ "$commercial" = "o" ]; then
|
||||
COMMERCIAL_USER="no"
|
||||
OPT_CMDLINE="$OPT_CMDLINE
|
||||
-opensource"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
|
||||
# Commercial preview release
|
||||
Licensee="Preview"
|
||||
Edition="Preview"
|
||||
EditionString="Technology Preview"
|
||||
elif [ $COMMERCIAL_USER = "yes" ]; then
|
||||
if [ $UNAME_SYSTEM = "Linux" ]; then
|
||||
case "$PLATFORM" in
|
||||
*-32)
|
||||
Licheck=licheck32
|
||||
;;
|
||||
*-64)
|
||||
Licheck=licheck64
|
||||
;;
|
||||
*)
|
||||
if file -L /bin/sh | grep -q "64-bit" ; then
|
||||
Licheck=licheck64
|
||||
else
|
||||
Licheck=licheck32
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
elif [ $UNAME_SYSTEM = "Darwin" ]; then
|
||||
Licheck=licheck_mac
|
||||
else
|
||||
echo >&2 "Host operating system not supported by this edition of Qt."
|
||||
exit 1
|
||||
fi
|
||||
if [ -x "$relpath/bin/$Licheck" ]; then
|
||||
LicheckOutput=`$relpath/bin/$Licheck $OPT_CONFIRM_LICENSE $relpath $outpath\
|
||||
$PLATFORM $XPLATFORM`
|
||||
if [ $? -ne 0 ]; then
|
||||
exit 1
|
||||
else
|
||||
eval "$LicheckOutput"
|
||||
fi
|
||||
else
|
||||
echo
|
||||
echo "Error: This is the Open Source version of Qt."
|
||||
echo "If you want to use Enterprise features of Qt,"
|
||||
echo "use the contact form at http://www.qt.io/contact-us"
|
||||
echo "to purchase a license."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
elif [ $COMMERCIAL_USER = "no" ]; then
|
||||
# Open Source edition - may only be used under the terms of the LGPLv3 or GPLv2.
|
||||
Licensee="Open Source"
|
||||
Edition="OpenSource"
|
||||
EditionString="Open Source"
|
||||
fi
|
||||
|
||||
if [ "$Edition" = "OpenSource" ] || [ "$Edition" = "Preview" ]; then
|
||||
echo
|
||||
echo "This is the Qt ${EditionString} Edition."
|
||||
echo
|
||||
fi
|
||||
|
||||
if [ "$Edition" = "OpenSource" ]; then
|
||||
while true; do
|
||||
if [ "$CFG_ANDROID_STYLE_ASSETS" = "no" ] || [ "$XPLATFORM_ANDROID" = "no" ]; then
|
||||
echo "You are licensed to use this software under the terms of"
|
||||
echo "the GNU Lesser General Public License (LGPL) version 3."
|
||||
echo "You are also licensed to use this software under the terms of"
|
||||
echo "the GNU General Public License (GPL) version 2."
|
||||
affix="either"
|
||||
showGPL2="yes"
|
||||
else
|
||||
echo "You are licensed to use this software under the terms of"
|
||||
echo "the GNU Lesser General Public License (LGPL) version 3."
|
||||
showGPL2="no"
|
||||
affix="the"
|
||||
fi
|
||||
|
||||
echo
|
||||
if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
|
||||
echo "You have already accepted the terms of the $EditionString license."
|
||||
acceptance=yes
|
||||
else
|
||||
if [ -f "$relpath/LICENSE.LGPL3" ]; then
|
||||
echo "Type 'L' to view the GNU Lesser General Public License version 3."
|
||||
fi
|
||||
if [ "$showGPL2" = "yes" ]; then
|
||||
echo "Type 'G' to view the GNU General Public License version 2."
|
||||
fi
|
||||
echo "Type 'yes' to accept this license offer."
|
||||
echo "Type 'no' to decline this license offer."
|
||||
echo
|
||||
echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
|
||||
read acceptance
|
||||
fi
|
||||
echo
|
||||
if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
|
||||
break
|
||||
elif [ "$acceptance" = "no" ]; then
|
||||
echo "You are not licensed to use this software."
|
||||
echo
|
||||
exit 1
|
||||
elif [ "$acceptance" = "L" ]; then
|
||||
more "$relpath/LICENSE.LGPL3"
|
||||
elif [ "$acceptance" = "G" ] && [ "$showGPL2" = "yes" ]; then
|
||||
more "$relpath/LICENSE.GPL2"
|
||||
fi
|
||||
done
|
||||
elif [ "$Edition" = "Preview" ]; then
|
||||
TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
|
||||
while true; do
|
||||
|
||||
if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
|
||||
echo "You have already accepted the terms of the $EditionString license."
|
||||
acceptance=yes
|
||||
else
|
||||
echo "You are licensed to use this software under the terms of"
|
||||
echo "the $TheLicense"
|
||||
echo
|
||||
echo "Type '?' to read the Preview License."
|
||||
echo "Type 'yes' to accept this license offer."
|
||||
echo "Type 'no' to decline this license offer."
|
||||
echo
|
||||
echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
|
||||
read acceptance
|
||||
fi
|
||||
echo
|
||||
if [ "$acceptance" = "yes" ]; then
|
||||
break
|
||||
elif [ "$acceptance" = "no" ] ;then
|
||||
echo "You are not licensed to use this software."
|
||||
echo
|
||||
exit 0
|
||||
elif [ "$acceptance" = "?" ]; then
|
||||
more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# command line and environment validation
|
||||
#-------------------------------------------------------------------------------
|
||||
|
|
@ -1332,8 +1148,6 @@ if [ "$OPT_SHADOW" = "yes" ]; then
|
|||
[ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
|
||||
fi
|
||||
|
||||
# if the source tree is different from the build tree,
|
||||
# symlink or copy part of the sources
|
||||
if [ "$OPT_SHADOW" = "yes" ]; then
|
||||
echo "Preparing build tree..."
|
||||
|
||||
|
|
@ -1646,35 +1460,19 @@ setBootstrapVariable()
|
|||
}
|
||||
|
||||
# build qmake
|
||||
if true; then ###[ '!' -f "$outpath/bin/qmake" ];
|
||||
echo "Creating qmake..."
|
||||
|
||||
mkdir -p "$outpath/qmake" || exit
|
||||
# fix makefiles
|
||||
for mkfile in GNUmakefile Makefile; do
|
||||
EXTRA_LFLAGS=
|
||||
EXTRA_CFLAGS=
|
||||
in_mkfile="${mkfile}.in"
|
||||
if [ "$mkfile" = "Makefile" ]; then
|
||||
# if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
|
||||
# (cd qmake && qmake) >/dev/null 2>&1 && continue
|
||||
# fi
|
||||
in_mkfile="${mkfile}.unix"
|
||||
fi
|
||||
in_mkfile="$relpath/qmake/$in_mkfile"
|
||||
mkfile="$outpath/qmake/$mkfile"
|
||||
|
||||
in_mkfile=$relpath/qmake/Makefile.unix
|
||||
mkfile=$outpath/qmake/Makefile
|
||||
if [ -f "$mkfile" ]; then
|
||||
[ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
|
||||
rm -f "$mkfile"
|
||||
fi
|
||||
[ -f "$in_mkfile" ] || continue
|
||||
|
||||
echo "########################################################################" > "$mkfile"
|
||||
echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
|
||||
echo "########################################################################" >> "$mkfile"
|
||||
EXTRA_OBJS=
|
||||
EXTRA_SRCS=
|
||||
EXTRA_CFLAGS="\$(QMAKE_CFLAGS) \$(QMAKE_CFLAGS_SPLIT_SECTIONS)"
|
||||
EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS) \$(QMAKE_CXXFLAGS_CXX11) \$(QMAKE_CXXFLAGS_SPLIT_SECTIONS)"
|
||||
EXTRA_LFLAGS="\$(QMAKE_LFLAGS) \$(QMAKE_LFLAGS_GCSECTIONS)"
|
||||
|
||||
|
|
@ -1685,8 +1483,6 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
|
|||
[ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
|
||||
setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
|
||||
setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
|
||||
setBootstrapVariable QMAKE_CFLAGS
|
||||
setBootstrapVariable QMAKE_CFLAGS_SPLIT_SECTIONS
|
||||
setBootstrapVariable QMAKE_CXXFLAGS
|
||||
setBootstrapVariable QMAKE_CXXFLAGS_CXX11
|
||||
setBootstrapVariable QMAKE_CXXFLAGS_SPLIT_SECTIONS
|
||||
|
|
@ -1694,73 +1490,13 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
|
|||
setBootstrapVariable QMAKE_LFLAGS_GCSECTIONS
|
||||
|
||||
if [ "$CFG_DEBUG" = "no" ] || [ "$CFG_RELEASE_TOOLS" = "yes" ]; then
|
||||
setBootstrapVariable QMAKE_CFLAGS_RELEASE
|
||||
setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
|
||||
EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
|
||||
EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
|
||||
else
|
||||
setBootstrapVariable QMAKE_CFLAGS_DEBUG
|
||||
setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
|
||||
EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
|
||||
EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
|
||||
fi
|
||||
|
||||
case `basename "$PLATFORM"` in
|
||||
win32-g++*)
|
||||
EXTRA_CFLAGS="$EXTRA_CFLAGS -DUNICODE"
|
||||
EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DUNICODE"
|
||||
EXTRA_OBJS="qfilesystemengine_win.o \
|
||||
qfilesystemiterator_win.o \
|
||||
qfsfileengine_win.o \
|
||||
qlocale_win.o \
|
||||
qsettings_win.o \
|
||||
qoperatingsystemversion_win.o \
|
||||
qsystemlibrary.o \
|
||||
registry.o"
|
||||
EXTRA_SRCS="\"\$(SOURCE_PATH)/src/corelib/corelib/io/qfilesystemengine_win.cpp\" \
|
||||
\"\$(SOURCE_PATH)/src/corelib/global/qoperatingsystemversion_win.cpp\" \
|
||||
\"\$(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_win.cpp\" \
|
||||
\"\$(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp\" \
|
||||
\"\$(SOURCE_PATH)/src/corelib/io/qsettings_win.cpp\" \
|
||||
\"\$(SOURCE_PATH)/src/corelib/tools/qlocale_win.cpp\" \
|
||||
\"\$(SOURCE_PATH)/src/corelib/plugin/qsystemlibrary.cpp\" \
|
||||
\"\$(SOURCE_PATH)/tools/shared/windows/registry.cpp\""
|
||||
EXTRA_LFLAGS="$EXTRA_LFLAGS -static -s -lole32 -luuid -ladvapi32 -lkernel32"
|
||||
EXEEXT=".exe"
|
||||
;;
|
||||
*)
|
||||
EXTRA_OBJS="qfilesystemengine_unix.o \
|
||||
qfilesystemiterator_unix.o \
|
||||
qfsfileengine_unix.o \
|
||||
qlocale_unix.o"
|
||||
EXTRA_SRCS="\"\$(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp\" \
|
||||
\"\$(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_unix.cpp\" \
|
||||
\"\$(SOURCE_PATH)/src/corelib/io/qfsfileengine_unix.cpp\" \
|
||||
\"\$(SOURCE_PATH)/src/corelib/tools/qlocale_unix.cpp\""
|
||||
EXEEXT=
|
||||
;;
|
||||
esac
|
||||
if [ "$BUILD_ON_MAC" = "yes" ]; then
|
||||
echo "COCOA_LFLAGS =-framework Foundation -framework CoreServices" >>"$mkfile"
|
||||
echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
|
||||
echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
|
||||
EXTRA_LFLAGS="$EXTRA_LFLAGS \$(COCOA_LFLAGS)"
|
||||
EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
|
||||
EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
|
||||
EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
|
||||
EXTRA_OBJS="$EXTRA_OBJS \
|
||||
qsettings_mac.o \
|
||||
qcore_mac.o \
|
||||
qoperatingsystemversion_darwin.o \
|
||||
qcore_foundation.o"
|
||||
EXTRA_SRCS="$EXTRA_SRCS \
|
||||
\"\$(SOURCE_PATH)/src/corelib/io/qsettings_mac.cpp\" \
|
||||
\"\$(SOURCE_PATH)/src/corelib/kernel/qcore_mac.cpp\" \
|
||||
\"\$(SOURCE_PATH)/src/corelib/global/qoperatingsystemversion_darwin.mm\" \
|
||||
\"\$(SOURCE_PATH)/src/corelib/kernel/qcore_foundation.mm\""
|
||||
fi
|
||||
|
||||
echo >>"$mkfile"
|
||||
adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
|
||||
adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
|
||||
adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
|
||||
|
|
@ -1777,15 +1513,24 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
|
|||
echo "QT_MAJOR_VERSION = $QT_MAJOR_VERSION" >> "$mkfile"
|
||||
echo "QT_MINOR_VERSION = $QT_MINOR_VERSION" >> "$mkfile"
|
||||
echo "QT_PATCH_VERSION = $QT_PATCH_VERSION" >> "$mkfile"
|
||||
echo "EXTRA_CFLAGS = $EXTRA_CFLAGS" >> "$mkfile"
|
||||
echo "EXTRA_CXXFLAGS = $EXTRA_CXXFLAGS" >> "$mkfile"
|
||||
echo "QTOBJS =" $EXTRA_OBJS >> "$mkfile"
|
||||
echo "QTSRCS =" $EXTRA_SRCS >> "$mkfile"
|
||||
echo "LFLAGS = $EXTRA_LFLAGS" >> "$mkfile"
|
||||
echo "EXEEXT = $EXEEXT" >> "$mkfile"
|
||||
echo "CONFIG_CXXFLAGS = $EXTRA_CXXFLAGS" >> "$mkfile"
|
||||
echo "CONFIG_LFLAGS = $EXTRA_LFLAGS" >> "$mkfile"
|
||||
echo "RM_F = rm -f" >> "$mkfile"
|
||||
echo "RM_RF = rm -rf" >> "$mkfile"
|
||||
|
||||
case `basename "$PLATFORM"` in
|
||||
win32-g++*)
|
||||
cat "$in_mkfile.win32" >> "$mkfile"
|
||||
;;
|
||||
*)
|
||||
cat "$in_mkfile.unix" >> "$mkfile"
|
||||
if [ "$BUILD_ON_MAC" = "yes" ]; then
|
||||
cat "$in_mkfile.macos" >> "$mkfile"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
echo >>"$mkfile"
|
||||
|
||||
if [ "$BUILD_ON_MAC" = "yes" ]; then
|
||||
echo "EXTRA_CXXFLAGS += -MMD" >> "$mkfile"
|
||||
cat "$in_mkfile" >> "$mkfile"
|
||||
|
|
@ -1799,7 +1544,6 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
|
|||
rm "$mkfile.tmp"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$OPT_VERBOSE" = yes ]; then
|
||||
# Show the output of make
|
||||
|
|
@ -1817,7 +1561,6 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
|
|||
fi
|
||||
echo "Done."
|
||||
fi
|
||||
fi # Build qmake
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# create a qt.conf for the Qt build tree itself
|
||||
|
|
@ -1904,16 +1647,6 @@ fi
|
|||
# run configure tests
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
# copy some variables that are still being computed in the shell script into an input file for configure
|
||||
# This should go away in the future
|
||||
|
||||
cat > "$outpath/config.tests/configure.cfg" <<EOF
|
||||
# Feature defaults set by configure command line
|
||||
config.input.qt_edition = $Edition
|
||||
config.input.qt_licheck = $Licheck
|
||||
config.input.qt_release_date = $ReleaseDate
|
||||
EOF
|
||||
|
||||
# recreate command line for qmake
|
||||
set -f
|
||||
SAVED_IFS=$IFS
|
||||
|
|
@ -1939,6 +1672,15 @@ fi
|
|||
# finally save the executed command to another script
|
||||
#-------------------------------------------------------------------------------
|
||||
if [ $CFG_REDO = no ]; then
|
||||
if [ "$COMMERCIAL_USER" = "ask" ]; then
|
||||
if grep '^QT_EDITION = OpenSource$' "$outpath/mkspecs/qconfig.pri" >/dev/null 2>&1; then
|
||||
OPT_CMDLINE="$OPT_CMDLINE
|
||||
-opensource"
|
||||
else
|
||||
OPT_CMDLINE="$OPT_CMDLINE
|
||||
-commercial"
|
||||
fi
|
||||
fi
|
||||
if [ "$OPT_CONFIRM_LICENSE" = "no" ]; then
|
||||
OPT_CMDLINE="$OPT_CMDLINE
|
||||
-confirm-license"
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@
|
|||
"android-toolchain-version": "string",
|
||||
|
||||
"accessibility": "boolean",
|
||||
"android-style-assets": "boolean",
|
||||
"avx": "boolean",
|
||||
"avx2": "boolean",
|
||||
"avx512": { "type": "boolean", "name": "avx512f" },
|
||||
|
|
@ -417,6 +418,12 @@
|
|||
},
|
||||
|
||||
"features": {
|
||||
"android-style-assets": {
|
||||
"label": "Android Style Assets",
|
||||
"condition": "config.android",
|
||||
"output": [ "privateFeature" ],
|
||||
"comment": "This belongs into gui, but the license check needs it here already."
|
||||
},
|
||||
"shared": {
|
||||
"label": "Building shared libraries",
|
||||
"autoDetect": "!config.uikit",
|
||||
|
|
@ -516,7 +523,7 @@
|
|||
},
|
||||
"release_tools": {
|
||||
"label": "Compile tools in release mode",
|
||||
"autoDetect": "!features.debug",
|
||||
"autoDetect": "features.debug",
|
||||
"output": [ "privateFeature", "publicQtConfig" ]
|
||||
},
|
||||
"simulator_and_device": {
|
||||
|
|
@ -964,6 +971,11 @@
|
|||
},
|
||||
|
||||
"earlyReport": [
|
||||
{
|
||||
"type": "fatal",
|
||||
"condition": "!call.licenseCheck",
|
||||
"message": "You are not licensed to use this software."
|
||||
},
|
||||
{
|
||||
"type": "warning",
|
||||
"condition": "input.debug_and_release == 'yes' && !config.darwin && !config.win32",
|
||||
|
|
|
|||
179
configure.pri
|
|
@ -1,3 +1,7 @@
|
|||
# this must be done outside any function
|
||||
QT_SOURCE_TREE = $$PWD
|
||||
QT_BUILD_TREE = $$shadowed($$PWD)
|
||||
|
||||
# custom command line handling
|
||||
|
||||
defineTest(qtConfCommandline_qmakeArgs) {
|
||||
|
|
@ -63,6 +67,165 @@ defineReplace(qtConfFunc_crossCompile) {
|
|||
return(false)
|
||||
}
|
||||
|
||||
defineReplace(qtConfFunc_licenseCheck) {
|
||||
exists($$QT_SOURCE_TREE/LICENSE.LGPL3)|exists($$QT_SOURCE_TREE/LICENSE.GPL2): \
|
||||
hasOpenSource = true
|
||||
else: \
|
||||
hasOpenSource = false
|
||||
exists($$QT_SOURCE_TREE/LICENSE.PREVIEW.COMMERCIAL)|exists($$QT_SOURCE_TREE/bin/licheck*): \
|
||||
hasCommercial = true
|
||||
else: \
|
||||
hasCommercial = false
|
||||
|
||||
commercial = $$config.input.commercial
|
||||
isEmpty(commercial) {
|
||||
$$hasOpenSource {
|
||||
$$hasCommercial {
|
||||
logn()
|
||||
logn("Selecting Qt Edition.")
|
||||
logn()
|
||||
logn("Type 'c' if you want to use the Commercial Edition.")
|
||||
logn("Type 'o' if you want to use the Open Source Edition.")
|
||||
logn()
|
||||
for(ever) {
|
||||
val = $$lower($$prompt("Which edition of Qt do you want to use? ", false))
|
||||
equals(val, c) {
|
||||
commercial = yes
|
||||
} else: equals(val, o) {
|
||||
commercial = no
|
||||
} else {
|
||||
next()
|
||||
}
|
||||
break()
|
||||
}
|
||||
} else {
|
||||
commercial = no
|
||||
}
|
||||
} else {
|
||||
!$$hasCommercial: \
|
||||
qtConfFatalError("No license files and no licheck executables found." \
|
||||
"Cannot proceed. Try re-installing Qt.")
|
||||
commercial = yes
|
||||
}
|
||||
}
|
||||
|
||||
equals(commercial, no) {
|
||||
!$$hasOpenSource: \
|
||||
qtConfFatalError("This is the Qt Commercial Edition." \
|
||||
"Cannot proceed with -opensource.")
|
||||
|
||||
logn()
|
||||
logn("This is the Qt Open Source Edition.")
|
||||
|
||||
EditionString = "Open Source"
|
||||
config.input.qt_edition = OpenSource
|
||||
export(config.input.qt_edition)
|
||||
} else {
|
||||
!$$hasCommercial: \
|
||||
qtConfFatalError("This is the Qt Open Source Edition." \
|
||||
"Cannot proceed with -commercial.")
|
||||
|
||||
exists($$QT_SOURCE_TREE/LICENSE.PREVIEW.COMMERCIAL) {
|
||||
logn()
|
||||
logn("This is the Qt Technology Preview Edition.")
|
||||
|
||||
EditionString = "Technology Preview"
|
||||
config.input.qt_edition = Preview
|
||||
export(config.input.qt_edition)
|
||||
} else {
|
||||
equals(QMAKE_HOST.os, Linux) {
|
||||
equals(QMAKE_HOST.arch, x86): \
|
||||
Licheck = licheck32
|
||||
else: \
|
||||
Licheck = licheck64
|
||||
} else: equals(QMAKE_HOST.os, Darwin) {
|
||||
Licheck = licheck_mac
|
||||
} else: equals(QMAKE_HOST.os, Windows) {
|
||||
Licheck = licheck.exe
|
||||
} else {
|
||||
qtConfFatalError("Host operating system not supported by this edition of Qt.")
|
||||
}
|
||||
|
||||
!qtRunLoggedCommand("$$system_quote($$QT_SOURCE_TREE/bin/$$Licheck) \
|
||||
$$eval(config.input.confirm-license) \
|
||||
$$system_quote($$QT_SOURCE_TREE) $$system_quote($$QT_BUILD_TREE) \
|
||||
$$[QMAKE_SPEC] $$[QMAKE_XSPEC]", \
|
||||
LicheckOutput): \
|
||||
return(false)
|
||||
eval($$LicheckOutput)
|
||||
config.input.qt_edition = $$Edition
|
||||
config.input.qt_licheck = $$Licheck
|
||||
config.input.qt_release_date = $$ReleaseDate
|
||||
export(config.input.qt_edition)
|
||||
export(config.input.qt_licheck)
|
||||
export(config.input.qt_release_date)
|
||||
return(true)
|
||||
}
|
||||
}
|
||||
|
||||
!isEmpty(config.input.confirm-license) {
|
||||
logn()
|
||||
logn("You have already accepted the terms of the $$EditionString license.")
|
||||
return(true)
|
||||
}
|
||||
|
||||
affix = the
|
||||
equals(commercial, no) {
|
||||
theLicense = "GNU Lesser General Public License (LGPL) version 3"
|
||||
showWhat = "Type 'L' to view the GNU Lesser General Public License version 3 (LGPLv3)."
|
||||
gpl2Ok = false
|
||||
winrt {
|
||||
notTheLicense = "Note: GPL version 2 is not available on WinRT."
|
||||
} else: $$qtConfEvaluate("features.android-style-assets") {
|
||||
notTheLicense = "Note: GPL version 2 is not available due to using Android style assets."
|
||||
} else {
|
||||
theLicense += "or the GNU General Public License (GPL) version 2"
|
||||
showWhat += "Type 'G' to view the GNU General Public License version 2 (GPLv2)."
|
||||
gpl2Ok = true
|
||||
affix = either
|
||||
}
|
||||
} else {
|
||||
theLicense = $$cat($$QT_SOURCE_TREE/LICENSE.PREVIEW.COMMERCIAL, lines)
|
||||
theLicense = $$first(theLicense)
|
||||
showWhat = "Type '?' to view the $${theLicense}."
|
||||
}
|
||||
msg = \
|
||||
" " \
|
||||
"You are licensed to use this software under the terms of" \
|
||||
"the "$$theLicense"." \
|
||||
$$notTheLicense \
|
||||
" " \
|
||||
$$showWhat \
|
||||
"Type 'y' to accept this license offer." \
|
||||
"Type 'n' to decline this license offer." \
|
||||
" "
|
||||
|
||||
for(ever) {
|
||||
logn($$join(msg, $$escape_expand(\\n)))
|
||||
for(ever) {
|
||||
val = $$lower($$prompt("Do you accept the terms of $$affix license? ", false))
|
||||
equals(val, y)|equals(val, yes) {
|
||||
logn()
|
||||
return(true)
|
||||
} else: equals(val, n)|equals(val, no) {
|
||||
return(false)
|
||||
} else: equals(commercial, yes):equals(val, ?) {
|
||||
licenseFile = $$QT_SOURCE_TREE/LICENSE.PREVIEW.COMMERCIAL
|
||||
} else: equals(commercial, no):equals(val, l) {
|
||||
licenseFile = $$QT_SOURCE_TREE/LICENSE.LGPL3
|
||||
} else: equals(commercial, no):equals(val, g):$$gpl2Ok {
|
||||
licenseFile = $$QT_SOURCE_TREE/LICENSE.GPL2
|
||||
} else {
|
||||
next()
|
||||
}
|
||||
break()
|
||||
}
|
||||
system("more $$system_quote($$system_path($$licenseFile))")
|
||||
logn()
|
||||
logn()
|
||||
}
|
||||
}
|
||||
|
||||
# custom tests
|
||||
|
||||
defineTest(qtConfTest_architecture) {
|
||||
|
|
@ -510,12 +673,19 @@ defineTest(qtConfReport_buildParts) {
|
|||
qtConfReportPadded($${1}, $$qtConfEvaluate("tests.build_parts.value"))
|
||||
}
|
||||
|
||||
defineReplace(qtConfReportArch) {
|
||||
arch = $$qtConfEvaluate('tests.$${1}.arch')
|
||||
subarch = $$qtConfEvaluate('tests.$${1}.subarch')
|
||||
isEmpty(subarch): subarch = <none>
|
||||
return("$$arch, CPU features: $$subarch")
|
||||
}
|
||||
|
||||
defineTest(qtConfReport_buildTypeAndConfig) {
|
||||
!$$qtConfEvaluate("features.cross_compile") {
|
||||
qtConfAddReport("Build type: $$qtConfEvaluate('tests.architecture.arch')")
|
||||
qtConfAddReport("Build type: $$[QMAKE_SPEC] ($$qtConfReportArch(architecture))")
|
||||
} else {
|
||||
qtConfAddReport("Building on: $$qtConfEvaluate('tests.host_architecture.arch')")
|
||||
qtConfAddReport("Building for: $$qtConfEvaluate('tests.architecture.arch')")
|
||||
qtConfAddReport("Building on: $$[QMAKE_SPEC] ($$qtConfReportArch(host_architecture))")
|
||||
qtConfAddReport("Building for: $$[QMAKE_XSPEC] ($$qtConfReportArch(architecture))")
|
||||
}
|
||||
qtConfAddReport()
|
||||
qtConfAddReport("Configuration: $$eval($${currentConfig}.output.privatePro.append.CONFIG) $$eval($${currentConfig}.output.publicPro.append.QT_CONFIG)")
|
||||
|
|
@ -552,6 +722,3 @@ discard_from($$[QT_HOST_DATA/get]/mkspecs/qmodule.pri)
|
|||
QMAKE_POST_CONFIGURE += \
|
||||
"include(\$\$[QT_HOST_DATA/get]/mkspecs/qconfig.pri)" \
|
||||
"include(\$\$[QT_HOST_DATA/get]/mkspecs/qmodule.pri)"
|
||||
|
||||
# load and process input from configure.sh/.exe
|
||||
include($$shadowed($$PWD)/config.tests/configure.cfg)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,221 @@
|
|||
Qt 5.7.1 is a bug-fix release. It maintains both forward and backward
|
||||
compatibility (source and binary) with Qt 5.7.0.
|
||||
|
||||
For more details, refer to the online documentation included in this
|
||||
distribution. The documentation is also available online:
|
||||
|
||||
http://doc.qt.io/qt-5/index.html
|
||||
|
||||
The Qt version 5.7 series is binary compatible with the 5.6.x series.
|
||||
Applications compiled for 5.6 will continue to run with 5.7.
|
||||
|
||||
Some of the changes listed in this file include issue tracking numbers
|
||||
corresponding to tasks in the Qt Bug Tracker:
|
||||
|
||||
https://bugreports.qt.io/
|
||||
|
||||
Each of these identifiers can be entered in the bug tracker to obtain more
|
||||
information about a particular change.
|
||||
|
||||
This release contains all fixes included in the Qt 5.6.2 release.
|
||||
|
||||
****************************************************************************
|
||||
* Important Behavior Changes *
|
||||
****************************************************************************
|
||||
|
||||
- [QTBUG-45031] The NSURLConnection backend of QNetworkAccessManager has
|
||||
been removed, since SecureTransport is the default SSL backend on iOS
|
||||
and is enabled by default. This means that building with -no-openssl
|
||||
-no-securetransport will no longer provide SSL capabilities on iOS.
|
||||
|
||||
- QtCore / QDataStream:
|
||||
* [QTBUG-54022] Incomplete reads of Qt containers are now handled same
|
||||
way as for primitive types, meaning that previous errors are latched.
|
||||
|
||||
****************************************************************************
|
||||
* Library *
|
||||
****************************************************************************
|
||||
|
||||
QtCore
|
||||
------
|
||||
|
||||
- QLockFile:
|
||||
* Fixed permissions on lock files on Unix to allow for adjustments via
|
||||
umask.
|
||||
|
||||
- QMimeType:
|
||||
* [QTBUG-50776] QMimeType::comment() now uses the default locale rather
|
||||
than system locale, so that applications can control which language is
|
||||
being used.
|
||||
|
||||
- QUrl:
|
||||
* QUrl::resolved() no longer treats a URL with a scheme as a relative URL
|
||||
if it matches this URL's scheme. For now it still treats "file:name.txt"
|
||||
as relative for compatibility, but be warned that in Qt 5.8 it will no
|
||||
longer consider those to be relative. Both isRelative() and RFC 3986 say
|
||||
that such URLs are not relative, so starting from Qt 5.8, resolved() will
|
||||
return them as is.
|
||||
|
||||
- QXmlStreamReader:
|
||||
* Fixed a bug in the XML parser that prevented to load XML that
|
||||
contained invalid characters for XML 1.0.
|
||||
|
||||
- QXmlStreamWriter:
|
||||
* Fixed a bug that prevented the generation of valid XML files when
|
||||
using encoding with 8 bit per character but not ASCII compatible.
|
||||
QXMLStreamWriter generated XML markup using always ASCII in this case.
|
||||
|
||||
QtGui
|
||||
-----
|
||||
|
||||
- QGuiApplication:
|
||||
* [QTBUG-51703] Fixed a bug that would cause QGuiApplication::sync() to
|
||||
be left undefined for Qt builds without session management support.
|
||||
|
||||
- QIconLoaderEngine:
|
||||
* Fixed theme lookup for scalable entries
|
||||
|
||||
- QTextDocument:
|
||||
* [QTBUG-48182] Fixed a bug that would return a wrong position when
|
||||
searching backward from the end of the document.
|
||||
|
||||
- Text:
|
||||
* [QTBUG-49452] Fixed a performance regression in Freetype engine that
|
||||
was introduced in Qt 5.5.
|
||||
* [QTBUG-53911] Fixed a crash that could happen if you were doing many
|
||||
different text layouts with different fonts and superscript or
|
||||
subscript alignment.
|
||||
* [QTBUG-42033] Fixed bug where a QTextLayout with
|
||||
ShowLineAndParagraphSeparators would modify the layout's input string.
|
||||
* [QTBUG-54180] Fixed performance regression when rapidly switching
|
||||
between a large set of fonts.
|
||||
|
||||
QtNetwork
|
||||
---------
|
||||
|
||||
- QSslSocket:
|
||||
* [QTBUG-55170] Fixed a bug in SecureTransport backend that would cause
|
||||
a memory usage growth in case 'readBufferMaxSize' is set.
|
||||
* [QTBUG-52975] Fixed a bug in SecureTransport backend where transmit
|
||||
was using invalid SSL context and reporting (incorrectly) some irrelevant
|
||||
errors as a result.
|
||||
|
||||
QtSql
|
||||
-----
|
||||
|
||||
- [QTBUG-53969][QTBUG-53237] Fixed QSqlQuery::prepare value truncation
|
||||
error when using UNSIGNED values in a MySQL database.
|
||||
|
||||
QtWidgets
|
||||
---------
|
||||
|
||||
- QAbstractItemDelegate:
|
||||
* [QTBUG-16469] Show localized detailed tooltips and "What's this?"
|
||||
texts.
|
||||
|
||||
- QTreeView:
|
||||
* [QTBUG-52793] Fixed a key navigation bug when the columns were
|
||||
reordered.
|
||||
|
||||
****************************************************************************
|
||||
* Platform-specific Changes *
|
||||
****************************************************************************
|
||||
|
||||
Android
|
||||
-------
|
||||
|
||||
- [QTBUG-50724] Added support for clang compiler
|
||||
- [QTBUG-53511] Fixed CJK font resolution on Android 7.
|
||||
|
||||
FreeBSD
|
||||
-------
|
||||
|
||||
- The freebsd-g++ mkspec was moved back and no longer requires the
|
||||
"unsupported/" prefix, matching the FreeBSD ports tree, as FreeBSD 9.3
|
||||
still defaults to using GCC. Users of GCC that did not previously use
|
||||
the ports patch will need to adapt their build scripts and drop the
|
||||
"unsupported/" prefix.
|
||||
|
||||
Linux
|
||||
-----
|
||||
|
||||
- [QTBUG-54733] It is now possible to opt out from installing signal
|
||||
handlers when running with eglfs and linuxfb by setting the
|
||||
QT_QPA_NO_SIGNAL_HANDLER environment variable to a non-zero value.
|
||||
- [QTBUG-55140] xcb with EGL and OpenGL ES, as well as eglfs with the
|
||||
eglfs_x11 backend, are now supported on DRIVE CX boards when using the
|
||||
linux-drive-cx-g++ device spec.
|
||||
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
- [QTBUG-41186] QWindow::fromWinId() may return 0 when passing invalid
|
||||
window handles.
|
||||
- [QTBUG-55595] Fixed crash when loading color fonts from data.
|
||||
- [QTBUG-55097] Fixed rendering Adobe/Mozilla format color fonts with
|
||||
other colors than black after Windows 10 Anniversary update.
|
||||
- [QTBUG-54494] Fixed stretch when combined with either no or vertical
|
||||
hinting preference or a device pixel ratio different from 1.
|
||||
- [QTBUG-51024] Fixed height of text bounding box when using no or
|
||||
vertical hinting preference, or when the device pixel ratio is
|
||||
different from 1.
|
||||
|
||||
****************************************************************************
|
||||
* Tools *
|
||||
****************************************************************************
|
||||
|
||||
configure & build system
|
||||
------------------------
|
||||
|
||||
- [QTBUG-35886][QTBUG-51417] Fixed Fontconfig vs. system FreeType
|
||||
configuration.
|
||||
- [QTBUG-43784][X11] Fixed detection of GLX with -qt-xcb.
|
||||
- [QTBUG-51534][Windows] The configure.exe bootstrapping now prefers
|
||||
cl over clang-cl, to avoid header incompatibility problems.
|
||||
- [QTBUG-52940] Fixed missing plugins.qmltypes files in static builds.
|
||||
- [QTBUG-52951] Fixed dynamic library support detection for platforms
|
||||
without libdl.
|
||||
- [QTBUG-53038] Fixed running of configure tests outside qtbase when
|
||||
cross compiling on Windows (for example for Android).
|
||||
- [QTBUG-53312] The flags supplied by the configure -D/-I/-L/-l options
|
||||
are now applied after Qt's own flags. This helps in some cases when
|
||||
the provided paths contain files which conflict with the Qt build.
|
||||
- [QTBUG-53926] Fixed linkage of QML plugins in static prefix builds.
|
||||
- [QTBUG-55011][Unix] Fixed -no-pkg-config being ignored by some
|
||||
configure tests, which led to build failures later on.
|
||||
- Fixed configure tests outside qtbase when $MAKEFLAGS contains the
|
||||
-i flag.
|
||||
- [Android] Some unused plugins are not built anymore.
|
||||
- [MinGW] Added support for -separate-debug-info.
|
||||
- [Unix] Added configure -no-opengles3 option.
|
||||
- [Unix] Fixed MySQL detection/use on RHEL 6.6.
|
||||
|
||||
qmake
|
||||
-----
|
||||
|
||||
- [QTBUG-41830] Fixed nested custom functions inheriting their callers'
|
||||
arguments.
|
||||
- [QTBUG-53895][MSVC] Started using separate PDB files for compiling
|
||||
and linking.
|
||||
- [QTBUG-54036][Darwin] Fixed installation of debug symbols.
|
||||
- [QTBUG-54299] Various QMAKE_EXTRA_COMPILERS' .depends entries are now
|
||||
appended to rather than overwritten.
|
||||
- [QTBUG-54346][MSys/Apple] Fixed detection of QMAKE_DEFAULT_{INC,LIB}DIRS.
|
||||
- [QTBUG-54550] Fixed access to freed memory in $$absolute_path().
|
||||
- [QTBUG-54674] The obsolete -target xp is now properly rejected.
|
||||
- [QTBUG-55183][nmake] _WINDLL is now automatically defined when building
|
||||
a DLL, consistently with Visual Studio.
|
||||
- [QTBUG-55505] Fixed build of projects with spaces in the source or build
|
||||
path against static builds of Qt.
|
||||
- [QTBUG-55649][QTBUG-55915][Xcode] Fixed support for Xcode 8.
|
||||
- [QTBUG-56162][MinGW] Fixed -release -force-debug-info missing both
|
||||
optimization and debug info.
|
||||
- Fixed several cases where the error() function would not abort qmake.
|
||||
- Interrupting a command run via system() will now abort qmake as well.
|
||||
- The packagesExist() function will now warn when used when Qt was
|
||||
configured with -no-pkg-config.
|
||||
- [Android] The default compiler flags were adjusted to match newer
|
||||
NDK versions.
|
||||
- [Darwin] Fixed detection of QMAKE_DEFAULT_INCDIRS.
|
||||
- [Darwin][make] Added support for building Xcode asset catalogs.
|
||||
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 165 KiB After Width: | Height: | Size: 246 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 38 KiB |
|
|
@ -66,7 +66,7 @@ Server::Server(QWidget *parent)
|
|||
setWindowTitle(tr("Multi-stream Server"));
|
||||
|
||||
sctpServer = new QSctpServer(this);
|
||||
sctpServer->setMaxChannelCount(NumberOfChannels);
|
||||
sctpServer->setMaximumChannelCount(NumberOfChannels);
|
||||
|
||||
statusLabel = new QLabel;
|
||||
QPushButton *quitButton = new QPushButton(tr("Quit"));
|
||||
|
|
|
|||
|
|
@ -67,12 +67,12 @@ public:
|
|||
painter->drawPixmap(QPointF(), p);
|
||||
}
|
||||
|
||||
virtual void mousePressEvent(QGraphicsSceneMouseEvent *) override
|
||||
void mousePressEvent(QGraphicsSceneMouseEvent *) override
|
||||
{
|
||||
emit clicked();
|
||||
}
|
||||
|
||||
virtual void setGeometry(const QRectF &rect) override
|
||||
void setGeometry(const QRectF &rect) override
|
||||
{
|
||||
QGraphicsWidget::setGeometry(rect);
|
||||
|
||||
|
|
@ -98,7 +98,7 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
virtual void resizeEvent(QResizeEvent *) override
|
||||
void resizeEvent(QResizeEvent *) override
|
||||
{
|
||||
fitInView(sceneRect(), Qt::KeepAspectRatio);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -98,14 +98,14 @@ public:
|
|||
|
||||
protected:
|
||||
//![14]
|
||||
virtual bool eventTest(QEvent *event) override
|
||||
bool eventTest(QEvent *event) override
|
||||
{
|
||||
return (event->type() == QEvent::Type(StateSwitchEvent::StateSwitchType))
|
||||
&& (static_cast<StateSwitchEvent *>(event)->rand() == m_rand);
|
||||
}
|
||||
//![14]
|
||||
|
||||
virtual void onTransition(QEvent *) override {}
|
||||
void onTransition(QEvent *) override {}
|
||||
|
||||
private:
|
||||
int m_rand;
|
||||
|
|
@ -122,7 +122,7 @@ public:
|
|||
//![10]
|
||||
|
||||
//![11]
|
||||
virtual void onEntry(QEvent *) override
|
||||
void onEntry(QEvent *) override
|
||||
{
|
||||
int n;
|
||||
while ((n = (qrand() % m_stateCount + 1)) == m_lastIndex)
|
||||
|
|
@ -130,7 +130,7 @@ public:
|
|||
m_lastIndex = n;
|
||||
machine()->postEvent(new StateSwitchEvent(n));
|
||||
}
|
||||
virtual void onExit(QEvent *) override {}
|
||||
void onExit(QEvent *) override {}
|
||||
//![11]
|
||||
|
||||
//![12]
|
||||
|
|
@ -174,7 +174,7 @@ public:
|
|||
}
|
||||
|
||||
protected:
|
||||
virtual void resizeEvent(QResizeEvent *event) override
|
||||
void resizeEvent(QResizeEvent *event) override
|
||||
{
|
||||
fitInView(scene()->sceneRect());
|
||||
QGraphicsView::resizeEvent(event);
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
virtual void resizeEvent(QResizeEvent *) override
|
||||
void resizeEvent(QResizeEvent *) override
|
||||
{
|
||||
fitInView(sceneRect(), Qt::KeepAspectRatio);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ public:
|
|||
GraphicsView(QWidget *parent = 0);
|
||||
|
||||
protected:
|
||||
virtual void resizeEvent(QResizeEvent *event) override;
|
||||
void resizeEvent(QResizeEvent *event) override;
|
||||
void keyPressEvent(QKeyEvent *) override;
|
||||
|
||||
signals:
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public:
|
|||
setTargetState(target);
|
||||
}
|
||||
|
||||
virtual bool eventTest(QEvent *e) override
|
||||
bool eventTest(QEvent *e) override
|
||||
{
|
||||
if (QSignalTransition::eventTest(e)) {
|
||||
QVariant key = static_cast<QStateMachine::SignalEvent*>(e)->arguments().at(0);
|
||||
|
|
@ -95,7 +95,7 @@ public:
|
|||
startTimer(1000);
|
||||
}
|
||||
|
||||
virtual bool eventTest(QEvent *e) override
|
||||
bool eventTest(QEvent *e) override
|
||||
{
|
||||
return QEventTransition::eventTest(e) && ((qrand() % 50) == 0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,13 +60,13 @@ public:
|
|||
RectButton(QString buttonText);
|
||||
~RectButton();
|
||||
|
||||
virtual QRectF boundingRect() const override;
|
||||
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
QRectF boundingRect() const override;
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
|
||||
protected:
|
||||
QString m_ButtonText;
|
||||
|
||||
virtual void mousePressEvent (QGraphicsSceneMouseEvent *event) override;
|
||||
void mousePressEvent (QGraphicsSceneMouseEvent *event) override;
|
||||
|
||||
signals:
|
||||
void clicked();
|
||||
|
|
|
|||
|
|
@ -69,8 +69,8 @@ public:
|
|||
StickMan();
|
||||
~StickMan();
|
||||
|
||||
virtual QRectF boundingRect() const override;
|
||||
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
QRectF boundingRect() const override;
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
|
||||
int nodeCount() const;
|
||||
Node *node(int idx) const;
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ public:
|
|||
|
||||
void updateBoatMovement();
|
||||
|
||||
virtual int type() const override;
|
||||
int type() const override;
|
||||
|
||||
signals:
|
||||
void boatDestroyed();
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ public:
|
|||
{
|
||||
}
|
||||
protected:
|
||||
virtual bool eventTest(QEvent *event) override
|
||||
bool eventTest(QEvent *event) override
|
||||
{
|
||||
if (!QKeyEventTransition::eventTest(event))
|
||||
return false;
|
||||
|
|
@ -100,7 +100,7 @@ public:
|
|||
{
|
||||
}
|
||||
protected:
|
||||
virtual bool eventTest(QEvent *event) override
|
||||
bool eventTest(QEvent *event) override
|
||||
{
|
||||
if (!QKeyEventTransition::eventTest(event))
|
||||
return false;
|
||||
|
|
@ -131,7 +131,7 @@ public:
|
|||
{
|
||||
}
|
||||
protected:
|
||||
virtual bool eventTest(QEvent *event) override
|
||||
bool eventTest(QEvent *event) override
|
||||
{
|
||||
if (!QKeyEventTransition::eventTest(event))
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ class UpdateScoreTransition : public QSignalTransition
|
|||
public:
|
||||
UpdateScoreTransition(GraphicsScene *scene, PlayState *game, QAbstractState *target);
|
||||
protected:
|
||||
virtual bool eventTest(QEvent *event) override;
|
||||
bool eventTest(QEvent *event) override;
|
||||
private:
|
||||
PlayState * game;
|
||||
GraphicsScene *scene;
|
||||
|
|
@ -164,7 +164,7 @@ class WinTransition : public QSignalTransition
|
|||
public:
|
||||
WinTransition(GraphicsScene *scene, PlayState *game, QAbstractState *target);
|
||||
protected:
|
||||
virtual bool eventTest(QEvent *event) override;
|
||||
bool eventTest(QEvent *event) override;
|
||||
private:
|
||||
PlayState * game;
|
||||
GraphicsScene *scene;
|
||||
|
|
@ -176,7 +176,7 @@ private:
|
|||
public:
|
||||
CustomSpaceTransition(QWidget *widget, PlayState *game, QEvent::Type type, int key);
|
||||
protected:
|
||||
virtual bool eventTest(QEvent *event) override;
|
||||
bool eventTest(QEvent *event) override;
|
||||
private:
|
||||
PlayState *game;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ public:
|
|||
void launchTorpedo(int speed);
|
||||
void destroy();
|
||||
|
||||
virtual int type() const override;
|
||||
int type() const override;
|
||||
|
||||
QGraphicsRotation *rotation() const { return graphicsRotation; }
|
||||
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 25 KiB |
|
|
@ -32,7 +32,8 @@
|
|||
\brief The System Tray Icon example shows how to add an icon with a menu
|
||||
and popup messages to a desktop environment's system tray.
|
||||
|
||||
\image systemtray-example.png Screenshot of the System Tray Icon.
|
||||
\borderedimage systemtray-example.png
|
||||
\caption Screenshot of the System Tray Icon
|
||||
|
||||
Modern operating systems usually provide a special area on the
|
||||
desktop, called the system tray or notification area, where
|
||||
|
|
@ -42,7 +43,7 @@
|
|||
the main application window (i.e., an editor for the system tray
|
||||
icon) and the associated icon.
|
||||
|
||||
\image systemtray-editor.png
|
||||
\borderedimage systemtray-editor.png
|
||||
|
||||
The editor allows the user to choose the preferred icon as well as
|
||||
set the balloon message's type and duration. The user can also
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 25 KiB |
|
|
@ -32,7 +32,8 @@
|
|||
\brief The Analog Clock example shows how to draw the contents of a
|
||||
custom widget.
|
||||
|
||||
\image analogclock-example.png Screenshot of the Analog Clock example
|
||||
\borderedimage analogclock-example.png
|
||||
\caption Screenshot of the Analog Clock example
|
||||
|
||||
This example also demonstrates how the transformation and scaling
|
||||
features of QPainter can be used to make drawing custom widgets
|
||||
|
|
|
|||
|
|
@ -33,7 +33,8 @@
|
|||
functionality of a calculator widget, and how to use QGridLayout
|
||||
to place child widgets in a grid.
|
||||
|
||||
\image calculator-example.png Screenshot of the Calculator example
|
||||
\borderedimage calculator-example.png
|
||||
\caption Screenshot of the Calculator example
|
||||
|
||||
The example consists of two classes:
|
||||
|
||||
|
|
@ -370,6 +371,7 @@
|
|||
QSizePolicy::Expanding in the constructor and if we didn't
|
||||
reimplement QWidget::sizeHint().
|
||||
|
||||
\image calculator-ugly.png The Calculator example with default size policies and size hints
|
||||
\borderedimage calculator-ugly.png
|
||||
\caption The Calculator example with default size policies and size hints
|
||||
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
\ingroup examples-widgets
|
||||
\brief The Calendar Widget example shows use of QCalendarWidget.
|
||||
|
||||
\image calendarwidgetexample.png
|
||||
\borderedimage calendarwidgetexample.png
|
||||
|
||||
QCalendarWidget displays one calendar month
|
||||
at a time and lets the user select a date.
|
||||
|
|
|
|||
|
|
@ -38,7 +38,8 @@ copied into the clipboard, and pasted into other applications. The
|
|||
purpose behind this sort of tool is to allow users to enter characters
|
||||
that may be unavailable or difficult to locate on their keyboards.
|
||||
|
||||
\image charactermap-example.png Screenshot of the Character Map example
|
||||
\borderedimage charactermap-example.png
|
||||
\caption Screenshot of the Character Map example
|
||||
|
||||
The example consists of the following classes:
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
\brief The Code Editor example shows how to create a simple editor that
|
||||
has line numbers and that highlights the current line.
|
||||
|
||||
\image codeeditor-example.png
|
||||
\borderedimage codeeditor-example.png
|
||||
|
||||
As can be seen from the image, the editor displays the line
|
||||
numbers in an area to the left of the area for editing. The editor
|
||||
|
|
|
|||
|
|
@ -32,7 +32,8 @@
|
|||
\brief The Digital Clock example shows how to use QLCDNumber to display a
|
||||
number with LCD-like digits.
|
||||
|
||||
\image digitalclock-example.png Screenshot of the Digital Clock example
|
||||
\borderedimage digitalclock-example.png
|
||||
\caption Screenshot of the Digital Clock example
|
||||
|
||||
This example also demonstrates how QTimer can be used to update a widget
|
||||
at regular intervals.
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
Group boxes are usually used to organize check boxes and radio
|
||||
buttons into exclusive groups.
|
||||
|
||||
\image groupbox-example.png
|
||||
\borderedimage groupbox-example.png
|
||||
|
||||
The Group Boxes example consists of a single \c Window class that
|
||||
is used to show four group boxes: an exclusive radio button group,
|
||||
|
|
|
|||
|
|
@ -44,7 +44,8 @@
|
|||
can be used to implement zooming and scaling features. In
|
||||
addition the example shows how to use QPainter to print an image.
|
||||
|
||||
\image imageviewer-example.png Screenshot of the Image Viewer example
|
||||
\borderedimage imageviewer-example.png
|
||||
\caption Screenshot of the Image Viewer example
|
||||
|
||||
With the Image Viewer application, the users can view an image of
|
||||
their choice. The \uicontrol File menu gives the user the possibility
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
on the input and output supplied by the user.
|
||||
|
||||
|
||||
\image lineedits-example.png
|
||||
\borderedimage lineedits-example.png
|
||||
|
||||
The example consists of a single \c Window class, containing a selection of
|
||||
line edits with different input constraints and display properties that can be
|
||||
|
|
|
|||
|
|
@ -36,5 +36,5 @@
|
|||
a simple animation without the added complexity of a multimedia
|
||||
framework to install and deploy.
|
||||
|
||||
\image movie-example.png
|
||||
\borderedimage movie-example.png
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
\brief The Shaped Clock example shows how to apply a widget mask to a top-level
|
||||
widget to produce a shaped window.
|
||||
|
||||
\image shapedclock-example.png
|
||||
\borderedimage shapedclock-example.png
|
||||
|
||||
Widget masks are used to customize the shapes of top-level widgets by restricting
|
||||
the available area for painting. On some window systems, setting certain window flags
|
||||
|
|
|
|||
|
|
@ -43,7 +43,8 @@
|
|||
The example also demonstrates how signals and slots can be used to
|
||||
synchronize the behavior of two or more widgets.
|
||||
|
||||
\image sliders-example.png Screenshot of the Sliders example
|
||||
\borderedimage sliders-example.png
|
||||
\caption Screenshot of the Sliders example
|
||||
|
||||
The Sliders example consists of two classes:
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
spin boxes available in Qt, from a simple QSpinBox widget to more complex
|
||||
editors like the QDateTimeEdit widget.
|
||||
|
||||
\image spinboxes-example.png
|
||||
\borderedimage spinboxes-example.png
|
||||
|
||||
The example consists of a single \c Window class that is used to display the
|
||||
different spin box-based widgets available with Qt.
|
||||
|
|
|
|||
|
|
@ -32,7 +32,8 @@
|
|||
\brief The Styles example illustrates how to create custom widget
|
||||
drawing styles using Qt, and demonstrates Qt's predefined styles.
|
||||
|
||||
\image styles-enabledwood.png Screenshot of the Styles example
|
||||
\borderedimage styles-enabledwood.png
|
||||
\caption Screenshot of the Styles example
|
||||
|
||||
A style in Qt is a subclass of QStyle or of one of its
|
||||
subclasses. Styles perform drawing on behalf of widgets. Qt
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
\ingroup examples-widgets
|
||||
\brief The Style Sheet Example shows how to use style sheets.
|
||||
|
||||
\image stylesheet-pagefold.png Screen Shot of the Pagefold style sheet
|
||||
\borderedimage stylesheet-pagefold.png
|
||||
\caption Screen Shot of the Pagefold style sheet
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
\ingroup examples-widgets
|
||||
\brief The Tetrix example is a Qt version of the classic Tetrix game.
|
||||
|
||||
\image tetrix-example.png
|
||||
\borderedimage tetrix-example.png
|
||||
|
||||
The object of the game is to stack pieces dropped from the top of the
|
||||
playing area so that they fill entire rows at the bottom of the playing area.
|
||||
|
|
|
|||
|
|
@ -34,7 +34,8 @@
|
|||
addition, the example demonstrates how to use QFontMetrics to
|
||||
determine the size of text on screen.
|
||||
|
||||
\image wiggly-example.png Screenshot of the Wiggly example
|
||||
\borderedimage wiggly-example.png
|
||||
\caption Screenshot of the Wiggly example
|
||||
|
||||
QBasicTimer is a low-level class for timers. Unlike QTimer,
|
||||
QBasicTimer doesn't inherit from QObject; instead of emitting a
|
||||
|
|
|
|||
|
|
@ -41,7 +41,8 @@
|
|||
A widget's flags are stored in a Qt::WindowFlags type which stores
|
||||
an OR combination of the flags.
|
||||
|
||||
\image windowflags-example.png Screenshot of the Window Flags example
|
||||
\borderedimage windowflags-example.png
|
||||
\caption Screenshot of the Window Flags example
|
||||
|
||||
The example consists of two classes:
|
||||
|
||||
|
|
|
|||
|
|
@ -110,8 +110,8 @@ public:
|
|||
GLTexture2D(int width, int height);
|
||||
explicit GLTexture2D(const QString& fileName, int width = 0, int height = 0);
|
||||
void load(int width, int height, QRgb *data);
|
||||
virtual void bind() override;
|
||||
virtual void unbind() override;
|
||||
void bind() override;
|
||||
void unbind() override;
|
||||
};
|
||||
|
||||
class GLTexture3D : public GLTexture
|
||||
|
|
@ -121,8 +121,8 @@ public:
|
|||
// TODO: Implement function below
|
||||
//GLTexture3D(const QString& fileName, int width = 0, int height = 0);
|
||||
void load(int width, int height, int depth, QRgb *data);
|
||||
virtual void bind() override;
|
||||
virtual void unbind() override;
|
||||
void bind() override;
|
||||
void unbind() override;
|
||||
};
|
||||
|
||||
class GLTextureCube : public GLTexture
|
||||
|
|
@ -131,8 +131,8 @@ public:
|
|||
GLTextureCube(int size);
|
||||
explicit GLTextureCube(const QStringList& fileNames, int size = 0);
|
||||
void load(int size, int face, QRgb *data);
|
||||
virtual void bind() override;
|
||||
virtual void unbind() override;
|
||||
void bind() override;
|
||||
void unbind() override;
|
||||
};
|
||||
|
||||
// TODO: Define and implement class below
|
||||
|
|
@ -146,7 +146,7 @@ public:
|
|||
void begin(int face);
|
||||
// end rendering
|
||||
void end();
|
||||
virtual bool failed() const override {return m_failed || m_fbo.failed();}
|
||||
bool failed() const override { return m_failed || m_fbo.failed(); }
|
||||
|
||||
static void getViewMatrix(QMatrix4x4& mat, int face);
|
||||
static void getProjectionMatrix(QMatrix4x4& mat, float nearZ, float farZ);
|
||||
|
|
|
|||
|
|
@ -63,18 +63,18 @@ public:
|
|||
|
||||
ItemBase(int size, int x, int y);
|
||||
virtual ~ItemBase();
|
||||
virtual QRectF boundingRect() const override;
|
||||
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
QRectF boundingRect() const override;
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
protected:
|
||||
virtual ItemBase *createNew(int size, int x, int y) = 0;
|
||||
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override;
|
||||
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
|
||||
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event) override;
|
||||
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
|
||||
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
|
||||
virtual void keyPressEvent(QKeyEvent *event) override;
|
||||
virtual void wheelEvent(QGraphicsSceneWheelEvent *event) override;
|
||||
virtual int type() const override;
|
||||
void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override;
|
||||
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
|
||||
void hoverMoveEvent(QGraphicsSceneHoverEvent *event) override;
|
||||
void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
|
||||
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
|
||||
void keyPressEvent(QKeyEvent *event) override;
|
||||
void wheelEvent(QGraphicsSceneWheelEvent *event) override;
|
||||
int type() const override;
|
||||
bool isInResizeArea(const QPointF &pos);
|
||||
|
||||
static void duplicateSelectedItems(QGraphicsScene *scene);
|
||||
|
|
@ -92,9 +92,9 @@ class QtBox : public ItemBase
|
|||
public:
|
||||
QtBox(int size, int x, int y);
|
||||
virtual ~QtBox();
|
||||
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
protected:
|
||||
virtual ItemBase *createNew(int size, int x, int y) override;
|
||||
ItemBase *createNew(int size, int x, int y) override;
|
||||
private:
|
||||
QVector3D m_vertices[8];
|
||||
QVector3D m_texCoords[4];
|
||||
|
|
@ -106,9 +106,9 @@ class CircleItem : public ItemBase
|
|||
{
|
||||
public:
|
||||
CircleItem(int size, int x, int y);
|
||||
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
protected:
|
||||
virtual ItemBase *createNew(int size, int x, int y) override;
|
||||
ItemBase *createNew(int size, int x, int y) override;
|
||||
|
||||
QColor m_color;
|
||||
};
|
||||
|
|
@ -117,9 +117,9 @@ class SquareItem : public ItemBase
|
|||
{
|
||||
public:
|
||||
SquareItem(int size, int x, int y);
|
||||
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
protected:
|
||||
virtual ItemBase *createNew(int size, int x, int y) override;
|
||||
ItemBase *createNew(int size, int x, int y) override;
|
||||
|
||||
QPixmap m_image;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -81,13 +81,13 @@ class ColorEdit : public ParameterEdit
|
|||
public:
|
||||
ColorEdit(QRgb initialColor, int id);
|
||||
QRgb color() const {return m_color;}
|
||||
virtual void emitChange() override { emit colorChanged(m_color, m_id); }
|
||||
void emitChange() override { emit colorChanged(m_color, m_id); }
|
||||
public slots:
|
||||
void editDone();
|
||||
signals:
|
||||
void colorChanged(QRgb color, int id);
|
||||
protected:
|
||||
virtual void mousePressEvent(QMouseEvent *event) override;
|
||||
void mousePressEvent(QMouseEvent *event) override;
|
||||
void setColor(QRgb color); // also emits colorChanged()
|
||||
private:
|
||||
QGraphicsScene *m_dialogParentScene;
|
||||
|
|
@ -103,7 +103,7 @@ class FloatEdit : public ParameterEdit
|
|||
public:
|
||||
FloatEdit(float initialValue, int id);
|
||||
float value() const {return m_value;}
|
||||
virtual void emitChange() override { emit valueChanged(m_value, m_id); }
|
||||
void emitChange() override { emit valueChanged(m_value, m_id); }
|
||||
public slots:
|
||||
void editDone();
|
||||
signals:
|
||||
|
|
@ -120,9 +120,9 @@ class GraphicsWidget : public QGraphicsProxyWidget
|
|||
public:
|
||||
GraphicsWidget() : QGraphicsProxyWidget(0, Qt::Window) {}
|
||||
protected:
|
||||
virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value) override;
|
||||
virtual void resizeEvent(QGraphicsSceneResizeEvent *event) override;
|
||||
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
QVariant itemChange(GraphicsItemChange change, const QVariant &value) override;
|
||||
void resizeEvent(QGraphicsSceneResizeEvent *event) override;
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
};
|
||||
|
||||
class TwoSidedGraphicsWidget : public QObject
|
||||
|
|
@ -162,7 +162,7 @@ signals:
|
|||
void shaderChanged(int);
|
||||
void doubleClicked();
|
||||
protected:
|
||||
virtual void mouseDoubleClickEvent(QMouseEvent *event) override;
|
||||
void mouseDoubleClickEvent(QMouseEvent *event) override;
|
||||
|
||||
QVector<QByteArray> m_parameterNames;
|
||||
QComboBox *m_textureCombo;
|
||||
|
|
@ -189,7 +189,7 @@ signals:
|
|||
void doubleClicked();
|
||||
void newItemTriggered(ItemDialog::ItemType type);
|
||||
protected:
|
||||
virtual void mouseDoubleClickEvent(QMouseEvent *event) override;
|
||||
void mouseDoubleClickEvent(QMouseEvent *event) override;
|
||||
};
|
||||
|
||||
class Scene : public QGraphicsScene
|
||||
|
|
@ -198,7 +198,7 @@ class Scene : public QGraphicsScene
|
|||
public:
|
||||
Scene(int width, int height, int maxTextureSize);
|
||||
~Scene();
|
||||
virtual void drawBackground(QPainter *painter, const QRectF &rect) override;
|
||||
void drawBackground(QPainter *painter, const QRectF &rect) override;
|
||||
|
||||
public slots:
|
||||
void setShader(int index);
|
||||
|
|
@ -214,10 +214,10 @@ protected:
|
|||
void defaultStates();
|
||||
void renderCubemaps();
|
||||
|
||||
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
|
||||
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
|
||||
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
|
||||
virtual void wheelEvent(QGraphicsSceneWheelEvent * event) override;
|
||||
void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
|
||||
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
|
||||
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
|
||||
void wheelEvent(QGraphicsSceneWheelEvent * event) override;
|
||||
private:
|
||||
void initGL();
|
||||
QPointF pixelPosToViewPos(const QPointF& p);
|
||||
|
|
|
|||
|
|
@ -50,10 +50,8 @@
|
|||
|
||||
#include "view.h"
|
||||
|
||||
#ifndef QT_NO_PRINTER
|
||||
#include <QPrinter>
|
||||
#include <QPrintDialog>
|
||||
#endif
|
||||
#ifndef QT_NO_OPENGL
|
||||
#include <QtOpenGL>
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ public:
|
|||
}
|
||||
|
||||
protected:
|
||||
virtual void resizeEvent(QResizeEvent *) override
|
||||
void resizeEvent(QResizeEvent *) override
|
||||
{
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
virtual void resizeEvent(QResizeEvent *event) override
|
||||
void resizeEvent(QResizeEvent *event) override
|
||||
{
|
||||
w->setGeometry(0, 0, event->size().width(), event->size().height());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,8 +63,8 @@ public:
|
|||
|
||||
|
||||
protected:
|
||||
virtual void resizeEvent(QResizeEvent *event) override;
|
||||
virtual QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override;
|
||||
void resizeEvent(QResizeEvent *event) override;
|
||||
QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override;
|
||||
void scrollTo (const QModelIndex & index, ScrollHint hint = EnsureVisible) override;
|
||||
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -49,11 +49,7 @@
|
|||
****************************************************************************/
|
||||
|
||||
#include <QtWidgets>
|
||||
#ifndef QT_NO_PRINTER
|
||||
#include <QPrinter>
|
||||
#include <QPrintDialog>
|
||||
#include <QPrintPreviewDialog>
|
||||
#endif
|
||||
|
||||
#include "mainwindow.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -52,6 +52,8 @@
|
|||
#define MAINWINDOW_H
|
||||
|
||||
#include "ui_mainwindowbase.h"
|
||||
#include <QPrinter>
|
||||
#include <QPrintDialog>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QPrinter;
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ public slots:
|
|||
void fileNew();
|
||||
|
||||
protected:
|
||||
virtual void closeEvent(QCloseEvent *e) override;
|
||||
void closeEvent(QCloseEvent *e) override;
|
||||
|
||||
private slots:
|
||||
void fileOpen();
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ public:
|
|||
: QSignalTransition(fact, SIGNAL(xChanged(int))), m_fact(fact)
|
||||
{}
|
||||
|
||||
virtual bool eventTest(QEvent *e) override
|
||||
bool eventTest(QEvent *e) override
|
||||
{
|
||||
if (!QSignalTransition::eventTest(e))
|
||||
return false;
|
||||
|
|
@ -111,7 +111,7 @@ public:
|
|||
return se->arguments().at(0).toInt() > 1;
|
||||
}
|
||||
|
||||
virtual void onTransition(QEvent *e) override
|
||||
void onTransition(QEvent *e) override
|
||||
{
|
||||
QStateMachine::SignalEvent *se = static_cast<QStateMachine::SignalEvent*>(e);
|
||||
int x = se->arguments().at(0).toInt();
|
||||
|
|
@ -133,7 +133,7 @@ public:
|
|||
: QSignalTransition(fact, SIGNAL(xChanged(int))), m_fact(fact)
|
||||
{}
|
||||
|
||||
virtual bool eventTest(QEvent *e) override
|
||||
bool eventTest(QEvent *e) override
|
||||
{
|
||||
if (!QSignalTransition::eventTest(e))
|
||||
return false;
|
||||
|
|
@ -141,7 +141,7 @@ public:
|
|||
return se->arguments().at(0).toInt() <= 1;
|
||||
}
|
||||
|
||||
virtual void onTransition(QEvent *) override
|
||||
void onTransition(QEvent *) override
|
||||
{
|
||||
fprintf(stdout, "%d\n", m_fact->property("fac").toInt());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ public:
|
|||
: QState(parent) {}
|
||||
|
||||
protected:
|
||||
virtual void onEntry(QEvent *) override
|
||||
void onEntry(QEvent *) override
|
||||
{
|
||||
machine()->postEvent(new PingEvent());
|
||||
fprintf(stdout, "ping?\n");
|
||||
|
|
@ -90,10 +90,10 @@ public:
|
|||
PongTransition() {}
|
||||
|
||||
protected:
|
||||
virtual bool eventTest(QEvent *e) override {
|
||||
bool eventTest(QEvent *e) override {
|
||||
return (e->type() == QEvent::User+3);
|
||||
}
|
||||
virtual void onTransition(QEvent *) override
|
||||
void onTransition(QEvent *) override
|
||||
{
|
||||
machine()->postDelayedEvent(new PingEvent(), 500);
|
||||
fprintf(stdout, "ping?\n");
|
||||
|
|
@ -108,10 +108,10 @@ public:
|
|||
PingTransition() {}
|
||||
|
||||
protected:
|
||||
virtual bool eventTest(QEvent *e) override {
|
||||
bool eventTest(QEvent *e) override {
|
||||
return (e->type() == QEvent::User+2);
|
||||
}
|
||||
virtual void onTransition(QEvent *) override
|
||||
void onTransition(QEvent *) override
|
||||
{
|
||||
machine()->postDelayedEvent(new PongEvent(), 500);
|
||||
fprintf(stdout, "pong!\n");
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ public slots:
|
|||
void turnOn() { setOn(true); }
|
||||
|
||||
protected:
|
||||
virtual void paintEvent(QPaintEvent *) override
|
||||
void paintEvent(QPaintEvent *) override
|
||||
{
|
||||
if (!m_on)
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# qmake configuration for building with android-g++
|
||||
# qmake configuration for building with android-clang
|
||||
MAKEFILE_GENERATOR = UNIX
|
||||
QMAKE_PLATFORM = android
|
||||
QMAKE_COMPILER = gcc clang llvm
|
||||
|
|
@ -6,6 +6,7 @@ QMAKE_COMPILER = gcc clang llvm
|
|||
CONFIG += android_install unversioned_soname unversioned_libname plugin_with_soname android_deployment_settings
|
||||
|
||||
include(../common/linux.conf)
|
||||
include(../common/gcc-base-unix.conf)
|
||||
include(../common/clang.conf)
|
||||
include(../common/android-base-head.conf)
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,8 @@ if(gcc|intel_icl|msvc):!rim_qcc:!uikit:if(!macos|count(QMAKE_APPLE_DEVICE_ARCHS,
|
|||
gcc: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -dM -E -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
|
||||
else:intel_icl: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -QdM -P -Fi${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
|
||||
else:msvc {
|
||||
moc_predefs.commands += $$QMAKE_CXX -Bx$$QMAKE_QMAKE $$QMAKE_CXXFLAGS -E ${QMAKE_FILE_IN} 2>NUL >${QMAKE_FILE_OUT}
|
||||
moc_predefs.commands += $$QMAKE_CXX -Bx$$shell_quote($$shell_path($$QMAKE_QMAKE)) $$QMAKE_CXXFLAGS \
|
||||
-E ${QMAKE_FILE_IN} 2>NUL >${QMAKE_FILE_OUT}
|
||||
} else: error("Oops, I messed up")
|
||||
moc_predefs.output = $$MOC_DIR/moc_predefs.h
|
||||
moc_predefs.input = MOC_PREDEF_FILE
|
||||
|
|
|
|||
|
|
@ -194,13 +194,8 @@ qt_module_deps = $$resolve_depends(qt_module_deps, "QT.")
|
|||
# static builds: link qml import plugins into the app.
|
||||
contains(qt_module_deps, qml): \
|
||||
qtConfig(static):contains(TEMPLATE, .*app):!host_build:!no_import_scan {
|
||||
!isEmpty(QTREPOS) {
|
||||
for (qrep, QTREPOS): \
|
||||
exists($$qrep/qml): \
|
||||
QMLPATHS += $$qrep/qml
|
||||
} else {
|
||||
QMLPATHS += $$[QT_INSTALL_QML/get]
|
||||
}
|
||||
exists($$[QT_INSTALL_QML/get]): \
|
||||
QMLPATHS *= $$[QT_INSTALL_QML/get]
|
||||
|
||||
# run qmlimportscanner
|
||||
qtPrepareTool(QMLIMPORTSCANNER, qmlimportscanner, , system)
|
||||
|
|
|
|||
|
|
@ -37,6 +37,8 @@ INSTALLS += target
|
|||
load(qt_targets)
|
||||
load(qt_common)
|
||||
|
||||
qtSetQmlPath()
|
||||
|
||||
no_launch_target: return()
|
||||
|
||||
load(resolve_target)
|
||||
|
|
|
|||
|
|
@ -52,6 +52,22 @@ QMAKE_DIR_REPLACE_SANE = PRECOMPILED_DIR OBJECTS_DIR MOC_DIR RCC_DIR UI_DIR
|
|||
unset(modpath)
|
||||
}
|
||||
|
||||
defineTest(qtSetQmlPath) {
|
||||
!qtConfig(static)|host_build|no_import_scan: \
|
||||
return()
|
||||
deps = $$replace(QT, -private$, _private)
|
||||
deps = $$resolve_depends(deps, "QT.")
|
||||
!contains(deps, qml): \
|
||||
return()
|
||||
|
||||
isEmpty(QTREPOS): \
|
||||
QTREPOS = $$shadowed($$dirname(_QMAKE_CONF_))
|
||||
for (qrep, QTREPOS): \
|
||||
exists($$qrep/qml): \
|
||||
QMLPATHS += $$qrep/qml
|
||||
export(QMLPATHS)
|
||||
}
|
||||
|
||||
# Apply extra compiler flags passed via configure last.
|
||||
CONFIG = qt_build_extra $$CONFIG
|
||||
|
||||
|
|
|
|||
|
|
@ -22,12 +22,18 @@ defineTest(qtConfAddWarning) {
|
|||
defineTest(qtConfAddError) {
|
||||
QT_CONFIGURE_ERRORS += "ERROR: $$join(1, $$escape_expand(\\n))"
|
||||
export(QT_CONFIGURE_ERRORS)
|
||||
equals(2, log) {
|
||||
equals(2, log):qt_conf_tests_allowed {
|
||||
CONFIG += mention_config_log
|
||||
export(CONFIG)
|
||||
}
|
||||
}
|
||||
|
||||
defineTest(qtConfFatalError) {
|
||||
qtConfAddError($$1, $$2)
|
||||
qtConfPrintReport()
|
||||
error()
|
||||
}
|
||||
|
||||
defineTest(qtConfCommandlineSetInput) {
|
||||
arg = $${1}
|
||||
val = $${2}
|
||||
|
|
@ -782,9 +788,7 @@ defineTest(qtConfTest_compile) {
|
|||
|
||||
defineTest(qtConfTest_verifySpec) {
|
||||
qtConfTest_compile($$1): return(true)
|
||||
qtConfAddError("Cannot compile a minimal program. The toolchain or QMakeSpec is broken.", log)
|
||||
qtConfPrintReport()
|
||||
error()
|
||||
qtConfFatalError("Cannot compile a minimal program. The toolchain or QMakeSpec is broken.", log)
|
||||
}
|
||||
|
||||
defineTest(qtConfTest_files) {
|
||||
|
|
@ -1314,6 +1318,10 @@ defineTest(qtConfReport_error) {
|
|||
qtConfAddError($${1}, log)
|
||||
}
|
||||
|
||||
defineTest(qtConfReport_fatal) {
|
||||
qtConfFatalError($${1})
|
||||
}
|
||||
|
||||
defineTest(qtConfCreateReportRecurse) {
|
||||
equals(2, false) {
|
||||
indent = ""
|
||||
|
|
|
|||
|
|
@ -9,6 +9,9 @@
|
|||
# We mean it.
|
||||
#
|
||||
|
||||
contains(TEMPLATE, .*app): \
|
||||
qtSetQmlPath()
|
||||
|
||||
contains(TEMPLATE, "vc.*"): return()
|
||||
|
||||
defineTest(addInstallFiles) {
|
||||
|
|
|
|||
|
|
@ -204,9 +204,20 @@ headersclean:!internal_module {
|
|||
!contains(QT_ARCH, arm):!contains(QT_ARCH, mips): \
|
||||
hcleanFLAGS += -Wcast-align
|
||||
|
||||
greaterThan(QT_CLANG_MAJOR_VERSION, 3) {
|
||||
hcleanFLAGS += -Wdouble-promotion
|
||||
} greaterThan(QT_CLANG_MAJOR_VERSION, 2):greaterThan(QT_CLANG_MINOR_VERSION, 7) {
|
||||
hcleanFLAGS += -Wdouble-promotion
|
||||
}
|
||||
|
||||
!clang {
|
||||
# options accepted only by GCC
|
||||
|
||||
greaterThan(QT_GCC_MAJOR_VERSION, 4) {
|
||||
hcleanFLAGS += -Wdouble-promotion
|
||||
} greaterThan(QT_GCC_MAJOR_VERSION, 3):greaterThan(QT_GCC_MINOR_VERSION, 4) {
|
||||
hcleanFLAGS += -Wdouble-promotion
|
||||
}
|
||||
c++11 {
|
||||
# only enabled for actual c++11 builds due to
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52806
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
#
|
||||
# qmake configuration for win32-msvc2017
|
||||
#
|
||||
# Written for Microsoft Visual C++ 2017
|
||||
#
|
||||
|
||||
MSC_VER = 1910
|
||||
MSVC_VER = 15.0
|
||||
include(../common/msvc-desktop.conf)
|
||||
load(qt_config)
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the qmake spec of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL21$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 or version 3 as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
|
||||
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
|
||||
** following information to ensure the GNU Lesser General Public License
|
||||
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** As a special exception, The Qt Company gives you certain additional
|
||||
** rights. These rights are described in The Qt Company LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "../win32-msvc2005/qplatformdefs.h"
|
||||
|
|
@ -20,7 +20,7 @@ QOBJS=qtextcodec.o qutfcodec.o qstring.o qstring_compat.o qstringbuilder.o qtext
|
|||
qvariant.o qvsnprintf.o qlocale.o qlocale_tools.o qlinkedlist.o qnumeric.o \
|
||||
qcryptographichash.o qxmlstream.o qxmlutils.o qlogging.o qoperatingsystemversion.o \
|
||||
qjson.o qjsondocument.o qjsonparser.o qjsonarray.o qjsonobject.o qjsonvalue.o \
|
||||
$(QTOBJS)
|
||||
$(QTOBJS) $(QTOBJS2)
|
||||
|
||||
|
||||
#all sources, used for the depend target
|
||||
|
|
@ -92,11 +92,11 @@ DEPEND_SRC = \
|
|||
$(SOURCE_PATH)/src/corelib/json/qjsonarray.cpp \
|
||||
$(SOURCE_PATH)/src/corelib/json/qjsonobject.cpp \
|
||||
$(SOURCE_PATH)/src/corelib/json/qjsonvalue.cpp \
|
||||
$(QTSRCS)
|
||||
$(QTSRCS) $(QTSRCS2)
|
||||
|
||||
CPPFLAGS = -g $(EXTRA_CPPFLAGS) \
|
||||
-I$(QMKSRC) -I$(QMKLIBSRC) -I$(QMKSRC)/generators -I$(QMKSRC)/generators/unix -I$(QMKSRC)/generators/win32 \
|
||||
-I$(QMKSRC)/generators/mac -I$(QMKSRC)/generators/integrity \
|
||||
-I$(QMKSRC)/generators/mac \
|
||||
-I$(INC_PATH) -I$(INC_PATH)/QtCore \
|
||||
-I$(INC_PATH)/QtCore/$(QT_VERSION) -I$(INC_PATH)/QtCore/$(QT_VERSION)/QtCore \
|
||||
-I$(BUILD_PATH)/src/corelib/global \
|
||||
|
|
@ -106,7 +106,8 @@ CPPFLAGS = -g $(EXTRA_CPPFLAGS) \
|
|||
-DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL \
|
||||
-DQT_NO_FOREACH
|
||||
|
||||
CXXFLAGS = $(EXTRA_CXXFLAGS) $(CPPFLAGS)
|
||||
CXXFLAGS = $(EXTRA_CXXFLAGS) $(CONFIG_CXXFLAGS) $(CPPFLAGS)
|
||||
LFLAGS = $(EXTRA_LFLAGS) $(CONFIG_LFLAGS)
|
||||
|
||||
first all: $(BUILD_PATH)/bin/qmake$(EXEEXT)
|
||||
qmake: $(BUILD_PATH)/bin/qmake$(EXEEXT)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
COCOA_LFLAGS = -framework Foundation -framework CoreServices
|
||||
CARBON_LFLAGS = -framework ApplicationServices
|
||||
CARBON_CFLAGS = -fconstant-cfstrings
|
||||
|
||||
EXTRA_CXXFLAGS = $(CARBON_CFLAGS)
|
||||
EXTRA_LFLAGS = $(COCOA_LFLAGS) $(CARBON_LFLAGS)
|
||||
|
||||
QTOBJS2 = \
|
||||
qsettings_mac.o \
|
||||
qcore_mac.o \
|
||||
qoperatingsystemversion_darwin.o \
|
||||
qcore_foundation.o
|
||||
QTSRCS2 = \
|
||||
$(SOURCE_PATH)/src/corelib/io/qsettings_mac.cpp \
|
||||
$(SOURCE_PATH)/src/corelib/kernel/qcore_mac.cpp \
|
||||
$(SOURCE_PATH)/src/corelib/global/qoperatingsystemversion_darwin.mm \
|
||||
$(SOURCE_PATH)/src/corelib/kernel/qcore_foundation.mm
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
# SHELL is the full path of sh.exe, unless
|
||||
# 1) it is found in the current directory
|
||||
# 2) it is not found at all
|
||||
# 3) it is overridden on the command line with an existing file
|
||||
# ... otherwise it is always sh.exe. Specifically, SHELL from the
|
||||
# environment has no effect.
|
||||
#
|
||||
# This check will fail if SHELL is explicitly set to a not
|
||||
# sh-compatible shell. This is not a problem, because configure.bat
|
||||
# will not do that.
|
||||
ifeq ($(SHELL), sh.exe)
|
||||
ifeq ($(wildcard $(CURDIR)/sh.exe), )
|
||||
SH = 0
|
||||
else
|
||||
SH = 1
|
||||
endif
|
||||
else
|
||||
SH = 1
|
||||
endif
|
||||
|
||||
ifeq ($(SH), 1)
|
||||
RM_F = rm -f
|
||||
RM_RF = rm -rf
|
||||
else
|
||||
RM_F = del /f
|
||||
RM_RF = rmdir /s /q
|
||||
endif
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
EXEEXT =
|
||||
QTOBJS = \
|
||||
qfilesystemengine_unix.o \
|
||||
qfilesystemiterator_unix.o \
|
||||
qfsfileengine_unix.o \
|
||||
qlocale_unix.o
|
||||
QTSRCS = \
|
||||
$(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp \
|
||||
$(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_unix.cpp \
|
||||
$(SOURCE_PATH)/src/corelib/io/qfsfileengine_unix.cpp \
|
||||
$(SOURCE_PATH)/src/corelib/tools/qlocale_unix.cpp
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
EXEEXT = .exe
|
||||
EXTRA_CXXFLAGS = -DUNICODE
|
||||
EXTRA_LFLAGS = -static -s -lole32 -luuid -ladvapi32 -lkernel32
|
||||
QTOBJS = \
|
||||
qfilesystemengine_win.o \
|
||||
qfilesystemiterator_win.o \
|
||||
qfsfileengine_win.o \
|
||||
qlocale_win.o \
|
||||
qsettings_win.o \
|
||||
qoperatingsystemversion_win.o \
|
||||
qsystemlibrary.o \
|
||||
registry.o
|
||||
QTSRCS = \
|
||||
$(SOURCE_PATH)/src/corelib/global/qoperatingsystemversion_win.cpp \
|
||||
$(SOURCE_PATH)/src/corelib/io/qfilesystemengine_win.cpp \
|
||||
$(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_win.cpp \
|
||||
$(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp \
|
||||
$(SOURCE_PATH)/src/corelib/io/qsettings_win.cpp \
|
||||
$(SOURCE_PATH)/src/corelib/tools/qlocale_win.cpp \
|
||||
$(SOURCE_PATH)/src/corelib/plugin/qsystemlibrary.cpp \
|
||||
$(SOURCE_PATH)/tools/shared/windows/registry.cpp
|
||||
|
|
@ -23,7 +23,7 @@ CXX = cl
|
|||
LINKER = link
|
||||
! if "$(QMAKESPEC)" == "win32-msvc2013"
|
||||
CFLAGS_EXTRA = /MP /D_CRT_SECURE_NO_WARNINGS /D_SCL_SECURE_NO_WARNINGS $(CFLAGS_CRT)
|
||||
! elseif "$(QMAKESPEC)" == "win32-msvc2015" || "$(QMAKESPEC)" == "win32-clang-msvc2015"
|
||||
! elseif "$(QMAKESPEC)" == "win32-msvc2015" || "$(QMAKESPEC)" == "win32-msvc2017" || "$(QMAKESPEC)" == "win32-clang-msvc2015"
|
||||
CFLAGS_EXTRA = /MP /D_CRT_SECURE_NO_WARNINGS /D_SCL_SECURE_NO_WARNINGS /Zc:strictStrings /w44456 /w44457 /w44458 /wd4577 $(CFLAGS_CRT)
|
||||
! else
|
||||
! error Unsupported compiler for this Makefile
|
||||
|
|
@ -38,7 +38,7 @@ PCH_OBJECT = qmake_pch.obj
|
|||
CFLAGS_BARE = -c -Fo./ -Fdqmake.pdb \
|
||||
-W3 -nologo -O1 \
|
||||
$(CFLAGS_EXTRA) \
|
||||
-I$(QMKSRC) -I$(QMKSRC)\library -I$(QMKSRC)\generators -I$(QMKSRC)\generators\unix -I$(QMKSRC)\generators\win32 -I$(QMKSRC)\generators\mac -I$(QMKSRC)\generators\integrity \
|
||||
-I$(QMKSRC) -I$(QMKSRC)\library -I$(QMKSRC)\generators -I$(QMKSRC)\generators\unix -I$(QMKSRC)\generators\win32 -I$(QMKSRC)\generators\mac \
|
||||
-I$(INC_PATH) -I$(INC_PATH)\QtCore -I$(INC_PATH)\QtCore\$(QT_VERSION) -I$(INC_PATH)\QtCore\$(QT_VERSION)\QtCore \
|
||||
-I$(BUILD_PATH)\src\corelib\global \
|
||||
-I$(SOURCE_PATH)\mkspecs\$(QMAKESPEC) \
|
||||
|
|
@ -149,18 +149,9 @@ distclean:: clean
|
|||
-del $(BUILD_PATH)\bin\qmake.exe
|
||||
-del Makefile
|
||||
|
||||
.c.obj:
|
||||
$(CXX) $(CFLAGS) $<
|
||||
|
||||
.cpp.obj:
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
|
||||
.cc.obj:
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
|
||||
.cxx.obj:
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
|
||||
$(OBJS): $(PCH_OBJECT)
|
||||
|
||||
$(QTOBJS): $(PCH_OBJECT)
|
||||
|
|
@ -176,9 +167,6 @@ qmake_pch.obj:
|
|||
{$(SOURCE_PATH)\qmake\generators\mac}.cpp{}.obj::
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
|
||||
{$(SOURCE_PATH)\qmake\generators\integrity}.cpp{}.obj::
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
|
||||
{$(SOURCE_PATH)\qmake\generators\unix}.cpp{}.obj::
|
||||
$(CXX) $(CXXFLAGS) $<
|
||||
|
||||
|
|
|
|||
|
|
@ -2057,6 +2057,12 @@
|
|||
value of this variable is typically handled by qmake or
|
||||
\l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified.
|
||||
|
||||
\section1 QMAKE_OBJECTIVE_CFLAGS
|
||||
|
||||
Specifies the Objective C/C++ compiler flags for building
|
||||
a project. These flags are used in addition to QMAKE_CFLAGS and
|
||||
QMAKE_CXXFLAGS.
|
||||
|
||||
\section1 QMAKE_POST_LINK
|
||||
|
||||
Specifies the command to execute after linking the \l{TARGET}
|
||||
|
|
|
|||
|
|
@ -1839,7 +1839,7 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
|
|||
QString dep_cd_cmd;
|
||||
if (!tmp_dep_cmd.isEmpty()) {
|
||||
dep_cd_cmd = QLatin1String("cd ")
|
||||
+ escapeFilePath(Option::fixPathToLocalOS(Option::output_dir, false))
|
||||
+ IoUtils::shellQuote(Option::fixPathToLocalOS(Option::output_dir, false))
|
||||
+ QLatin1String(" && ");
|
||||
}
|
||||
const ProStringList &vars = project->values(ProKey(*it + ".variables"));
|
||||
|
|
|
|||
|
|
@ -308,7 +308,12 @@ void MingwMakefileGenerator::writeBuildRulesPart(QTextStream &t)
|
|||
{
|
||||
t << "first: all\n";
|
||||
t << "all: " << escapeDependencyPath(fileFixify(Option::output.fileName()))
|
||||
<< ' ' << depVar("ALL_DEPS") << " $(DESTDIR_TARGET)\n\n";
|
||||
<< ' ' << depVar("ALL_DEPS");
|
||||
if (project->first("TEMPLATE") == "aux") {
|
||||
t << "\n\n";
|
||||
return;
|
||||
}
|
||||
t << " $(DESTDIR_TARGET)\n\n";
|
||||
t << "$(DESTDIR_TARGET): " << depVar("PRE_TARGETDEPS") << " $(OBJECTS) " << depVar("POST_TARGETDEPS");
|
||||
if(!project->isEmpty("QMAKE_PRE_LINK"))
|
||||
t << "\n\t" <<var("QMAKE_PRE_LINK");
|
||||
|
|
@ -318,7 +323,7 @@ void MingwMakefileGenerator::writeBuildRulesPart(QTextStream &t)
|
|||
} else {
|
||||
t << "\n\t" << objectsLinkLine << " " ;
|
||||
}
|
||||
} else if (project->first("TEMPLATE") != "aux") {
|
||||
} else {
|
||||
t << "\n\t$(LINKER) $(LFLAGS) " << var("QMAKE_LINK_O_FLAG") << "$(DESTDIR_TARGET) " << objectsLinkLine << " $(LIBS)";
|
||||
}
|
||||
if(!project->isEmpty("QMAKE_POST_LINK"))
|
||||
|
|
|
|||
|
|
@ -517,7 +517,12 @@ void NmakeMakefileGenerator::writeBuildRulesPart(QTextStream &t)
|
|||
|
||||
t << "first: all\n";
|
||||
t << "all: " << escapeDependencyPath(fileFixify(Option::output.fileName()))
|
||||
<< ' ' << depVar("ALL_DEPS") << " $(DESTDIR_TARGET)\n\n";
|
||||
<< ' ' << depVar("ALL_DEPS");
|
||||
if (templateName == "aux") {
|
||||
t << "\n\n";
|
||||
return;
|
||||
}
|
||||
t << " $(DESTDIR_TARGET)\n\n";
|
||||
t << "$(DESTDIR_TARGET): " << depVar("PRE_TARGETDEPS") << " $(OBJECTS) " << depVar("POST_TARGETDEPS");
|
||||
|
||||
if(!project->isEmpty("QMAKE_PRE_LINK"))
|
||||
|
|
@ -526,7 +531,7 @@ void NmakeMakefileGenerator::writeBuildRulesPart(QTextStream &t)
|
|||
t << "\n\t$(LIBAPP) $(LIBFLAGS) " << var("QMAKE_LINK_O_FLAG") << "$(DESTDIR_TARGET) @<<\n\t "
|
||||
<< "$(OBJECTS)"
|
||||
<< "\n<<";
|
||||
} else if (templateName != "aux") {
|
||||
} else {
|
||||
const bool embedManifest = ((templateName == "app" && project->isActiveConfig("embed_manifest_exe"))
|
||||
|| (templateName == "lib" && project->isActiveConfig("embed_manifest_dll")
|
||||
&& !(project->isActiveConfig("plugin") && project->isActiveConfig("no_plugin_manifest"))
|
||||
|
|
|
|||
|
|
@ -29,9 +29,14 @@
|
|||
#include "msvc_objectmodel.h"
|
||||
#include "msvc_vcproj.h"
|
||||
#include "msvc_vcxproj.h"
|
||||
|
||||
#include <ioutils.h>
|
||||
|
||||
#include <qscopedpointer.h>
|
||||
#include <qfileinfo.h>
|
||||
|
||||
using namespace QMakeInternal;
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
static DotNET vsVersionFromString(const char *versionString)
|
||||
|
|
@ -2173,7 +2178,6 @@ VCConfiguration::VCConfiguration()
|
|||
compiler.config = this;
|
||||
linker.config = this;
|
||||
idl.config = this;
|
||||
custom.config = this;
|
||||
}
|
||||
|
||||
// VCFilter ---------------------------------------------------------
|
||||
|
|
@ -2347,7 +2351,7 @@ bool VCFilter::addExtraCompiler(const VCFilterFile &info)
|
|||
tmp_dep_cmd, inFile, out, MakefileGenerator::LocalShell);
|
||||
if(Project->canExecute(dep_cmd)) {
|
||||
dep_cmd.prepend(QLatin1String("cd ")
|
||||
+ Project->escapeFilePath(Option::fixPathToLocalOS(Option::output_dir, false))
|
||||
+ IoUtils::shellQuote(Option::fixPathToLocalOS(Option::output_dir, false))
|
||||
+ QLatin1String(" && "));
|
||||
if (FILE *proc = QT_POPEN(dep_cmd.toLatin1().constData(), QT_POPEN_READ)) {
|
||||
QString indeps;
|
||||
|
|
@ -2896,7 +2900,6 @@ void VCProjectWriter::write(XmlOutput &xml, const VCConfiguration &tool)
|
|||
<< attrE(_UseOfMfc, tool.UseOfMfc)
|
||||
<< attrT(_WholeProgramOptimization, tool.WholeProgramOptimization);
|
||||
write(xml, tool.compiler);
|
||||
write(xml, tool.custom);
|
||||
if (tool.ConfigurationType == typeStaticLibrary)
|
||||
write(xml, tool.librarian);
|
||||
else
|
||||
|
|
|
|||
|
|
@ -51,7 +51,8 @@ enum DotNET {
|
|||
NET2010 = 0xa0,
|
||||
NET2012 = 0xb0,
|
||||
NET2013 = 0xc0,
|
||||
NET2015 = 0xd0
|
||||
NET2015 = 0xd0,
|
||||
NET2017 = 0xe0
|
||||
};
|
||||
|
||||
DotNET vsVersionFromString(const ProString &versionString);
|
||||
|
|
@ -896,7 +897,6 @@ public:
|
|||
VCLinkerTool linker;
|
||||
VCLibrarianTool librarian;
|
||||
VCManifestTool manifestTool;
|
||||
VCCustomBuildTool custom;
|
||||
VCMIDLTool idl;
|
||||
VCPostBuildEventTool postBuild;
|
||||
VCPreBuildEventTool preBuild;
|
||||
|
|
@ -912,24 +912,15 @@ struct VCFilterFile
|
|||
{ excludeFromBuild = false; }
|
||||
VCFilterFile(const QString &filename, bool exclude = false )
|
||||
{ file = filename; excludeFromBuild = exclude; }
|
||||
VCFilterFile(const QString &filename, const QString &additional, bool exclude = false )
|
||||
{ file = filename; excludeFromBuild = exclude; additionalFile = additional; }
|
||||
bool operator==(const VCFilterFile &other){
|
||||
return file == other.file
|
||||
&& additionalFile == other.additionalFile
|
||||
&& excludeFromBuild == other.excludeFromBuild;
|
||||
}
|
||||
|
||||
bool excludeFromBuild;
|
||||
QString file;
|
||||
QString additionalFile; // For tools like MOC
|
||||
};
|
||||
|
||||
#ifndef QT_NO_DEBUG_OUTPUT
|
||||
inline QDebug operator<<(QDebug dbg, const VCFilterFile &p)
|
||||
{
|
||||
dbg.nospace() << "VCFilterFile(file(" << p.file
|
||||
<< ") additionalFile(" << p.additionalFile
|
||||
<< ") excludeFromBuild(" << p.excludeFromBuild << "))" << endl;
|
||||
return dbg.space();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,15 +29,21 @@
|
|||
#include "msvc_vcproj.h"
|
||||
#include "option.h"
|
||||
#include "xmloutput.h"
|
||||
|
||||
#include <ioutils.h>
|
||||
|
||||
#include <qdir.h>
|
||||
#include <qdiriterator.h>
|
||||
#include <qcryptographichash.h>
|
||||
#include <qhash.h>
|
||||
#include <quuid.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
//#define DEBUG_SOLUTION_GEN
|
||||
|
||||
using namespace QMakeInternal;
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
// Filter GUIDs (Do NOT change these!) ------------------------------
|
||||
const char _GUIDSourceFiles[] = "{4FC737F1-C7A5-4376-A066-2A32D752A2FF}";
|
||||
|
|
@ -66,6 +72,8 @@ const char _slnHeader120[] = "Microsoft Visual Studio Solution File, Format
|
|||
"\n# Visual Studio 2013";
|
||||
const char _slnHeader140[] = "Microsoft Visual Studio Solution File, Format Version 12.00"
|
||||
"\n# Visual Studio 2015";
|
||||
const char _slnHeader141[] = "Microsoft Visual Studio Solution File, Format Version 12.00"
|
||||
"\n# Visual Studio 2017";
|
||||
// The following UUID _may_ change for later servicepacks...
|
||||
// If so we need to search through the registry at
|
||||
// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Projects
|
||||
|
|
@ -294,6 +302,8 @@ QString VcprojGenerator::retrievePlatformToolSet() const
|
|||
return QStringLiteral("v120") + suffix;
|
||||
case NET2015:
|
||||
return QStringLiteral("v140") + suffix;
|
||||
case NET2017:
|
||||
return QStringLiteral("v141") + suffix;
|
||||
default:
|
||||
return QString();
|
||||
}
|
||||
|
|
@ -521,6 +531,9 @@ void VcprojGenerator::writeSubDirs(QTextStream &t)
|
|||
}
|
||||
|
||||
switch (vcProject.Configuration.CompilerVersion) {
|
||||
case NET2017:
|
||||
t << _slnHeader141;
|
||||
break;
|
||||
case NET2015:
|
||||
t << _slnHeader140;
|
||||
break;
|
||||
|
|
@ -843,6 +856,9 @@ void VcprojGenerator::initProject()
|
|||
// Own elements -----------------------------
|
||||
vcProject.Name = project->first("QMAKE_ORIG_TARGET").toQString();
|
||||
switch (vcProject.Configuration.CompilerVersion) {
|
||||
case NET2017:
|
||||
vcProject.Version = "15.00";
|
||||
break;
|
||||
case NET2015:
|
||||
vcProject.Version = "14.00";
|
||||
break;
|
||||
|
|
@ -1448,7 +1464,7 @@ void VcprojGenerator::initResourceFiles()
|
|||
dep_cmd = Option::fixPathToLocalOS(dep_cmd, true, false);
|
||||
if(canExecute(dep_cmd)) {
|
||||
dep_cmd.prepend(QLatin1String("cd ")
|
||||
+ escapeFilePath(Option::fixPathToLocalOS(Option::output_dir, false))
|
||||
+ IoUtils::shellQuote(Option::fixPathToLocalOS(Option::output_dir, false))
|
||||
+ QLatin1String(" && "));
|
||||
if (FILE *proc = QT_POPEN(dep_cmd.toLatin1().constData(), QT_POPEN_READ)) {
|
||||
QString indeps;
|
||||
|
|
|
|||
|
|
@ -568,16 +568,18 @@ void Win32MakefileGenerator::writeStandardParts(QTextStream &t)
|
|||
t << "####### Build rules\n\n";
|
||||
writeBuildRulesPart(t);
|
||||
|
||||
if(project->isActiveConfig("shared") && !project->values("DLLDESTDIR").isEmpty()) {
|
||||
const ProStringList &dlldirs = project->values("DLLDESTDIR");
|
||||
for (ProStringList::ConstIterator dlldir = dlldirs.begin(); dlldir != dlldirs.end(); ++dlldir) {
|
||||
t << "\t-$(COPY_FILE) $(DESTDIR_TARGET) "
|
||||
<< escapeFilePath(Option::fixPathToTargetOS((*dlldir).toQString(), false)) << endl;
|
||||
if (project->first("TEMPLATE") != "aux") {
|
||||
if (project->isActiveConfig("shared") && !project->values("DLLDESTDIR").isEmpty()) {
|
||||
const ProStringList &dlldirs = project->values("DLLDESTDIR");
|
||||
for (ProStringList::ConstIterator dlldir = dlldirs.begin(); dlldir != dlldirs.end(); ++dlldir) {
|
||||
t << "\t-$(COPY_FILE) $(DESTDIR_TARGET) "
|
||||
<< escapeFilePath(Option::fixPathToTargetOS((*dlldir).toQString(), false)) << endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
t << endl;
|
||||
t << endl;
|
||||
|
||||
writeRcFilePart(t);
|
||||
writeRcFilePart(t);
|
||||
}
|
||||
|
||||
writeMakeQmake(t);
|
||||
|
||||
|
|
@ -601,8 +603,10 @@ void Win32MakefileGenerator::writeStandardParts(QTextStream &t)
|
|||
const ProStringList &quc = project->values("QMAKE_EXTRA_COMPILERS");
|
||||
for (ProStringList::ConstIterator it = quc.begin(); it != quc.end(); ++it) {
|
||||
const ProStringList &inputs = project->values(ProKey(*it + ".input"));
|
||||
for (ProStringList::ConstIterator input = inputs.begin(); input != inputs.end(); ++input)
|
||||
t << escapeFilePath(*input) << ' ';
|
||||
for (ProStringList::ConstIterator input = inputs.begin(); input != inputs.end(); ++input) {
|
||||
const ProStringList &val = project->values((*input).toKey());
|
||||
t << escapeFilePaths(val).join(' ') << ' ';
|
||||
}
|
||||
}
|
||||
}
|
||||
t << endl << endl;
|
||||
|
|
|
|||
|
|
@ -971,6 +971,13 @@ static ProString msvcBinDirToQMakeArch(QString subdir)
|
|||
subdir = subdir.toLower();
|
||||
if (subdir == QLatin1String("amd64"))
|
||||
return ProString("x86_64");
|
||||
// Since 2017 the folder structure from here is HostX64|X86/x64|x86
|
||||
idx = subdir.indexOf(QLatin1Char('\\'));
|
||||
if (idx == -1)
|
||||
return ProString("x86");
|
||||
subdir.remove(0, idx + 1);
|
||||
if (subdir == QLatin1String("x64"))
|
||||
return ProString("x86_64");
|
||||
return ProString(subdir);
|
||||
}
|
||||
|
||||
|
|
@ -1052,8 +1059,12 @@ void QMakeEvaluator::loadDefaults()
|
|||
vars[ProKey("QMAKE_HOST.arch")] << archStr;
|
||||
|
||||
# if defined(Q_CC_MSVC) // ### bogus condition, but nobody x-builds for msvc with a different qmake
|
||||
// Since VS 2017 we need VCToolsInstallDir instead of VCINSTALLDIR
|
||||
QString vcInstallDir = m_option->getEnv(QLatin1String("VCToolsInstallDir"));
|
||||
if (vcInstallDir.isEmpty())
|
||||
vcInstallDir = m_option->getEnv(QLatin1String("VCINSTALLDIR"));
|
||||
vars[ProKey("QMAKE_TARGET.arch")] = msvcArchitecture(
|
||||
m_option->getEnv(QLatin1String("VCINSTALLDIR")),
|
||||
vcInstallDir,
|
||||
m_option->getEnv(QLatin1String("PATH")));
|
||||
# endif
|
||||
#elif defined(Q_OS_UNIX)
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ INCLUDEPATH += . \
|
|||
generators/unix \
|
||||
generators/win32 \
|
||||
generators/mac \
|
||||
generators/integrity \
|
||||
../tools/shared
|
||||
|
||||
include(qmake.pri)
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
},
|
||||
{
|
||||
"Id": "angle-arrayboundsclamper",
|
||||
"Name": "ANGLE Array Bounds Clamper for WebKit",
|
||||
"Name": "ANGLE: Array Bounds Clamper for WebKit",
|
||||
"QDocModule": "qtgui",
|
||||
"QtUsage": "Used on Windows to implement OpenGL ES on top of DirectX. Configure with -no-opengl, or -opengl desktop to exclude.",
|
||||
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
},
|
||||
{
|
||||
"Id": "angle-murmurhash",
|
||||
"Name": "Murmurhash (as part of ANGLE)",
|
||||
"Name": "ANGLE: Murmurhash",
|
||||
"QDocModule": "qtgui",
|
||||
"QtUsage": "Used on Windows to implement OpenGL ES on top of DirectX. Configure with -no-opengl, or -opengl desktop to exclude.",
|
||||
|
||||
|
|
@ -36,7 +36,7 @@
|
|||
},
|
||||
{
|
||||
"Id": "angle-systeminfo",
|
||||
"Name": "Systeminfo (as part of ANGLE)",
|
||||
"Name": "ANGLE: Systeminfo",
|
||||
"QDocModule": "qtgui",
|
||||
"QtUsage": "Used on Windows to implement OpenGL ES on top of DirectX. Configure with -no-opengl, or -opengl desktop to exclude.",
|
||||
|
||||
|
|
@ -48,7 +48,7 @@
|
|||
},
|
||||
{
|
||||
"Id": "angle-trace_event",
|
||||
"Name": "trace_event (as part of ANGLE)",
|
||||
"Name": "ANGLE: trace_event",
|
||||
"QDocModule": "qtgui",
|
||||
"QtUsage": "Used on Windows to implement OpenGL ES on top of DirectX. Configure with -no-opengl, or -opengl desktop to exclude.",
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
Copyright (C) 2016 Intel Corporation.
|
||||
Copyright (C) 2015 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
|
|||
|
|
@ -7,6 +7,6 @@
|
|||
"License": "MIT License",
|
||||
"LicenseId": "MIT",
|
||||
"LicenseFile": "LICENSE",
|
||||
"Copyright": "Copyright (C) 2013-2016 Intel Corporation
|
||||
"Copyright": "Copyright (C) 2016 Intel Corporation
|
||||
Copyright (C) 2015 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,14 +4,10 @@
|
|||
"QDocModule": "qtcore",
|
||||
"QtUsage": "Used in Qt Core.",
|
||||
|
||||
"Description": "strtoll() and strtoull() are functions for converting a string to (unsigned) long long integer.",
|
||||
"License": "BSD 3-clause \"New\" or \"Revised\" License",
|
||||
"LicenseId": "BSD-3-Clause",
|
||||
"LicenseFile": "LICENSE",
|
||||
"Copyright": "Copyright (c) 1992, 1993
|
||||
The Regents of the University of California. All rights reserved.
|
||||
|
||||
Copyright (c) 2011 The FreeBSD Foundation
|
||||
All rights reserved.
|
||||
Portions of this software were developed by David Chisnall
|
||||
under sponsorship from the FreeBSD Foundation."
|
||||
"Copyright": "Copyright (c) 1992, 1993 The Regents of the University of California.
|
||||
Copyright (c) 2011 The FreeBSD Foundation"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
"Name": "Secure Hash Algorithm SHA-3 - brg_endian",
|
||||
"QDocModule": "qtcore",
|
||||
"QtUsage": "Used in Qt Core (QCryptographicHash).",
|
||||
"Files": "brg_endian.h",
|
||||
|
||||
"Description": "SHA-3, originally known as Keccak, is a cryptographic hash function.",
|
||||
"License": "BSD 3-clause \"New\" or \"Revised\" License",
|
||||
|
|
@ -16,6 +17,7 @@
|
|||
"Name": "Secure Hash Algorithm SHA-3 - Keccak",
|
||||
"QDocModule": "qtcore",
|
||||
"QtUsage": "Used in Qt Core (QCryptographicHash).",
|
||||
"Files": "KeccakF-1600-32-rvk.macros KeccakF-1600-32.macros KeccakF-1600-64.macros KeccakF-1600-interface.h KeccakF-1600-opt32.c KeccakF-1600-opt64.c KeccakF-1600-unrolling.macros KeccakNISTInterface.c KeccakNISTInterface.h KeccakSponge.c KeccakSponge.h",
|
||||
|
||||
"Description": "SHA-3, originally known as Keccak, is a cryptographic hash function.",
|
||||
"License": "Creative Commons Zero v1.0 Universal",
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ public:
|
|||
reducer(OrderedReduce)
|
||||
{ }
|
||||
|
||||
bool runIteration(typename Sequence::const_iterator it, int index, T *)
|
||||
bool runIteration(typename Sequence::const_iterator it, int index, T *) override
|
||||
{
|
||||
IntermediateResults<typename Sequence::value_type> results;
|
||||
results.begin = index;
|
||||
|
|
@ -109,7 +109,7 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
bool runIterations(typename Sequence::const_iterator sequenceBeginIterator, int begin, int end, T *)
|
||||
bool runIterations(typename Sequence::const_iterator sequenceBeginIterator, int begin, int end, T *) override
|
||||
{
|
||||
IntermediateResults<typename Sequence::value_type> results;
|
||||
results.begin = begin;
|
||||
|
|
@ -129,18 +129,18 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
void finish()
|
||||
void finish() override
|
||||
{
|
||||
reducer.finish(reduce, reducedResult);
|
||||
sequence = reducedResult;
|
||||
}
|
||||
|
||||
inline bool shouldThrottleThread()
|
||||
inline bool shouldThrottleThread() override
|
||||
{
|
||||
return IterateKernelType::shouldThrottleThread() || reducer.shouldThrottle();
|
||||
}
|
||||
|
||||
inline bool shouldStartThread()
|
||||
inline bool shouldStartThread() override
|
||||
{
|
||||
return IterateKernelType::shouldStartThread() && reducer.shouldStartThread();
|
||||
}
|
||||
|
|
@ -183,7 +183,7 @@ public:
|
|||
{ }
|
||||
#endif
|
||||
|
||||
bool runIteration(Iterator it, int index, ReducedResultType *)
|
||||
bool runIteration(Iterator it, int index, ReducedResultType *) override
|
||||
{
|
||||
IntermediateResults<typename qValueType<Iterator>::value_type> results;
|
||||
results.begin = index;
|
||||
|
|
@ -196,7 +196,7 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
bool runIterations(Iterator sequenceBeginIterator, int begin, int end, ReducedResultType *)
|
||||
bool runIterations(Iterator sequenceBeginIterator, int begin, int end, ReducedResultType *) override
|
||||
{
|
||||
IntermediateResults<typename qValueType<Iterator>::value_type> results;
|
||||
results.begin = begin;
|
||||
|
|
@ -215,24 +215,24 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
void finish()
|
||||
void finish() override
|
||||
{
|
||||
reducer.finish(reduce, reducedResult);
|
||||
}
|
||||
|
||||
inline bool shouldThrottleThread()
|
||||
inline bool shouldThrottleThread() override
|
||||
{
|
||||
return IterateKernelType::shouldThrottleThread() || reducer.shouldThrottle();
|
||||
}
|
||||
|
||||
inline bool shouldStartThread()
|
||||
inline bool shouldStartThread() override
|
||||
{
|
||||
return IterateKernelType::shouldStartThread() && reducer.shouldStartThread();
|
||||
}
|
||||
|
||||
typedef ReducedResultType ReturnType;
|
||||
typedef ReducedResultType ResultType;
|
||||
ReducedResultType *result()
|
||||
ReducedResultType *result() override
|
||||
{
|
||||
return &reducedResult;
|
||||
}
|
||||
|
|
@ -255,14 +255,14 @@ public:
|
|||
: IterateKernelType(begin, end), keep(_keep)
|
||||
{ }
|
||||
|
||||
void start()
|
||||
void start() override
|
||||
{
|
||||
if (this->futureInterface)
|
||||
this->futureInterface->setFilterMode(true);
|
||||
IterateKernelType::start();
|
||||
}
|
||||
|
||||
bool runIteration(Iterator it, int index, T *)
|
||||
bool runIteration(Iterator it, int index, T *) override
|
||||
{
|
||||
if (keep(*it))
|
||||
this->reportResult(&(*it), index);
|
||||
|
|
@ -271,7 +271,7 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
bool runIterations(Iterator sequenceBeginIterator, int begin, int end, T *)
|
||||
bool runIterations(Iterator sequenceBeginIterator, int begin, int end, T *) override
|
||||
{
|
||||
const int count = end - begin;
|
||||
IntermediateResults<typename qValueType<Iterator>::value_type> results;
|
||||
|
|
|
|||
|
|
@ -197,14 +197,14 @@ public:
|
|||
virtual bool runIterations(Iterator _begin, int beginIndex, int endIndex, T *results)
|
||||
{ Q_UNUSED(_begin); Q_UNUSED(beginIndex); Q_UNUSED(endIndex); Q_UNUSED(results); return false; }
|
||||
|
||||
void start()
|
||||
void start() override
|
||||
{
|
||||
progressReportingEnabled = this->isProgressReportingEnabled();
|
||||
if (progressReportingEnabled && iterationCount > 0)
|
||||
this->setProgressRange(0, iterationCount);
|
||||
}
|
||||
|
||||
bool shouldStartThread()
|
||||
bool shouldStartThread() override
|
||||
{
|
||||
if (forIteration)
|
||||
return (currentIndex.load() < iterationCount) && !this->shouldThrottleThread();
|
||||
|
|
@ -212,7 +212,7 @@ public:
|
|||
return (iteratorThreads.load() == 0);
|
||||
}
|
||||
|
||||
ThreadFunctionResult threadFunction()
|
||||
ThreadFunctionResult threadFunction() override
|
||||
{
|
||||
if (forIteration)
|
||||
return this->forThreadFunction();
|
||||
|
|
|
|||
|
|
@ -64,13 +64,13 @@ public:
|
|||
: IterateKernel<Iterator, void>(begin, end), map(_map)
|
||||
{ }
|
||||
|
||||
bool runIteration(Iterator it, int, void *)
|
||||
bool runIteration(Iterator it, int, void *) override
|
||||
{
|
||||
map(*it);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool runIterations(Iterator sequenceBeginIterator, int beginIndex, int endIndex, void *)
|
||||
bool runIterations(Iterator sequenceBeginIterator, int beginIndex, int endIndex, void *) override
|
||||
{
|
||||
Iterator it = sequenceBeginIterator;
|
||||
std::advance(it, beginIndex);
|
||||
|
|
@ -108,7 +108,7 @@ public:
|
|||
: reducedResult(initialValue), map(_map), reduce(_reduce)
|
||||
{ }
|
||||
|
||||
bool runIteration(Iterator it, int index, ReducedResultType *)
|
||||
bool runIteration(Iterator it, int index, ReducedResultType *) override
|
||||
{
|
||||
IntermediateResults<typename MapFunctor::result_type> results;
|
||||
results.begin = index;
|
||||
|
|
@ -119,7 +119,7 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
bool runIterations(Iterator sequenceBeginIterator, int begin, int end, ReducedResultType *)
|
||||
bool runIterations(Iterator sequenceBeginIterator, int begin, int end, ReducedResultType *) override
|
||||
{
|
||||
IntermediateResults<typename MapFunctor::result_type> results;
|
||||
results.begin = begin;
|
||||
|
|
@ -137,23 +137,23 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
void finish()
|
||||
void finish() override
|
||||
{
|
||||
reducer.finish(reduce, reducedResult);
|
||||
}
|
||||
|
||||
bool shouldThrottleThread()
|
||||
bool shouldThrottleThread() override
|
||||
{
|
||||
return IterateKernel<Iterator, ReducedResultType>::shouldThrottleThread() || reducer.shouldThrottle();
|
||||
}
|
||||
|
||||
bool shouldStartThread()
|
||||
bool shouldStartThread() override
|
||||
{
|
||||
return IterateKernel<Iterator, ReducedResultType>::shouldStartThread() && reducer.shouldStartThread();
|
||||
}
|
||||
|
||||
typedef ReducedResultType ResultType;
|
||||
ReducedResultType *result()
|
||||
ReducedResultType *result() override
|
||||
{
|
||||
return &reducedResult;
|
||||
}
|
||||
|
|
@ -171,13 +171,13 @@ public:
|
|||
MappedEachKernel(Iterator begin, Iterator end, MapFunctor _map)
|
||||
: IterateKernel<Iterator, T>(begin, end), map(_map) { }
|
||||
|
||||
bool runIteration(Iterator it, int, T *result)
|
||||
bool runIteration(Iterator it, int, T *result) override
|
||||
{
|
||||
*result = map(*it);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool runIterations(Iterator sequenceBeginIterator, int begin, int end, T *results)
|
||||
bool runIterations(Iterator sequenceBeginIterator, int begin, int end, T *results) override
|
||||
{
|
||||
|
||||
Iterator it = sequenceBeginIterator;
|
||||
|
|
@ -216,7 +216,7 @@ struct SequenceHolder1 : public Base
|
|||
|
||||
Sequence sequence;
|
||||
|
||||
void finish()
|
||||
void finish() override
|
||||
{
|
||||
Base::finish();
|
||||
// Clear the sequence to make sure all temporaries are destroyed
|
||||
|
|
|
|||