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: Ibaabcc8e965c44926f9fb018466e8b132b8df49e
bb10
Liang Qi 2016-12-13 09:36:26 +01:00
commit 6755ec891a
514 changed files with 5934 additions and 4851 deletions

314
configure vendored
View File

@ -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"

View File

@ -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",

View File

@ -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)

221
dist/changes-5.7.1 vendored Normal file
View File

@ -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.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

@ -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"));

View File

@ -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);
}

View File

@ -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);

View File

@ -79,7 +79,7 @@ public:
{
}
virtual void resizeEvent(QResizeEvent *) override
void resizeEvent(QResizeEvent *) override
{
fitInView(sceneRect(), Qt::KeepAspectRatio);
}

View File

@ -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:

View File

@ -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);
}

View File

@ -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();

View File

@ -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;

View File

@ -86,7 +86,7 @@ public:
void updateBoatMovement();
virtual int type() const override;
int type() const override;
signals:
void boatDestroyed();

View File

@ -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;

View File

@ -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;
};

View File

@ -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; }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -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

View File

@ -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
*/

View File

@ -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.

View File

@ -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:

View File

@ -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

View File

@ -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.

View File

@ -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,

View File

@ -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

View File

@ -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

View File

@ -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
*/

View File

@ -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

View File

@ -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:

View File

@ -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.

View File

@ -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

View File

@ -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
*/

View File

@ -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.

View File

@ -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

View File

@ -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:

View File

@ -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);

View File

@ -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;
};

View File

@ -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);

View File

@ -50,10 +50,8 @@
#include "view.h"
#ifndef QT_NO_PRINTER
#include <QPrinter>
#include <QPrintDialog>
#endif
#ifndef QT_NO_OPENGL
#include <QtOpenGL>
#else

View File

@ -63,7 +63,7 @@ public:
}
protected:
virtual void resizeEvent(QResizeEvent *) override
void resizeEvent(QResizeEvent *) override
{
}
};

View File

@ -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());
}

View File

@ -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:

View File

@ -49,11 +49,7 @@
****************************************************************************/
#include <QtWidgets>
#ifndef QT_NO_PRINTER
#include <QPrinter>
#include <QPrintDialog>
#include <QPrintPreviewDialog>
#endif
#include "mainwindow.h"

View File

@ -52,6 +52,8 @@
#define MAINWINDOW_H
#include "ui_mainwindowbase.h"
#include <QPrinter>
#include <QPrintDialog>
QT_BEGIN_NAMESPACE
class QPrinter;

View File

@ -78,7 +78,7 @@ public slots:
void fileNew();
protected:
virtual void closeEvent(QCloseEvent *e) override;
void closeEvent(QCloseEvent *e) override;
private slots:
void fileOpen();

View File

@ -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());
}

View File

@ -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");

View File

@ -74,7 +74,7 @@ public slots:
void turnOn() { setOn(true); }
protected:
virtual void paintEvent(QPaintEvent *) override
void paintEvent(QPaintEvent *) override
{
if (!m_on)
return;

View File

@ -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)

View File

@ -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

View 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)

View File

@ -37,6 +37,8 @@ INSTALLS += target
load(qt_targets)
load(qt_common)
qtSetQmlPath()
no_launch_target: return()
load(resolve_target)

View File

@ -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

View File

@ -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 = ""

View File

@ -9,6 +9,9 @@
# We mean it.
#
contains(TEMPLATE, .*app): \
qtSetQmlPath()
contains(TEMPLATE, "vc.*"): return()
defineTest(addInstallFiles) {

View File

@ -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

View File

@ -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)

View File

@ -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"

View File

@ -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)

17
qmake/Makefile.unix.macos Normal file
View File

@ -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

27
qmake/Makefile.unix.mingw Normal file
View File

@ -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

11
qmake/Makefile.unix.unix Normal file
View File

@ -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

21
qmake/Makefile.unix.win32 Normal file
View File

@ -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

View File

@ -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) $<

View File

@ -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}

View File

@ -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"));

View File

@ -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"))

View File

@ -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"))

View File

@ -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

View File

@ -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();
}

View File

@ -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;

View File

@ -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;

View File

@ -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)

View File

@ -27,7 +27,6 @@ INCLUDEPATH += . \
generators/unix \
generators/win32 \
generators/mac \
generators/integrity \
../tools/shared
include(qmake.pri)

View File

@ -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.",

View File

@ -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

View File

@ -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"
}

View File

@ -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"
}

View File

@ -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",

View File

@ -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;

View File

@ -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();

View File

@ -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

Some files were not shown because too many files have changed in this diff Show More