Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable

This commit is contained in:
Frederik Gladhorn 2013-06-05 15:45:32 +02:00 committed by The Qt Project
commit 2dd7f02bb9
18 changed files with 215 additions and 114 deletions

View File

@ -14,8 +14,8 @@ TECHNOLOGY PREVIEW LICENSE AGREEMENT: The Americas
Agreement version 2.4
This Technology Preview License Agreement ("Agreement")is a legal agreement
between Digia USA, Inc. ("Digia"), with its registered office at 32 W.
Loockerman Street, Suite 201, City of Dover, County of Kent, Delaware 19904,
between Digia USA, Inc. ("Digia"), with its registered office at 2350
Mission College Blvd., Suite 1020, Santa Clara, California 95054,
U.S.A. and you (either an individual or a legal entity) ("Licensee") for the
Licensed Software (as defined below).

View File

@ -171,6 +171,30 @@ sub checkRelative {
return 1;
}
######################################################################
# Syntax: shouldMasterInclude(iheader)
# Params: iheader, string, filename to verify inclusion
#
# Purpose: Determines if header should be in the master include file.
# Returns: 0 if file contains "#pragma qt_no_master_include" or not
# able to open, else 1.
######################################################################
sub shouldMasterInclude {
my ($iheader) = @_;
return 0 if (basename($iheader) =~ /_/);
return 0 if (basename($iheader) =~ /qconfig/);
if (open(F, "<$iheader")) {
while (<F>) {
chomp;
return 0 if (/^\#pragma qt_no_master_include$/);
}
close(F);
} else {
return 0;
}
return 1;
}
######################################################################
# Syntax: classNames(iheader)
# Params: iheader, string, filename to parse for classname "symlinks"
@ -382,6 +406,32 @@ sub fileContents {
return $filecontents;
}
######################################################################
# Syntax: writeFile(filename, contents)
# Params: filename, string, filename of file to write
# contents, string, new contents for the file
#
# Purpose: Write file with given contents. If new contents match old
# ones, do no change the file's timestamp.
# Returns: 1 if the file's contents changed.
######################################################################
sub writeFile {
my ($filename, $contents, $lib, $what) = @_;
my $oldcontents = fileContents($filename);
$oldcontents =~ s/\r//g; # remove \r's , so comparison is ok on all platforms
if ($oldcontents ne $contents) {
open(O, "> " . $filename) || die "Could not open $filename for writing: $!\n";
print O $contents;
close O;
if ($lib && $verbose_level) {
my $action = ($oldcontents eq "") ? "created" : "updated";
print "$lib: $action $what\n";
}
return 1;
}
return 0;
}
######################################################################
# Syntax: fileCompare(file1, file2)
# Params: file1, string, filename of first file
@ -802,6 +852,12 @@ foreach my $lib (@modules_to_sync) {
my $pri_install_pfiles = "";
my $pri_install_qpafiles = "";
my $libcapitals = uc($lib);
my $master_contents =
"#ifndef QT_".$libcapitals."_MODULE_H\n" .
"#define QT_".$libcapitals."_MODULE_H\n" .
"#include <$lib/${lib}Depends>\n";
#remove the old files
if($remove_stale) {
my %injections = ();
@ -867,15 +923,8 @@ foreach my $lib (@modules_to_sync) {
#calc files and "copy" them
foreach my $subdir (@subdirs) {
my @headers = findFiles($subdir, "^[-a-z0-9_]*\\.h\$" , 0);
if (defined $inject_headers{$subdir}) {
foreach my $if (@{$inject_headers{$subdir}}) {
@headers = grep(!/^\Q$if\E$/, @headers); #in case we configure'd previously
push @headers, "*".$if;
}
}
my $header_dirname = "";
foreach my $header (@headers) {
my $shadow = ($header =~ s/^\*//);
$header = 0 if($header =~ /^ui_.*.h/);
foreach (@ignore_headers) {
$header = 0 if($header eq $_);
@ -897,7 +946,6 @@ foreach my $lib (@modules_to_sync) {
}
my $iheader = $subdir . "/" . $header;
$iheader =~ s/^\Q$basedir\E/$out_basedir/ if ($shadow);
my @classes = $public_header && !$minimal ? classNames($iheader) : ();
if($showonly) {
print "$header [$lib]\n";
@ -938,10 +986,13 @@ foreach my $lib (@modules_to_sync) {
}
foreach(@headers) { #sync them
$header_copies++ if(syncHeader($lib, $_, $iheader, $copy_headers && !$shadow, $ts));
$header_copies++ if (syncHeader($lib, $_, $iheader, $copy_headers, $ts));
}
if($public_header) {
#put it into the master file
$master_contents .= "#include \"$public_header\"\n" if (shouldMasterInclude($iheader));
#deal with the install directives
if($public_header) {
my $pri_install_iheader = fixPaths($iheader, $dir);
@ -1000,6 +1051,11 @@ foreach my $lib (@modules_to_sync) {
}
}
# close the master include:
$master_contents .=
"#include \"".lc($lib)."version.h\"\n" .
"#endif\n";
unless ($showonly || $minimal) {
# create deprecated headers
my $first = 1;
@ -1068,6 +1124,23 @@ foreach my $lib (@modules_to_sync) {
syncHeader($lib, $VHeader, $vheader, 0);
$pri_install_files .= fixPaths($vheader, $dir) . " ";
$pri_install_classes .= fixPaths($VHeader, $dir) . " ";
my @versions = split(/\./, $module_version);
my $modulehexstring = sprintf("0x%02X%02X%02X", $versions[0], $versions[1], $versions[2]);
my $vhdrcont =
"/* This file was generated by syncqt. */\n".
"#ifndef QT_".uc($lib)."_VERSION_H\n".
"#define QT_".uc($lib)."_VERSION_H\n".
"\n".
"#define ".uc($lib)."_VERSION_STR \"".$module_version."\"\n".
"\n".
"#define ".uc($lib)."_VERSION ".$modulehexstring."\n".
"\n".
"#endif // QT_".uc($lib)."_VERSION_H\n";
writeFile($vheader, $vhdrcont, $lib, "version header");
my $master_include = "$out_basedir/include/$lib/$lib";
$pri_install_files .= fixPaths($master_include, $dir) . " ";
writeFile($master_include, $master_contents, $lib, "master header");
#handle the headers.pri for each module
my $headers_pri_contents = "";
@ -1076,23 +1149,7 @@ foreach my $lib (@modules_to_sync) {
$headers_pri_contents .= "SYNCQT.PRIVATE_HEADER_FILES = $pri_install_pfiles\n";
$headers_pri_contents .= "SYNCQT.QPA_HEADER_FILES = $pri_install_qpafiles\n";
my $headers_pri_file = "$out_basedir/include/$lib/headers.pri";
if(-e $headers_pri_file) {
open HEADERS_PRI_FILE, "<$headers_pri_file";
local $/;
binmode HEADERS_PRI_FILE;
my $old_headers_pri_contents = <HEADERS_PRI_FILE>;
close HEADERS_PRI_FILE;
$old_headers_pri_contents =~ s/\r//g; # remove \r's , so comparison is ok on all platforms
$headers_pri_file = 0 if($old_headers_pri_contents eq $headers_pri_contents);
}
if($headers_pri_file) {
my $headers_pri_dir = dirname($headers_pri_file);
make_path($headers_pri_dir, $lib, $verbose_level);
open HEADERS_PRI_FILE, ">$headers_pri_file";
print HEADERS_PRI_FILE $headers_pri_contents;
close HEADERS_PRI_FILE;
print "$lib: created headers.pri file\n" if($verbose_level);
}
writeFile($headers_pri_file, $headers_pri_contents, $lib, "headers.pri file");
}
}
unless($showonly || !$create_uic_class_map) {

41
configure vendored
View File

@ -2389,13 +2389,6 @@ fi
if [ "$OPT_SHADOW" = "yes" ]; then
echo "Preparing build tree..."
if [ -z "$PERL" ]; then
echo
echo "You need perl in your PATH to make a shadow build."
echo "Cannot proceed."
exit 1
fi
[ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
# save a pre-existing mkspecs/modules dir
@ -3895,7 +3888,14 @@ fi
# -----------------------------------------------------------------------------
# symlink includes
if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt.pl" ]; then
if [ -e "$relpath/.git" ]; then
if [ -z "$PERL" ]; then
echo
echo "You need perl in your PATH to make a build from GIT."
echo "Cannot proceed."
exit 1
fi
"$relpath/bin/syncqt.pl" -minimal -module QtCore "$relpath" || exit 1
fi
@ -4028,6 +4028,11 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
echo "BUILD_PATH = $adjoutpath" >> "$mkfile"
echo "SOURCE_PATH = $adjrelpath" >> "$mkfile"
if [ -e "$relpath/.git" ]; then
echo 'INC_PATH = $(BUILD_PATH)/include' >> "$mkfile"
else
echo 'INC_PATH = $(SOURCE_PATH)/include' >> "$mkfile"
fi
echo "QMAKESPEC = $adjqmakespec" >> "$mkfile"
echo "QT_VERSION = $QT_VERSION" >> "$mkfile"
echo "EXTRA_CFLAGS = $EXTRA_CFLAGS" >> "$mkfile"
@ -6419,9 +6424,23 @@ else
[ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
chmod -w "$outpath/src/corelib/global/qconfig.h"
if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
fi
fi
# create a forwarding header
mkdir -p "$outpath/include/QtCore" || exit
echo '#include "../../src/corelib/global/qconfig.h"' > $outpath/include/QtCore/qconfig.h.new
if cmp -s "$outpath/include/QtCore/qconfig.h.new" "$outpath/include/QtCore/qconfig.h"; then
rm -f "$outpath/include/QtCore/qconfig.h.new"
else
mv "$outpath/include/QtCore/qconfig.h.new" "$outpath/include/QtCore/qconfig.h" || exit
fi
# create a camelcase forwarding header
echo '#include "qconfig.h"' > $outpath/include/QtCore/QtConfig.new
if cmp -s "$outpath/include/QtCore/QtConfig.new" "$outpath/include/QtCore/QtConfig"; then
rm -f "$outpath/include/QtCore/QtConfig.new"
else
mv "$outpath/include/QtCore/QtConfig.new" "$outpath/include/QtCore/QtConfig" || exit
fi
#-------------------------------------------------------------------------------

View File

@ -32,7 +32,7 @@
\brief This example demonstrates the usage of a tree view.
\brief The Dir View example shows a tree view onto the local filing system. It uses the
QDirModel class to provide file and directory information.
QFileSystemModel class to provide file and directory information.
\image dirview-example.png
*/

View File

@ -46,6 +46,12 @@ if exist "%frameworkdir%\%jarfile%" goto JarFileOk
if exist "%frameworkdir%\%jarfile%" goto JarFileOk
set "frameworkdir=%androidsdk%\framework"
if exist "%frameworkdir%\%jarfile%" goto JarFileOk
set "frameworkdir=%androidsdk%\build-tools\%ANDROID_BUILD_TOOLS_REVISION%\lib"
if exist "%frameworkdir%\%jarfile%" goto JarFileOk
set "frameworkdir=%androidsdk%\build-tools\17.0.0\lib"
:JarFileOk
set jarpath=%frameworkdir%\%jarfile%

View File

@ -16,6 +16,9 @@ isEmpty(MODULE_BASE_DIR): MODULE_BASE_DIR = $$MODULE_PROFILE_DIR
isEmpty(MODULE_BASE_OUTDIR): MODULE_BASE_OUTDIR = $$shadowed($$MODULE_BASE_DIR)
isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$MODULE_BASE_OUTDIR
exists($$MODULE_PROFILE_DIR/.git): \
CONFIG += git_build
!prefix_build {
QTDIR = $$[QT_HOST_PREFIX]
# Permit modules to enforce being built outside QTDIR ...

View File

@ -11,7 +11,7 @@
load(qt_build_paths)
!build_pass {
!build_pass:git_build {
qtPrepareTool(QMAKE_SYNCQT, syncqt)
minimal_syncqt {
QMAKE_SYNCQT += -minimal $$QMAKE_SYNCQT_OPTIONS
@ -29,66 +29,25 @@ load(qt_build_paths)
minimal_syncqt: return()
#load up the headers info
include($$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME/headers.pri, "", true)
lctarget = $$lower($$MODULE_INCNAME)
uctarget = $$upper($$MODULE_INCNAME)
defineTest(shouldMasterInclude) {
bn = $$basename(1)
contains(bn, .*_.*):return(false)
contains(bn, ^qconfig.*):return(false)
lines = $$cat($$_PRO_FILE_PWD_/$$1, lines)
contains(lines, $${LITERAL_HASH}pragma qt_no_master_include):return(false)
return(true)
}
git_build: \
INC_PATH = $$MODULE_BASE_OUTDIR
else: \
INC_PATH = $$MODULE_BASE_DIR
include($$INC_PATH/include/$$MODULE_INCNAME/headers.pri, "", true)
autogen_warning = \
"/* This file was generated by qmake with the info from <root>/$$relative_path($$_PRO_FILE_, $$MODULE_BASE_DIR). */"
# Create module version header
MODULE_VERSION_HEADER = $$find(SYNCQT.HEADER_FILES, (^|/)$${lctarget}version\\.h$)
count(MODULE_VERSION_HEADER, 1) {
MODULE_VERSION_HEADER = $$absolute_path($$MODULE_VERSION_HEADER, $$_PRO_FILE_PWD_)
!build_pass {
majorhexstr = $$format_number($$section(VERSION, ., 0, 0), width=2 zeropad obase=16)
minorhexstr = $$format_number($$section(VERSION, ., 1, 1), width=2 zeropad obase=16)
patchhexstr = $$format_number($$section(VERSION, ., 2, 2), width=2 zeropad obase=16)
modulehexstring = 0x$${majorhexstr}$${minorhexstr}$${patchhexstr}
MODULE_VERSION_HEADER_CONT = \
$$autogen_warning \
"$${LITERAL_HASH}ifndef QT_$${uctarget}_VERSION_H" \
"$${LITERAL_HASH}define QT_$${uctarget}_VERSION_H" \
"" \
"$${LITERAL_HASH}define $${uctarget}_VERSION_STR \"$$VERSION\"" \
"" \
"$${LITERAL_HASH}define $${uctarget}_VERSION $$modulehexstring" \
"" \
"$${LITERAL_HASH}endif // QT_$${uctarget}_VERSION_H"
write_file($$MODULE_VERSION_HEADER, MODULE_VERSION_HEADER_CONT)|error("Aborting.")
}
HEADERS += $$MODULE_VERSION_HEADER
}
# Create a module master header
MODULE_MASTER_HEADER = $$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME/$$MODULE_INCNAME
# Create a module master depends header
MODULE_MASTER_DEPS_HEADER = $$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME/$${MODULE_INCNAME}Depends
!build_pass {
MODULE_MASTER_HEADER_CONT = \
$$autogen_warning \
"$${LITERAL_HASH}ifndef QT_$${ucmodule}_MODULE_H" \
"$${LITERAL_HASH}define QT_$${ucmodule}_MODULE_H"
MODULE_MASTER_DEPS_HEADER_CONT = $$autogen_warning
for(dep, MODULE_DEPENDS) {
depname = $$eval(QT.$${dep}.name)
MODULE_MASTER_HEADER_CONT += "$${LITERAL_HASH}include <$$depname/$$depname>"
MODULE_MASTER_DEPS_HEADER_CONT += "$${LITERAL_HASH}include <$$depname/$$depname>"
}
for(hdr, SYNCQT.HEADER_FILES): \
shouldMasterInclude($$hdr): \
MODULE_MASTER_HEADER_CONT += "$${LITERAL_HASH}include \"$$replace(hdr, .*/, )\""
MODULE_MASTER_HEADER_CONT += "$${LITERAL_HASH}endif"
write_file($$MODULE_MASTER_HEADER, MODULE_MASTER_HEADER_CONT)|error("Aborting.")
write_file($$MODULE_MASTER_DEPS_HEADER, MODULE_MASTER_DEPS_HEADER_CONT)|error("Aborting.")
}
SYNCQT.HEADER_FILES += $$MODULE_MASTER_HEADER
SYNCQT.HEADER_FILES += $$MODULE_MASTER_DEPS_HEADER
CONFIG += qt_install_headers

View File

@ -52,9 +52,22 @@ else: \
else: \
module_config =
!no_module_headers:!minimal_syncqt {
MODULE_INCLUDES = "\$\$QT_MODULE_INCLUDE_BASE \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME"
MODULE_PRIVATE_INCLUDES = "\$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION \
\$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME"
MODULE_INCLUDES = \$\$QT_MODULE_INCLUDE_BASE \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME
MODULE_PRIVATE_INCLUDES = \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION \
\$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME
}
!git_build:if(!equals(_PRO_FILE_PWD_, $$OUT_PWD) \
|if(!prefix_build:!equals(MODULE_BASE_DIR, $$[QT_HOST_PREFIX]))) {
pub_inc = $$replace(MODULE_INCLUDES, ^\\\$\\\$QT_MODULE_INCLUDE_BASE, $$MODULE_BASE_DIR/include)
priv_inc = $$replace(MODULE_PRIVATE_INCLUDES, ^\\\$\\\$QT_MODULE_INCLUDE_BASE, $$MODULE_BASE_DIR/include)
force_independent {
MODULE_FWD_PRI_CONT_SUFFIX = \
"QT.$${MODULE}.includes += $$pub_inc" \
"QT.$${MODULE}.private_includes = $$priv_inc"
} else {
MODULE_INCLUDES += $$pub_inc
MODULE_PRIVATE_INCLUDES = $$priv_inc
}
}
MODULE_PRI_CONT = \
"QT.$${MODULE}.VERSION = $${VERSION}" \
@ -97,7 +110,8 @@ else: \
"QT_MODULE_HOST_LIB_BASE = $$MODULE_BASE_OUTDIR/lib" \
"QT_MODULE_LIBEXEC_BASE = $$MODULE_BASE_OUTDIR/libexec" \
"QT_MODULE_PLUGIN_BASE = $$MODULE_BASE_OUTDIR/plugins" \
"include($$MODULE_PRI)"
"include($$MODULE_PRI)" \
$$MODULE_FWD_PRI_CONT_SUFFIX
write_file($$MODULE_FWD_PRI, MODULE_FWD_PRI_CONT)|error("Aborting.")
touch($$MODULE_FWD_PRI, $$MODULE_PRI)
MODULE_PRI_FILES += $$MODULE_FWD_PRI

View File

@ -85,8 +85,8 @@ DEPEND_SRC = \
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$(BUILD_PATH)/include -I$(BUILD_PATH)/include/QtCore \
-I$(BUILD_PATH)/include/QtCore/$(QT_VERSION) -I$(BUILD_PATH)/include/QtCore/$(QT_VERSION)/QtCore \
-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 -DHAVE_QCONFIG_CPP \
-I$(QMAKESPEC) \
-I$(SOURCE_PATH)/tools/shared \

View File

@ -34,7 +34,7 @@ CFLAGS_BARE = -c -Fo./ \
-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$(BUILD_PATH)\include -I$(BUILD_PATH)\include\QtCore -I$(BUILD_PATH)\include\QtCore\$(QT_VERSION) -I$(BUILD_PATH)\include\QtCore\$(QT_VERSION)\QtCore \
-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 -DHAVE_QCONFIG_CPP \
-I$(SOURCE_PATH)\mkspecs\$(QMAKESPEC) \
-I$(SOURCE_PATH)\tools\shared \

View File

@ -29,6 +29,11 @@ SOURCES += \
# qlibraryinfo.cpp includes qconfig.cpp
INCLUDEPATH += $$QT_BUILD_TREE/src/corelib/global
# configure creates these, not syncqt, so we need to manually inject them
targ_headers.files += \
$$OUT_PWD/global/qconfig.h \
$$QT_BUILD_TREE/include/QtCore/QtConfig
# Only used on platforms with CONFIG += precompile_header
PRECOMPILED_HEADER = global/qt_pch.h

View File

@ -2527,7 +2527,7 @@ void QConfFileSettingsPrivate::ensureSectionParsed(QConfFile *confFile,
character in keys. In addition, if you save a top-level
setting (a key with no slashes in it, e.g., "someKey"), it
will appear in the INI file's "General" section. To avoid
overwriting other keys, if you save something using the a key
overwriting other keys, if you save something using a key
such as "General/someKey", the key will be located in the
"%General" section, \e not in the "General" section.

View File

@ -99,6 +99,7 @@ QSizeF QEglFSHooks::physicalScreenSize() const
struct fb_var_screeninfo vinfo;
int w = -1;
int h = -1;
QSize screenResolution;
if (framebuffer != -1) {
if (ioctl(framebuffer, FBIOGET_VSCREENINFO, &vinfo) == -1) {
@ -106,12 +107,15 @@ QSizeF QEglFSHooks::physicalScreenSize() const
} else {
w = vinfo.width;
h = vinfo.height;
screenResolution = QSize(vinfo.xres, vinfo.yres);
}
} else {
screenResolution = screenSize();
}
const int defaultPhysicalDpi = 100;
size.setWidth(w <= 0 ? vinfo.xres * Q_MM_PER_INCH / defaultPhysicalDpi : qreal(w));
size.setHeight(h <= 0 ? vinfo.yres * Q_MM_PER_INCH / defaultPhysicalDpi : qreal(h));
size.setWidth(w <= 0 ? screenResolution.width() * Q_MM_PER_INCH / defaultPhysicalDpi : qreal(w));
size.setHeight(h <= 0 ? screenResolution.height() * Q_MM_PER_INCH / defaultPhysicalDpi : qreal(h));
if (w <= 0 || h <= 0) {
qWarning("EGLFS: Unable to query physical screen size, defaulting to %d dpi.\n"

View File

@ -68,11 +68,11 @@ QEglFSWindow::~QEglFSWindow()
void QEglFSWindow::create()
{
setWindowState(Qt::WindowFullScreen);
if (m_window)
return;
setWindowState(Qt::WindowFullScreen);
if (window()->type() == Qt::Desktop) {
QRect rect(QPoint(), QEglFSHooks::hooks()->screenSize());
QPlatformWindow::setGeometry(rect);

View File

@ -1089,7 +1089,7 @@ QStringList Config::getFilesHere(const QString& uncleanDir,
const QSet<QString> &excludedDirs,
const QSet<QString> &excludedFiles)
{
QString dir = location.isEmpty() ? QDir::cleanPath(uncleanDir) : Location::canonicalRelativePath(uncleanDir);
QString dir = location.isEmpty() ? QDir::cleanPath(uncleanDir) : QDir(uncleanDir).canonicalPath();
QStringList result;
if (excludedDirs.contains(dir))
return result;

View File

@ -587,8 +587,8 @@ QT_CLASS_LIB(QFontDialog, QtWidgets, qfontdialog.h)
QT_CLASS_LIB(QInputDialog, QtWidgets, qinputdialog.h)
QT_CLASS_LIB(QMessageBox, QtWidgets, qmessagebox.h)
QT_CLASS_LIB(QPageSetupDialog, QtWidgets, qpagesetupdialog.h)
QT_CLASS_LIB(QPrintDialog, QtWidgets, qprintdialog.h)
QT_CLASS_LIB(QPrintPreviewDialog, QtWidgets, qprintpreviewdialog.h)
QT_CLASS_LIB(QPrintDialog, QtPrintSupport, qprintdialog.h)
QT_CLASS_LIB(QPrintPreviewDialog, QtPrintSupport, qprintpreviewdialog.h)
QT_CLASS_LIB(QProgressDialog, QtWidgets, qprogressdialog.h)
QT_CLASS_LIB(QWizard, QtWidgets, qwizard.h)
QT_CLASS_LIB(QWizardPage, QtWidgets, qwizard.h)
@ -944,7 +944,7 @@ QT_CLASS_LIB(QMenuBar, QtWidgets, qmenubar.h)
QT_CLASS_LIB(QMenuItem, QtWidgets, qmenudata.h)
QT_CLASS_LIB(QPlainTextEdit, QtWidgets, qplaintextedit.h)
QT_CLASS_LIB(QPlainTextDocumentLayout, QtWidgets, qplaintextedit.h)
QT_CLASS_LIB(QPrintPreviewWidget, QtWidgets, qprintpreviewwidget.h)
QT_CLASS_LIB(QPrintPreviewWidget, QtPrintSupport, qprintpreviewwidget.h)
QT_CLASS_LIB(QProgressBar, QtWidgets, qprogressbar.h)
QT_CLASS_LIB(QPushButton, QtWidgets, qpushbutton.h)
QT_CLASS_LIB(QRadioButton, QtWidgets, qradiobutton.h)

View File

@ -24,7 +24,6 @@
%classnames = (
"qglobal.h" => "QtGlobal",
"qendian.h" => "QtEndian",
"qconfig.h" => "QtConfig",
"qplugin.h" => "QtPlugin",
"qalgorithms.h" => "QtAlgorithms",
"qcontainerfwd.h" => "QtContainerFwd",

View File

@ -1841,7 +1841,7 @@ bool Configure::displayHelp()
desc("BUILD_QMAKE", "no", "-no-qmake", "Do not compile qmake.");
desc("BUILD_QMAKE", "yes", "-qmake", "Compile qmake.\n");
desc("PROCESS", "partial", "-process", "Generate top-level Makefiles/Project files.");
desc("PROCESS", "partial", "-process", "Generate only top-level Makefile.");
desc("PROCESS", "full", "-fully-process", "Generate Makefiles/Project files for the entire Qt\ntree.");
desc("PROCESS", "no", "-dont-process", "Do not generate Makefiles/Project files.\n");
@ -1987,7 +1987,7 @@ QString Configure::defaultTo(const QString &option)
return "auto";
if (option == "SYNCQT"
&& (!QFile::exists(sourcePath + "/bin/syncqt.pl")))
&& (!QFile::exists(sourcePath + "/.git")))
return "no";
// Do not actually build the examples in production builds with -prefix, unless requested
@ -3351,6 +3351,37 @@ void Configure::generateConfigfiles()
tmpFile.close();
}
QTemporaryFile tmpFile2;
if (tmpFile2.open()) {
tmpStream.setDevice(&tmpFile2);
tmpStream << "#include \"../../src/corelib/global/qconfig.h\"" << endl;
tmpStream.flush();
tmpFile2.flush();
outName = buildPath + "/include/QtCore/qconfig.h";
::SetFileAttributes((wchar_t*)outName.utf16(), FILE_ATTRIBUTE_NORMAL);
QFile::remove(outName);
tmpFile2.copy(outName);
tmpFile2.close();
}
QTemporaryFile tmpFile2a;
if (tmpFile2a.open()) {
tmpStream.setDevice(&tmpFile2a);
tmpStream << "#include \"qconfig.h\"" << endl;
tmpStream.flush();
tmpFile2a.flush();
outName = buildPath + "/include/QtCore/QtConfig";
::SetFileAttributes((wchar_t*)outName.utf16(), FILE_ATTRIBUTE_NORMAL);
QFile::remove(outName);
tmpFile2a.copy(outName);
tmpFile2a.close();
}
QTemporaryFile tmpFile3;
if (tmpFile3.open()) {
tmpStream.setDevice(&tmpFile3);
@ -3779,7 +3810,10 @@ void Configure::buildQmake()
QTextStream stream(&out);
stream << "#AutoGenerated by configure.exe" << endl
<< "BUILD_PATH = " << QDir::toNativeSeparators(buildPath) << endl
<< "SOURCE_PATH = " << QDir::toNativeSeparators(sourcePath) << endl;
<< "SOURCE_PATH = " << QDir::toNativeSeparators(sourcePath) << endl
<< "INC_PATH = " << QDir::toNativeSeparators(
(QFile::exists(sourcePath + "/.git") ? buildPath : sourcePath)
+ "/include") << endl;
stream << "QT_VERSION = " << dictionary["VERSION"] << endl;
if (dictionary[ "QMAKESPEC" ] == QString("win32-g++")) {
stream << "QMAKESPEC = $(SOURCE_PATH)\\mkspecs\\win32-g++" << endl
@ -3920,7 +3954,8 @@ void Configure::generateMakefiles()
{
QString dirName;
bool generate = true;
bool doDsp = (dictionary["VCPROJFILES"] == "yes");
bool doDsp = (dictionary["VCPROJFILES"] == "yes"
&& dictionary["PROCESS"] == "full");
while (generate) {
QString pwd = QDir::currentPath();
QString dirPath = buildPath + dirName;