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 Agreement version 2.4
This Technology Preview License Agreement ("Agreement")is a legal agreement This Technology Preview License Agreement ("Agreement")is a legal agreement
between Digia USA, Inc. ("Digia"), with its registered office at 32 W. between Digia USA, Inc. ("Digia"), with its registered office at 2350
Loockerman Street, Suite 201, City of Dover, County of Kent, Delaware 19904, Mission College Blvd., Suite 1020, Santa Clara, California 95054,
U.S.A. and you (either an individual or a legal entity) ("Licensee") for the U.S.A. and you (either an individual or a legal entity) ("Licensee") for the
Licensed Software (as defined below). Licensed Software (as defined below).

View File

@ -171,6 +171,30 @@ sub checkRelative {
return 1; 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) # Syntax: classNames(iheader)
# Params: iheader, string, filename to parse for classname "symlinks" # Params: iheader, string, filename to parse for classname "symlinks"
@ -382,6 +406,32 @@ sub fileContents {
return $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) # Syntax: fileCompare(file1, file2)
# Params: file1, string, filename of first file # Params: file1, string, filename of first file
@ -802,6 +852,12 @@ foreach my $lib (@modules_to_sync) {
my $pri_install_pfiles = ""; my $pri_install_pfiles = "";
my $pri_install_qpafiles = ""; 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 #remove the old files
if($remove_stale) { if($remove_stale) {
my %injections = (); my %injections = ();
@ -867,15 +923,8 @@ foreach my $lib (@modules_to_sync) {
#calc files and "copy" them #calc files and "copy" them
foreach my $subdir (@subdirs) { foreach my $subdir (@subdirs) {
my @headers = findFiles($subdir, "^[-a-z0-9_]*\\.h\$" , 0); 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 = ""; my $header_dirname = "";
foreach my $header (@headers) { foreach my $header (@headers) {
my $shadow = ($header =~ s/^\*//);
$header = 0 if($header =~ /^ui_.*.h/); $header = 0 if($header =~ /^ui_.*.h/);
foreach (@ignore_headers) { foreach (@ignore_headers) {
$header = 0 if($header eq $_); $header = 0 if($header eq $_);
@ -897,7 +946,6 @@ foreach my $lib (@modules_to_sync) {
} }
my $iheader = $subdir . "/" . $header; my $iheader = $subdir . "/" . $header;
$iheader =~ s/^\Q$basedir\E/$out_basedir/ if ($shadow);
my @classes = $public_header && !$minimal ? classNames($iheader) : (); my @classes = $public_header && !$minimal ? classNames($iheader) : ();
if($showonly) { if($showonly) {
print "$header [$lib]\n"; print "$header [$lib]\n";
@ -938,10 +986,13 @@ foreach my $lib (@modules_to_sync) {
} }
foreach(@headers) { #sync them 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) { if($public_header) {
#put it into the master file
$master_contents .= "#include \"$public_header\"\n" if (shouldMasterInclude($iheader));
#deal with the install directives #deal with the install directives
if($public_header) { if($public_header) {
my $pri_install_iheader = fixPaths($iheader, $dir); 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) { unless ($showonly || $minimal) {
# create deprecated headers # create deprecated headers
my $first = 1; my $first = 1;
@ -1068,6 +1124,23 @@ foreach my $lib (@modules_to_sync) {
syncHeader($lib, $VHeader, $vheader, 0); syncHeader($lib, $VHeader, $vheader, 0);
$pri_install_files .= fixPaths($vheader, $dir) . " "; $pri_install_files .= fixPaths($vheader, $dir) . " ";
$pri_install_classes .= 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 #handle the headers.pri for each module
my $headers_pri_contents = ""; 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.PRIVATE_HEADER_FILES = $pri_install_pfiles\n";
$headers_pri_contents .= "SYNCQT.QPA_HEADER_FILES = $pri_install_qpafiles\n"; $headers_pri_contents .= "SYNCQT.QPA_HEADER_FILES = $pri_install_qpafiles\n";
my $headers_pri_file = "$out_basedir/include/$lib/headers.pri"; my $headers_pri_file = "$out_basedir/include/$lib/headers.pri";
if(-e $headers_pri_file) { writeFile($headers_pri_file, $headers_pri_contents, $lib, "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);
}
} }
} }
unless($showonly || !$create_uic_class_map) { unless($showonly || !$create_uic_class_map) {

41
configure vendored
View File

@ -2389,13 +2389,6 @@ fi
if [ "$OPT_SHADOW" = "yes" ]; then if [ "$OPT_SHADOW" = "yes" ]; then
echo "Preparing build tree..." 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" [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
# save a pre-existing mkspecs/modules dir # save a pre-existing mkspecs/modules dir
@ -3895,7 +3888,14 @@ fi
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# symlink includes # 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 "$relpath/bin/syncqt.pl" -minimal -module QtCore "$relpath" || exit 1
fi fi
@ -4028,6 +4028,11 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
echo "BUILD_PATH = $adjoutpath" >> "$mkfile" echo "BUILD_PATH = $adjoutpath" >> "$mkfile"
echo "SOURCE_PATH = $adjrelpath" >> "$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 "QMAKESPEC = $adjqmakespec" >> "$mkfile"
echo "QT_VERSION = $QT_VERSION" >> "$mkfile" echo "QT_VERSION = $QT_VERSION" >> "$mkfile"
echo "EXTRA_CFLAGS = $EXTRA_CFLAGS" >> "$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" [ -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" mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
chmod -w "$outpath/src/corelib/global/qconfig.h" chmod -w "$outpath/src/corelib/global/qconfig.h"
if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then fi
ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
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 fi
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------

View File

@ -32,7 +32,7 @@
\brief This example demonstrates the usage of a tree view. \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 \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 \image dirview-example.png
*/ */

View File

@ -46,6 +46,12 @@ if exist "%frameworkdir%\%jarfile%" goto JarFileOk
if exist "%frameworkdir%\%jarfile%" goto JarFileOk if exist "%frameworkdir%\%jarfile%" goto JarFileOk
set "frameworkdir=%androidsdk%\framework" 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 :JarFileOk
set jarpath=%frameworkdir%\%jarfile% 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_BASE_OUTDIR): MODULE_BASE_OUTDIR = $$shadowed($$MODULE_BASE_DIR)
isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$MODULE_BASE_OUTDIR isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$MODULE_BASE_OUTDIR
exists($$MODULE_PROFILE_DIR/.git): \
CONFIG += git_build
!prefix_build { !prefix_build {
QTDIR = $$[QT_HOST_PREFIX] QTDIR = $$[QT_HOST_PREFIX]
# Permit modules to enforce being built outside QTDIR ... # Permit modules to enforce being built outside QTDIR ...

View File

@ -11,7 +11,7 @@
load(qt_build_paths) load(qt_build_paths)
!build_pass { !build_pass:git_build {
qtPrepareTool(QMAKE_SYNCQT, syncqt) qtPrepareTool(QMAKE_SYNCQT, syncqt)
minimal_syncqt { minimal_syncqt {
QMAKE_SYNCQT += -minimal $$QMAKE_SYNCQT_OPTIONS QMAKE_SYNCQT += -minimal $$QMAKE_SYNCQT_OPTIONS
@ -29,66 +29,25 @@ load(qt_build_paths)
minimal_syncqt: return() minimal_syncqt: return()
#load up the headers info #load up the headers info
include($$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME/headers.pri, "", true) git_build: \
INC_PATH = $$MODULE_BASE_OUTDIR
lctarget = $$lower($$MODULE_INCNAME) else: \
uctarget = $$upper($$MODULE_INCNAME) INC_PATH = $$MODULE_BASE_DIR
include($$INC_PATH/include/$$MODULE_INCNAME/headers.pri, "", true)
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)
}
autogen_warning = \ autogen_warning = \
"/* This file was generated by qmake with the info from <root>/$$relative_path($$_PRO_FILE_, $$MODULE_BASE_DIR). */" "/* This file was generated by qmake with the info from <root>/$$relative_path($$_PRO_FILE_, $$MODULE_BASE_DIR). */"
# Create module version header # Create a module master depends header
MODULE_VERSION_HEADER = $$find(SYNCQT.HEADER_FILES, (^|/)$${lctarget}version\\.h$) MODULE_MASTER_DEPS_HEADER = $$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME/$${MODULE_INCNAME}Depends
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
!build_pass { !build_pass {
MODULE_MASTER_HEADER_CONT = \ MODULE_MASTER_DEPS_HEADER_CONT = $$autogen_warning
$$autogen_warning \
"$${LITERAL_HASH}ifndef QT_$${ucmodule}_MODULE_H" \
"$${LITERAL_HASH}define QT_$${ucmodule}_MODULE_H"
for(dep, MODULE_DEPENDS) { for(dep, MODULE_DEPENDS) {
depname = $$eval(QT.$${dep}.name) 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): \ write_file($$MODULE_MASTER_DEPS_HEADER, MODULE_MASTER_DEPS_HEADER_CONT)|error("Aborting.")
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.")
} }
SYNCQT.HEADER_FILES += $$MODULE_MASTER_HEADER SYNCQT.HEADER_FILES += $$MODULE_MASTER_DEPS_HEADER
CONFIG += qt_install_headers CONFIG += qt_install_headers

View File

@ -52,9 +52,22 @@ else: \
else: \ else: \
module_config = module_config =
!no_module_headers:!minimal_syncqt { !no_module_headers:!minimal_syncqt {
MODULE_INCLUDES = "\$\$QT_MODULE_INCLUDE_BASE \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME" MODULE_INCLUDES = \$\$QT_MODULE_INCLUDE_BASE \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME
MODULE_PRIVATE_INCLUDES = "\$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION \ MODULE_PRIVATE_INCLUDES = \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION \
\$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME" \$\$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 = \ MODULE_PRI_CONT = \
"QT.$${MODULE}.VERSION = $${VERSION}" \ "QT.$${MODULE}.VERSION = $${VERSION}" \
@ -97,7 +110,8 @@ else: \
"QT_MODULE_HOST_LIB_BASE = $$MODULE_BASE_OUTDIR/lib" \ "QT_MODULE_HOST_LIB_BASE = $$MODULE_BASE_OUTDIR/lib" \
"QT_MODULE_LIBEXEC_BASE = $$MODULE_BASE_OUTDIR/libexec" \ "QT_MODULE_LIBEXEC_BASE = $$MODULE_BASE_OUTDIR/libexec" \
"QT_MODULE_PLUGIN_BASE = $$MODULE_BASE_OUTDIR/plugins" \ "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.") write_file($$MODULE_FWD_PRI, MODULE_FWD_PRI_CONT)|error("Aborting.")
touch($$MODULE_FWD_PRI, $$MODULE_PRI) touch($$MODULE_FWD_PRI, $$MODULE_PRI)
MODULE_PRI_FILES += $$MODULE_FWD_PRI MODULE_PRI_FILES += $$MODULE_FWD_PRI

View File

@ -85,8 +85,8 @@ DEPEND_SRC = \
CPPFLAGS = -g $(EXTRA_CPPFLAGS) \ CPPFLAGS = -g $(EXTRA_CPPFLAGS) \
-I$(QMKSRC) -I$(QMKLIBSRC) -I$(QMKSRC)/generators -I$(QMKSRC)/generators/unix -I$(QMKSRC)/generators/win32 \ -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$(QMKSRC)/generators/integrity \
-I$(BUILD_PATH)/include -I$(BUILD_PATH)/include/QtCore \ -I$(INC_PATH) -I$(INC_PATH)/QtCore \
-I$(BUILD_PATH)/include/QtCore/$(QT_VERSION) -I$(BUILD_PATH)/include/QtCore/$(QT_VERSION)/QtCore \ -I$(INC_PATH)/QtCore/$(QT_VERSION) -I$(INC_PATH)/QtCore/$(QT_VERSION)/QtCore \
-I$(BUILD_PATH)/src/corelib/global -DHAVE_QCONFIG_CPP \ -I$(BUILD_PATH)/src/corelib/global -DHAVE_QCONFIG_CPP \
-I$(QMAKESPEC) \ -I$(QMAKESPEC) \
-I$(SOURCE_PATH)/tools/shared \ -I$(SOURCE_PATH)/tools/shared \

View File

@ -34,7 +34,7 @@ CFLAGS_BARE = -c -Fo./ \
-W3 -nologo -O1 \ -W3 -nologo -O1 \
$(CFLAGS_EXTRA) \ $(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$(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$(BUILD_PATH)\src\corelib\global -DHAVE_QCONFIG_CPP \
-I$(SOURCE_PATH)\mkspecs\$(QMAKESPEC) \ -I$(SOURCE_PATH)\mkspecs\$(QMAKESPEC) \
-I$(SOURCE_PATH)\tools\shared \ -I$(SOURCE_PATH)\tools\shared \

View File

@ -29,6 +29,11 @@ SOURCES += \
# qlibraryinfo.cpp includes qconfig.cpp # qlibraryinfo.cpp includes qconfig.cpp
INCLUDEPATH += $$QT_BUILD_TREE/src/corelib/global 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 # Only used on platforms with CONFIG += precompile_header
PRECOMPILED_HEADER = global/qt_pch.h 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 character in keys. In addition, if you save a top-level
setting (a key with no slashes in it, e.g., "someKey"), it setting (a key with no slashes in it, e.g., "someKey"), it
will appear in the INI file's "General" section. To avoid 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 such as "General/someKey", the key will be located in the
"%General" section, \e not in the "General" section. "%General" section, \e not in the "General" section.

View File

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

View File

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

View File

@ -1089,7 +1089,7 @@ QStringList Config::getFilesHere(const QString& uncleanDir,
const QSet<QString> &excludedDirs, const QSet<QString> &excludedDirs,
const QSet<QString> &excludedFiles) 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; QStringList result;
if (excludedDirs.contains(dir)) if (excludedDirs.contains(dir))
return result; 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(QInputDialog, QtWidgets, qinputdialog.h)
QT_CLASS_LIB(QMessageBox, QtWidgets, qmessagebox.h) QT_CLASS_LIB(QMessageBox, QtWidgets, qmessagebox.h)
QT_CLASS_LIB(QPageSetupDialog, QtWidgets, qpagesetupdialog.h) QT_CLASS_LIB(QPageSetupDialog, QtWidgets, qpagesetupdialog.h)
QT_CLASS_LIB(QPrintDialog, QtWidgets, qprintdialog.h) QT_CLASS_LIB(QPrintDialog, QtPrintSupport, qprintdialog.h)
QT_CLASS_LIB(QPrintPreviewDialog, QtWidgets, qprintpreviewdialog.h) QT_CLASS_LIB(QPrintPreviewDialog, QtPrintSupport, qprintpreviewdialog.h)
QT_CLASS_LIB(QProgressDialog, QtWidgets, qprogressdialog.h) QT_CLASS_LIB(QProgressDialog, QtWidgets, qprogressdialog.h)
QT_CLASS_LIB(QWizard, QtWidgets, qwizard.h) QT_CLASS_LIB(QWizard, QtWidgets, qwizard.h)
QT_CLASS_LIB(QWizardPage, 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(QMenuItem, QtWidgets, qmenudata.h)
QT_CLASS_LIB(QPlainTextEdit, QtWidgets, qplaintextedit.h) QT_CLASS_LIB(QPlainTextEdit, QtWidgets, qplaintextedit.h)
QT_CLASS_LIB(QPlainTextDocumentLayout, 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(QProgressBar, QtWidgets, qprogressbar.h)
QT_CLASS_LIB(QPushButton, QtWidgets, qpushbutton.h) QT_CLASS_LIB(QPushButton, QtWidgets, qpushbutton.h)
QT_CLASS_LIB(QRadioButton, QtWidgets, qradiobutton.h) QT_CLASS_LIB(QRadioButton, QtWidgets, qradiobutton.h)

View File

@ -24,7 +24,6 @@
%classnames = ( %classnames = (
"qglobal.h" => "QtGlobal", "qglobal.h" => "QtGlobal",
"qendian.h" => "QtEndian", "qendian.h" => "QtEndian",
"qconfig.h" => "QtConfig",
"qplugin.h" => "QtPlugin", "qplugin.h" => "QtPlugin",
"qalgorithms.h" => "QtAlgorithms", "qalgorithms.h" => "QtAlgorithms",
"qcontainerfwd.h" => "QtContainerFwd", "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", "no", "-no-qmake", "Do not compile qmake.");
desc("BUILD_QMAKE", "yes", "-qmake", "Compile qmake.\n"); 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", "full", "-fully-process", "Generate Makefiles/Project files for the entire Qt\ntree.");
desc("PROCESS", "no", "-dont-process", "Do not generate Makefiles/Project files.\n"); desc("PROCESS", "no", "-dont-process", "Do not generate Makefiles/Project files.\n");
@ -1987,7 +1987,7 @@ QString Configure::defaultTo(const QString &option)
return "auto"; return "auto";
if (option == "SYNCQT" if (option == "SYNCQT"
&& (!QFile::exists(sourcePath + "/bin/syncqt.pl"))) && (!QFile::exists(sourcePath + "/.git")))
return "no"; return "no";
// Do not actually build the examples in production builds with -prefix, unless requested // Do not actually build the examples in production builds with -prefix, unless requested
@ -3351,6 +3351,37 @@ void Configure::generateConfigfiles()
tmpFile.close(); 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; QTemporaryFile tmpFile3;
if (tmpFile3.open()) { if (tmpFile3.open()) {
tmpStream.setDevice(&tmpFile3); tmpStream.setDevice(&tmpFile3);
@ -3779,7 +3810,10 @@ void Configure::buildQmake()
QTextStream stream(&out); QTextStream stream(&out);
stream << "#AutoGenerated by configure.exe" << endl stream << "#AutoGenerated by configure.exe" << endl
<< "BUILD_PATH = " << QDir::toNativeSeparators(buildPath) << 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; stream << "QT_VERSION = " << dictionary["VERSION"] << endl;
if (dictionary[ "QMAKESPEC" ] == QString("win32-g++")) { if (dictionary[ "QMAKESPEC" ] == QString("win32-g++")) {
stream << "QMAKESPEC = $(SOURCE_PATH)\\mkspecs\\win32-g++" << endl stream << "QMAKESPEC = $(SOURCE_PATH)\\mkspecs\\win32-g++" << endl
@ -3920,7 +3954,8 @@ void Configure::generateMakefiles()
{ {
QString dirName; QString dirName;
bool generate = true; bool generate = true;
bool doDsp = (dictionary["VCPROJFILES"] == "yes"); bool doDsp = (dictionary["VCPROJFILES"] == "yes"
&& dictionary["PROCESS"] == "full");
while (generate) { while (generate) {
QString pwd = QDir::currentPath(); QString pwd = QDir::currentPath();
QString dirPath = buildPath + dirName; QString dirPath = buildPath + dirName;