mirror of
git://code.qt.io/qt/qt5.git
synced 2026-01-05 06:26:50 +08:00
Compare commits
84 Commits
v5.4.0-alp
...
5.4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f2ff8b460 | ||
|
|
0d60d720f8 | ||
|
|
00defc7101 | ||
|
|
4a5968ce75 | ||
|
|
843a3407f2 | ||
|
|
5400507252 | ||
|
|
210493d641 | ||
|
|
670466b6a3 | ||
|
|
07856d73e1 | ||
|
|
dfffbfdc26 | ||
|
|
b62714f88c | ||
|
|
24f1b3219d | ||
|
|
f7cb995d04 | ||
|
|
11963ba9f0 | ||
|
|
39ce0228da | ||
|
|
95bb29e243 | ||
|
|
68b5c48282 | ||
|
|
451f0a193b | ||
|
|
59e3021a52 | ||
|
|
ac6168c0cb | ||
|
|
e3cd5bb368 | ||
|
|
be35b9f9af | ||
|
|
0badf61792 | ||
|
|
98737b388b | ||
|
|
9fb1a2e12f | ||
|
|
b71478c424 | ||
|
|
dc93c0d4d7 | ||
|
|
34c7caab3f | ||
|
|
9ebad7830d | ||
|
|
1ad0a17fa0 | ||
|
|
d553fc4fa9 | ||
|
|
b236ef6aef | ||
|
|
81efb6de3c | ||
|
|
ef1f126ddc | ||
|
|
c3a6185b7e | ||
|
|
0163cb617a | ||
|
|
9ca0c52513 | ||
|
|
3439140073 | ||
|
|
1998742cea | ||
|
|
a68a6b964f | ||
|
|
663f814c24 | ||
|
|
b1885ea725 | ||
|
|
6040cb2ff5 | ||
|
|
338ee26271 | ||
|
|
77f387bc89 | ||
|
|
968f8a2a5e | ||
|
|
7c0bc23056 | ||
|
|
4b19950128 | ||
|
|
96d903eec0 | ||
|
|
38cfc8ec95 | ||
|
|
402bf7aec2 | ||
|
|
8f35cb2886 | ||
|
|
d5946d420f | ||
|
|
e8053418e4 | ||
|
|
cafd720586 | ||
|
|
201b4c135a | ||
|
|
00a3c36bc1 | ||
|
|
ca7018cd4f | ||
|
|
00e3f00b79 | ||
|
|
a87766e218 | ||
|
|
b54838f4a5 | ||
|
|
18cc387deb | ||
|
|
86f7d9ce98 | ||
|
|
cd12d1f202 | ||
|
|
3f0739b279 | ||
|
|
d8a40d6570 | ||
|
|
2f80b640ab | ||
|
|
b927255703 | ||
|
|
361f771ae6 | ||
|
|
d063e757b1 | ||
|
|
e6af514f71 | ||
|
|
597bb62d2b | ||
|
|
0af9ceef91 | ||
|
|
934651b766 | ||
|
|
836f00a76e | ||
|
|
6ab23f16f5 | ||
|
|
485f5f3776 | ||
|
|
4553d9ec11 | ||
|
|
3ade7c4567 | ||
|
|
93f173b3c5 | ||
|
|
b2e577904b | ||
|
|
919c0332ff | ||
|
|
1e275c54ea | ||
|
|
1ae0689829 |
@@ -14,7 +14,7 @@
|
||||
#
|
||||
# ==[ Please wrap at 72 characters ]===================================|
|
||||
#
|
||||
# Remember to read http://wiki.qt-project.org/Commit_Policy
|
||||
# Remember to read http://wiki.qt.io/Commit_Policy
|
||||
#
|
||||
# Change log entry: If this commit adds a significant feature, fixes an
|
||||
# issue or contains a behavior change that is relevant to others,
|
||||
|
||||
70
.gitmodules
vendored
70
.gitmodules
vendored
@@ -1,111 +1,175 @@
|
||||
[submodule "qtbase"]
|
||||
path = qtbase
|
||||
url = ../qtbase.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtsvg"]
|
||||
path = qtsvg
|
||||
url = ../qtsvg.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtdeclarative"]
|
||||
path = qtdeclarative
|
||||
url = ../qtdeclarative.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtactiveqt"]
|
||||
path = qtactiveqt
|
||||
url = ../qtactiveqt.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtscript"]
|
||||
path = qtscript
|
||||
url = ../qtscript.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtmultimedia"]
|
||||
path = qtmultimedia
|
||||
url = ../qtmultimedia.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qttools"]
|
||||
path = qttools
|
||||
url = ../qttools.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtxmlpatterns"]
|
||||
path = qtxmlpatterns
|
||||
url = ../qtxmlpatterns.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qttranslations"]
|
||||
path = qttranslations
|
||||
url = ../qttranslations.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtdoc"]
|
||||
path = qtdoc
|
||||
url = ../qtdoc.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtrepotools"]
|
||||
path = qtrepotools
|
||||
url = ../qtrepotools.git
|
||||
branch = master
|
||||
initrepo = true
|
||||
[submodule "qtwebkit"]
|
||||
path = qtwebkit
|
||||
url = ../qtwebkit.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtwebkit-examples"]
|
||||
path = qtwebkit-examples
|
||||
url = ../qtwebkit-examples.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtqa"]
|
||||
path = qtqa
|
||||
url = ../qtqa.git
|
||||
branch = master
|
||||
initrepo = true
|
||||
[submodule "qtlocation"]
|
||||
path = qtlocation
|
||||
url = ../qtlocation.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtsensors"]
|
||||
path = qtsensors
|
||||
url = ../qtsensors.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtsystems"]
|
||||
path = qtsystems
|
||||
url = ../qtsystems.git
|
||||
branch = dev
|
||||
[submodule "qtfeedback"]
|
||||
path = qtfeedback
|
||||
url = ../qtfeedback.git
|
||||
branch = master
|
||||
[submodule "qtdocgallery"]
|
||||
path = qtdocgallery
|
||||
url = ../qtdocgallery.git
|
||||
branch = master
|
||||
[submodule "qtpim"]
|
||||
path = qtpim
|
||||
url = ../qtpim.git
|
||||
branch = dev
|
||||
[submodule "qtconnectivity"]
|
||||
path = qtconnectivity
|
||||
url = ../qtconnectivity.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtwayland"]
|
||||
path = qtwayland
|
||||
url = ../qtwayland.git
|
||||
[submodule "qtjsondb"]
|
||||
path = qtjsondb
|
||||
url = ../qtjsondb.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qt3d"]
|
||||
path = qt3d
|
||||
url = ../qt3d.git
|
||||
branch = dev
|
||||
[submodule "qtimageformats"]
|
||||
path = qtimageformats
|
||||
url = ../qtimageformats.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtquick1"]
|
||||
path = qtquick1
|
||||
url = ../qtquick1.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtgraphicaleffects"]
|
||||
path = qtgraphicaleffects
|
||||
url = ../qtgraphicaleffects.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtquickcontrols"]
|
||||
path = qtquickcontrols
|
||||
url = ../qtquickcontrols.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtserialport"]
|
||||
path = qtserialport
|
||||
url = ../qtserialport.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtx11extras"]
|
||||
path = qtx11extras
|
||||
url = ../qtx11extras.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtmacextras"]
|
||||
path = qtmacextras
|
||||
url = ../qtmacextras.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtwinextras"]
|
||||
path = qtwinextras
|
||||
url = ../qtwinextras.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtandroidextras"]
|
||||
path = qtandroidextras
|
||||
url = ../qtandroidextras.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtenginio"]
|
||||
path = qtenginio
|
||||
url = ../qtenginio.git
|
||||
branch = 1.1
|
||||
initrepo = true
|
||||
[submodule "qtwebsockets"]
|
||||
path = qtwebsockets
|
||||
url = ../qtwebsockets.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtwebchannel"]
|
||||
path = qtwebchannel
|
||||
url = ../qtwebchannel.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
[submodule "qtwebengine"]
|
||||
path = qtwebengine
|
||||
url = ../qtwebengine.git
|
||||
branch = 5.4
|
||||
initrepo = true
|
||||
|
||||
8
README
8
README
@@ -14,7 +14,7 @@ HOW TO BUILD QT5
|
||||
|
||||
For other platform specific requirements,
|
||||
please see section "Setting up your machine" on:
|
||||
http://qt-project.org/wiki/Get_The_Source
|
||||
http://wiki.qt.io/Get_The_Source
|
||||
|
||||
Optional requirements
|
||||
---------------------
|
||||
@@ -119,9 +119,9 @@ HOW TO BUILD QT5
|
||||
|
||||
Building Qt5 from git
|
||||
=====================
|
||||
See http://qt-project.org/wiki/Building-Qt-5-from-Git and README.git
|
||||
See http://wiki.qt.io/Building_Qt_5_from_Git and README.git
|
||||
for more information.
|
||||
See http://qt-project.org/wiki/Qt-5 for the reference platforms.
|
||||
See http://wiki.qt.io/Qt_5 for the reference platforms.
|
||||
|
||||
|
||||
Documentation
|
||||
@@ -139,6 +139,6 @@ HOW TO BUILD QT5
|
||||
Running "qmake -query" will list the value of QT_INSTALL_DOCS.
|
||||
|
||||
Information about Qt 5's documentation is located in qtbase/doc/README
|
||||
or in the following page: http://qt-project.org/wiki/Qt5DocumentationProject
|
||||
or in the following page: http://wiki.qt.io/Qt5DocumentationProject
|
||||
|
||||
Note: Building the documentation is only tested on desktop platforms.
|
||||
|
||||
@@ -5,7 +5,7 @@ OBTAINING QT5 FROM GIT
|
||||
========
|
||||
|
||||
For a more in-depth description on how to build Qt5 from git,
|
||||
please see: http://qt-project.org/wiki/Building-Qt-5-from-Git
|
||||
please see: http://wiki.qt.io/Building_Qt_5_from_Git
|
||||
|
||||
|
||||
Get The Submodules
|
||||
@@ -52,4 +52,4 @@ OBTAINING QT5 FROM GIT
|
||||
================================
|
||||
|
||||
For more information on how to develop and contribute to Qt, please see:
|
||||
http://qt-project.org/wiki/Category:Developing_Qt
|
||||
http://wiki.qt.io/Category:Developing_Qt
|
||||
|
||||
367
init-repository
367
init-repository
@@ -99,11 +99,18 @@ Only initialize the specified subset of modules given as the argument. Specified
|
||||
modules must already exist in .gitmodules.
|
||||
The string "all" results in cloning all known modules. The default is the set of
|
||||
maintained modules.
|
||||
Module names may be prefixed with a dash to exclude them from a bigger set.
|
||||
|
||||
=item --no-update
|
||||
|
||||
Skip the `git submodule update' command.
|
||||
|
||||
=item --branch
|
||||
|
||||
Instead of checking out specific SHA1s, check out the submodule branches that
|
||||
correspond with the current supermodule commit.
|
||||
By default, this option will cause local commits in the submodules to be rebased.
|
||||
With --no-update, the branches will be checked out, but their heads will not move.
|
||||
|
||||
=item --ignore-submodules
|
||||
|
||||
@@ -131,15 +138,6 @@ Switch to internal URLs and make use of the Oslo git mirrors.
|
||||
(Implies `--mirror').
|
||||
|
||||
|
||||
=item --http
|
||||
|
||||
Use the HTTP protocol for git operations. This may be useful if the git
|
||||
protocol is blocked by a firewall. Note that this only works with the
|
||||
external Gitorious server.
|
||||
|
||||
The `--http' option does not affect the gerrit remotes.
|
||||
|
||||
|
||||
=item --codereview-username <Gerrit/JIRA username>
|
||||
|
||||
Specify the user name for the (potentially) writable `gerrit' remote
|
||||
@@ -180,7 +178,7 @@ Uses <url-base> as the base URL for submodule git mirrors.
|
||||
|
||||
For example:
|
||||
|
||||
--mirror user@machine:/foo/bar
|
||||
--mirror user@machine:/foo/bar/
|
||||
|
||||
...will use the following as a mirror for qtbase:
|
||||
|
||||
@@ -199,85 +197,6 @@ use Getopt::Long qw( GetOptionsFromArray );
|
||||
use Pod::Usage qw( pod2usage );
|
||||
use Cwd qw( getcwd );
|
||||
|
||||
my %PROTOCOLS = (
|
||||
'http' => 'http://git.gitorious.org/' ,
|
||||
);
|
||||
|
||||
my %GERRIT_REPOS = map { $_ => "qt/$_" } qw(
|
||||
qt3d
|
||||
qt5
|
||||
qtactiveqt
|
||||
qtandroidextras
|
||||
qtbase
|
||||
qtconnectivity
|
||||
qtdeclarative
|
||||
qtdoc
|
||||
qtdocgallery
|
||||
qtenginio
|
||||
qtfeedback
|
||||
qtgraphicaleffects
|
||||
qtimageformats
|
||||
qtjsondb
|
||||
qtlocation
|
||||
qtmacextras
|
||||
qtmultimedia
|
||||
qtpim
|
||||
qtqa
|
||||
qtquick1
|
||||
qtquickcontrols
|
||||
qtrepotools
|
||||
qtscript
|
||||
qtsensors
|
||||
qtserialport
|
||||
qtsvg
|
||||
qtsystems
|
||||
qttools
|
||||
qttranslations
|
||||
qtwayland
|
||||
qtwebchannel
|
||||
qtwebengine
|
||||
qtwebkit
|
||||
qtwebkit-examples
|
||||
qtwebsockets
|
||||
qtwinextras
|
||||
qtx11extras
|
||||
qtxmlpatterns
|
||||
);
|
||||
|
||||
my @DEFAULT_REPOS = qw(
|
||||
qtactiveqt
|
||||
qtandroidextras
|
||||
qtbase
|
||||
qtconnectivity
|
||||
qtdeclarative
|
||||
qtdoc
|
||||
qtenginio
|
||||
qtgraphicaleffects
|
||||
qtimageformats
|
||||
qtmacextras
|
||||
qtmultimedia
|
||||
qtqa
|
||||
qtquick1
|
||||
qtquickcontrols
|
||||
qtlocation
|
||||
qtrepotools
|
||||
qtscript
|
||||
qtsensors
|
||||
qtserialport
|
||||
qtsvg
|
||||
qttools
|
||||
qttranslations
|
||||
qtwayland
|
||||
qtwebchannel
|
||||
qtwebengine
|
||||
qtwebsockets
|
||||
qtwebkit
|
||||
qtwebkit-examples
|
||||
qtwinextras
|
||||
qtx11extras
|
||||
qtxmlpatterns
|
||||
);
|
||||
|
||||
my $GERRIT_SSH_BASE
|
||||
= 'ssh://@USER@codereview.qt-project.org@PORT@/';
|
||||
|
||||
@@ -320,20 +239,21 @@ sub parse_arguments
|
||||
|
||||
%{$self} = (%{$self},
|
||||
'alternates' => "",
|
||||
'branch' => 0,
|
||||
'codereview-username' => "",
|
||||
'detach-alternates' => 0 ,
|
||||
'force' => 0 ,
|
||||
'force-hooks' => 0 ,
|
||||
'ignore-submodules' => 0 ,
|
||||
'mirror-url' => "",
|
||||
'protocol' => "",
|
||||
'update' => 1 ,
|
||||
'webkit' => 1 ,
|
||||
'module-subset' => join(",", @DEFAULT_REPOS),
|
||||
'module-subset' => "default",
|
||||
);
|
||||
|
||||
GetOptionsFromArray(\@args,
|
||||
'alternates=s' => \$self->{qw{ alternates }},
|
||||
'branch' => \$self->{qw{ branch }},
|
||||
'codereview-username=s' => \$self->{qw{ codereview-username }},
|
||||
'copy-objects' => \$self->{qw{ detach-alternates }},
|
||||
'force|f' => \$self->{qw{ force }},
|
||||
@@ -346,7 +266,6 @@ sub parse_arguments
|
||||
'module-subset=s' => \$self->{qw{ module-subset }},
|
||||
|
||||
'help|?' => sub { pod2usage(1); },
|
||||
'http' => sub { $self->{protocol} = 'http'; },
|
||||
|
||||
'berlin' => sub {
|
||||
$self->{'mirror-url'} = $BER_MIRROR_URL_BASE;
|
||||
@@ -359,12 +278,9 @@ sub parse_arguments
|
||||
# Replace any double trailing slashes from end of mirror
|
||||
$self->{'mirror-url'} =~ s{//+$}{/};
|
||||
|
||||
if ($self->{'module-subset'} eq "all") {
|
||||
$self->{'module-subset'} = "";
|
||||
} else {
|
||||
$self->{'module-subset'} = {
|
||||
map { $_ => 1 } split(qr{,}, $self->{'module-subset'})
|
||||
};
|
||||
$self->{'module-subset'} = [ split(/,/, $self->{'module-subset'}) ];
|
||||
if (!$self->{webkit}) {
|
||||
push @{$self->{'module-subset'}}, "-qtwebkit", "-qtwebkit-examples";
|
||||
}
|
||||
|
||||
return;
|
||||
@@ -376,16 +292,7 @@ sub check_if_already_initialized
|
||||
|
||||
# We consider the repo as `initialized' if submodule.qtbase.url is set
|
||||
if (qx(git config --get submodule.qtbase.url)) {
|
||||
if ($self->{force}) {
|
||||
my @configresult = qx(git config -l);
|
||||
foreach (@configresult) {
|
||||
# Example line: submodule.qtqa.url=git://gitorious.org/qt/qtqa.git
|
||||
if (/(submodule\.[^.=]+)\.url=.*/) {
|
||||
$self->exe('git', 'config', '--remove-section', $1);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (!$self->{force}) {
|
||||
exit 0 if ($self->{quiet});
|
||||
print "Will not reinitialize already initialized repository (use -f to force)!\n";
|
||||
exit 1;
|
||||
@@ -397,11 +304,10 @@ sub check_if_already_initialized
|
||||
|
||||
sub git_submodule_init
|
||||
{
|
||||
my ($self) = @_;
|
||||
my ($self, @init_args) = @_;
|
||||
|
||||
my @init_args;
|
||||
if ($self->{quiet}) {
|
||||
push @init_args, '--quiet';
|
||||
unshift @init_args, '--quiet';
|
||||
}
|
||||
$self->exe('git', 'submodule', 'init', @init_args);
|
||||
|
||||
@@ -413,83 +319,101 @@ sub git_submodule_init
|
||||
return;
|
||||
}
|
||||
|
||||
sub git_disable_webkit_submodule
|
||||
{
|
||||
my ($self) = @_;
|
||||
|
||||
$self->exe('git', 'config', '--remove', 'submodule.qtwebkit');
|
||||
$self->exe('git', 'config', '--remove', 'submodule.qtwebkit-examples');
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
sub git_prune_submodules
|
||||
{
|
||||
my ($self) = @_;
|
||||
|
||||
my @configresult = qx(git config -l);
|
||||
foreach my $line (@configresult) {
|
||||
if ($line =~ /submodule\.([^.=]+)\.url=/) {
|
||||
my $module_name = $1;
|
||||
if (!$self->{'module-subset'}{$module_name}) {
|
||||
$self->exe('git', 'config', '--remove', "submodule.$module_name");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub git_set_submodule_config
|
||||
{
|
||||
my ($self) = @_;
|
||||
|
||||
my @configresult = qx(git config -l);
|
||||
my $protocol = $self->{protocol};
|
||||
my $url_base_for_protocol = $PROTOCOLS{$protocol};
|
||||
|
||||
foreach my $line (@configresult) {
|
||||
# Example line: submodule.qtqa.url=git://gitorious.org/qt/qtqa.git
|
||||
next if ($line !~ /submodule\.([^.=]+)\.url=(.*)/);
|
||||
|
||||
my $key = $1;
|
||||
my $value = $2;
|
||||
|
||||
if ($protocol) {
|
||||
# rewrite URL to chosen protocol
|
||||
$value =~ s,^git://gitorious\.org/,$url_base_for_protocol,;
|
||||
}
|
||||
|
||||
$self->exe('git', 'config', "submodule.$key.url", $value);
|
||||
|
||||
if ($self->{'ignore-submodules'}) {
|
||||
$self->exe('git', 'config', "submodule.$key.ignore", 'all');
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
sub git_clone_all_submodules
|
||||
{
|
||||
my ($self) = @_;
|
||||
my ($self, $my_repo_base, $co_branch, @subset) = @_;
|
||||
|
||||
my %subdirs = ();
|
||||
my %subbranches = ();
|
||||
my %subbases = ();
|
||||
my %subinits = ();
|
||||
my @submodconfig = qx(git config -l -f .gitmodules);
|
||||
foreach my $line (@submodconfig) {
|
||||
# Example line: submodule.qtqa.url=../qtqa.git
|
||||
next if ($line !~ /^submodule\.([^.=]+)\.([^.=]+)=(.*)$/);
|
||||
if ($2 eq "path") {
|
||||
$subdirs{$1} = $3;
|
||||
} elsif ($2 eq "branch") {
|
||||
$subbranches{$1} = $3;
|
||||
} elsif ($2 eq "url") {
|
||||
my ($mod, $base) = ($1, $3);
|
||||
next if ($base !~ /^\.\.\//);
|
||||
$base = $my_repo_base.'/'.$base;
|
||||
while ($base =~ s,/(?!\.\./)[^/]+/\.\./,/,g) {}
|
||||
$subbases{$mod} = $base;
|
||||
} elsif ($2 eq "update") {
|
||||
push @subset, '-'.$1 if ($3 eq 'ignore');
|
||||
} elsif ($2 eq "initrepo") {
|
||||
$subinits{$1} = ($3 eq "yes" or $3 eq "true");
|
||||
}
|
||||
}
|
||||
|
||||
my %include = ();
|
||||
foreach my $mod (@subset) {
|
||||
if ($mod eq "all") {
|
||||
map { $include{$_} = 1; } keys %subbases;
|
||||
} elsif ($mod eq "default") {
|
||||
map { $include{$_} = 1; } grep { $subinits{$_} } keys %subbases;
|
||||
} elsif ($mod =~ s/^-//) {
|
||||
delete $include{$mod};
|
||||
} else {
|
||||
$include{$mod} = 1;
|
||||
}
|
||||
}
|
||||
|
||||
my @modules = sort keys %include;
|
||||
|
||||
$self->git_submodule_init(map { $subdirs{$_} } @modules);
|
||||
|
||||
# manually clone each repo here, so we can easily use reference repos, mirrors etc
|
||||
my @configresult = qx(git config -l);
|
||||
foreach my $line (@configresult) {
|
||||
if ($line =~ /submodule\.([^.=]+)\.url=(.*)/) {
|
||||
$self->git_clone_one_submodule($1, $2);
|
||||
if ($1 eq "qtwebengine") {
|
||||
$self->exe('git', 'submodule', 'update', $1);
|
||||
my $orig_cwd = getcwd();
|
||||
chdir($1) or confess "chdir $1: $OS_ERROR";
|
||||
$self->exe('git', 'submodule', 'init');
|
||||
$self->git_clone_all_submodules;
|
||||
chdir("$orig_cwd") or confess "chdir $orig_cwd: $OS_ERROR";
|
||||
}
|
||||
# Example line: submodule.qtqa.url=git://gitorious.org/qt/qtqa.git
|
||||
next if ($line !~ /submodule\.([^.=]+)\.url=/);
|
||||
my $module = $1;
|
||||
|
||||
if (!defined($include{$module})) {
|
||||
$self->exe('git', 'config', '--remove-section', "submodule.$module");
|
||||
next;
|
||||
}
|
||||
|
||||
if ($self->{'ignore-submodules'}) {
|
||||
$self->exe('git', 'config', "submodule.$module.ignore", 'all');
|
||||
}
|
||||
}
|
||||
|
||||
foreach my $module (@modules) {
|
||||
$self->git_clone_one_submodule($subdirs{$module}, $subbases{$module}, $subbranches{$module});
|
||||
}
|
||||
|
||||
if ($co_branch) {
|
||||
foreach my $module (@modules) {
|
||||
my $branch = $subbranches{$module};
|
||||
die("No branch defined for submodule $module.\n") if (!defined($branch));
|
||||
my $orig_cwd = getcwd();
|
||||
chdir($module) or confess "chdir $module: $OS_ERROR";
|
||||
my $br = qx(git rev-parse -q --verify $branch);
|
||||
if (!$br) {
|
||||
$self->exe('git', 'checkout', '-b', $branch, "origin/$branch");
|
||||
} else {
|
||||
$self->exe('git', 'checkout', $branch);
|
||||
}
|
||||
chdir("$orig_cwd") or confess "chdir $orig_cwd: $OS_ERROR";
|
||||
}
|
||||
}
|
||||
if ($self->{update}) {
|
||||
$self->exe('git', 'submodule', 'update', '--recursive');
|
||||
my @cmd = ('git', 'submodule', 'update', '--no-fetch');
|
||||
push @cmd, '--remote', '--rebase' if ($co_branch);
|
||||
$self->exe(@cmd);
|
||||
|
||||
foreach my $module (@modules) {
|
||||
if (-f $module.'/.gitmodules') {
|
||||
my $orig_cwd = getcwd();
|
||||
chdir($module) or confess "chdir $module: $OS_ERROR";
|
||||
$self->git_clone_all_submodules($subbases{$module}, 0, "all");
|
||||
chdir("$orig_cwd") or confess "chdir $orig_cwd: $OS_ERROR";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
@@ -497,35 +421,26 @@ sub git_clone_all_submodules
|
||||
|
||||
sub git_add_remotes
|
||||
{
|
||||
my ($self, $repo_basename) = @_;
|
||||
my ($self, $gerrit_repo_basename) = @_;
|
||||
|
||||
my $gerrit_repo_basename = $GERRIT_REPOS{$repo_basename};
|
||||
if ($gerrit_repo_basename) {
|
||||
my $gerrit_repo_url;
|
||||
|
||||
# If given a username, make a "verbose" remote.
|
||||
# Otherwise, rely on proper SSH configuration.
|
||||
if ($self->{'codereview-username'}) {
|
||||
$gerrit_repo_url = $GERRIT_SSH_BASE;
|
||||
$gerrit_repo_url =~ s,\@USER\@,$self->{'codereview-username'}\@,;
|
||||
$gerrit_repo_url =~ s,\@PORT\@,:29418,;
|
||||
}
|
||||
else {
|
||||
$gerrit_repo_url = $GERRIT_SSH_BASE;
|
||||
$gerrit_repo_url =~ s,\@[^\@]+\@,,g;
|
||||
}
|
||||
|
||||
$gerrit_repo_url .= $gerrit_repo_basename;
|
||||
$self->exe('git', 'config', 'remote.gerrit.url', $gerrit_repo_url);
|
||||
$self->exe('git', 'config', 'remote.gerrit.fetch', '+refs/heads/*:refs/remotes/gerrit/*', '/heads/');
|
||||
my $gerrit_repo_url = $GERRIT_SSH_BASE;
|
||||
# If given a username, make a "verbose" remote.
|
||||
# Otherwise, rely on proper SSH configuration.
|
||||
if ($self->{'codereview-username'}) {
|
||||
$gerrit_repo_url =~ s,\@USER\@,$self->{'codereview-username'}\@,;
|
||||
$gerrit_repo_url =~ s,\@PORT\@,:29418,;
|
||||
} else {
|
||||
$gerrit_repo_url =~ s,\@[^\@]+\@,,g;
|
||||
}
|
||||
|
||||
return;
|
||||
$gerrit_repo_url .= $gerrit_repo_basename;
|
||||
$self->exe('git', 'config', 'remote.gerrit.url', $gerrit_repo_url);
|
||||
$self->exe('git', 'config', 'remote.gerrit.fetch', '+refs/heads/*:refs/remotes/gerrit/*', '/heads/');
|
||||
}
|
||||
|
||||
sub git_clone_one_submodule
|
||||
{
|
||||
my ($self, $submodule, $url) = @_;
|
||||
my ($self, $submodule, $repo_basename, $branch) = @_;
|
||||
|
||||
my $alternates = $self->{ 'alternates' };
|
||||
my $mirror_url = $self->{ 'mirror-url' };
|
||||
@@ -536,7 +451,7 @@ sub git_clone_one_submodule
|
||||
|
||||
if ($alternates) {
|
||||
# alternates is a qt5 repo, so the submodule will be under that.
|
||||
if (-d "$alternates/$submodule") {
|
||||
if (-e "$alternates/$submodule/.git") {
|
||||
@reference_args = ('--reference', "$alternates/$submodule");
|
||||
}
|
||||
else {
|
||||
@@ -544,10 +459,10 @@ sub git_clone_one_submodule
|
||||
}
|
||||
}
|
||||
|
||||
my $url = $self->{'base-url'}.$repo_basename;
|
||||
my $mirror;
|
||||
if ($mirror_url and $url =~ /\/(qt\/[^.]+)\.git/) {
|
||||
$mirror = $mirror_url.$1;
|
||||
$mirror .= ".git" unless (-d $mirror); # Support local disk mirror
|
||||
if ($mirror_url) {
|
||||
$mirror = $mirror_url.$repo_basename;
|
||||
}
|
||||
|
||||
if ($mirror) {
|
||||
@@ -559,22 +474,33 @@ sub git_clone_one_submodule
|
||||
}
|
||||
}
|
||||
|
||||
my $do_clone = (! -d "$submodule/.git");
|
||||
my $do_clone = (! -e "$submodule/.git");
|
||||
if ($do_clone) {
|
||||
$self->exe('git', 'clone', @reference_args, ($mirror ? $mirror : $url), $submodule);
|
||||
push @reference_args, '--branch', $branch if ($branch);
|
||||
$self->exe('git', 'clone', @reference_args,
|
||||
($mirror ? $mirror : $url), $submodule);
|
||||
}
|
||||
|
||||
my $orig_cwd = getcwd();
|
||||
chdir($submodule) or confess "chdir $submodule: $OS_ERROR";
|
||||
|
||||
$self->exe('git', 'config', 'remote.origin.url', $url);
|
||||
if ($mirror) {
|
||||
# This is only for the user's convenience - we make no use of it.
|
||||
$self->exe('git', 'config', 'remote.mirror.url', $mirror);
|
||||
$self->exe('git', 'config', 'remote.mirror.fetch', '+refs/heads/*:refs/remotes/mirror/*');
|
||||
}
|
||||
|
||||
if (!$do_clone) {
|
||||
$self->exe('git', 'fetch', ($mirror ? $mirror : $url));
|
||||
if (!$do_clone && $self->{update}) {
|
||||
# If we didn't clone, fetch from the right location. We always update
|
||||
# the origin remote, so that submodule update --remote works.
|
||||
$self->exe('git', 'config', 'remote.origin.url', ($mirror ? $mirror : $url));
|
||||
$self->exe('git', 'fetch', 'origin');
|
||||
}
|
||||
|
||||
if (!($do_clone || $self->{update}) || $mirror) {
|
||||
# Leave the origin configured to the canonical URL. It's already correct
|
||||
# if we cloned/fetched without a mirror; otherwise it may be anything.
|
||||
$self->exe('git', 'config', 'remote.origin.url', $url);
|
||||
}
|
||||
|
||||
my $template = getcwd()."/../.commit-template";
|
||||
@@ -582,7 +508,7 @@ sub git_clone_one_submodule
|
||||
$self->exe('git', 'config', 'commit.template', $template);
|
||||
}
|
||||
|
||||
$self->git_add_remotes($submodule);
|
||||
$self->git_add_remotes($repo_basename);
|
||||
|
||||
if ($self->{'detach-alternates'}) {
|
||||
$self->exe('git', 'repack', '-a');
|
||||
@@ -618,6 +544,8 @@ sub git_install_hooks
|
||||
|
||||
return if (!-d 'qtrepotools/git-hooks');
|
||||
|
||||
# Force C locale as git submodule returns the localized string "Entering"
|
||||
local $ENV{LC_ALL} = 'C';
|
||||
chomp(my @modules = `git submodule foreach :`);
|
||||
push @modules, "";
|
||||
for my $module (@modules) {
|
||||
@@ -635,21 +563,16 @@ sub run
|
||||
my ($self) = @_;
|
||||
|
||||
$self->check_if_already_initialized;
|
||||
$self->git_submodule_init;
|
||||
|
||||
if (!$self->{webkit}) {
|
||||
$self->git_disable_webkit_submodule;
|
||||
}
|
||||
chomp(my $url = `git config remote.origin.url`);
|
||||
die("Have no origin remote.\n") if (!$url);
|
||||
$url =~ s,\.git$,,;
|
||||
$url =~ s,qt/qt5$,,;
|
||||
$self->{'base-url'} = $url;
|
||||
|
||||
if ($self->{'module-subset'}) {
|
||||
$self->git_prune_submodules;
|
||||
}
|
||||
$self->git_clone_all_submodules('qt/qt5', $self->{branch}, @{$self->{'module-subset'}});
|
||||
|
||||
$self->git_set_submodule_config;
|
||||
|
||||
$self->git_clone_all_submodules;
|
||||
|
||||
$self->git_add_remotes('qt5');
|
||||
$self->git_add_remotes('qt/qt5');
|
||||
|
||||
$self->git_install_hooks;
|
||||
|
||||
|
||||
3
qt.pro
3
qt.pro
@@ -69,7 +69,6 @@ addModule(qtmultimedia, qtbase, qtdeclarative)
|
||||
addModule(qtwinextras, qtbase, qtdeclarative qtmultimedia)
|
||||
addModule(qtactiveqt, qtbase)
|
||||
addModule(qt3d, qtdeclarative)
|
||||
addModule(qtjsondb, qtdeclarative)
|
||||
addModule(qtsystems, qtbase, qtdeclarative)
|
||||
addModule(qtlocation, qtbase, qtsystems qtmultimedia)
|
||||
addModule(qtsensors, qtbase, qtdeclarative)
|
||||
@@ -85,7 +84,7 @@ addModule(qtimageformats, qtbase)
|
||||
addModule(qtgraphicaleffects, qtdeclarative)
|
||||
addModule(qtscript, qtbase, qttools)
|
||||
addModule(qtquick1, qtscript, qtsvg qtxmlpatterns qtwebkit)
|
||||
addModule(qtdocgallery, qtdeclarative, qtjsondb)
|
||||
addModule(qtdocgallery, qtdeclarative)
|
||||
linux:!android: addModule(qtwayland, qtbase, qtdeclarative)
|
||||
addModule(qtserialport, qtbase)
|
||||
addModule(qtenginio, qtdeclarative)
|
||||
|
||||
Submodule qtactiveqt updated: 37d401da86...f0a39bbfe1
Submodule qtandroidextras updated: c4435020ce...42b878b161
2
qtbase
2
qtbase
Submodule qtbase updated: 289e9af668...d82d5b1c43
Submodule qtconnectivity updated: 5ec215a6cf...ed8de4eb35
Submodule qtdeclarative updated: f9ee33f968...2556b97ab2
2
qtdoc
2
qtdoc
Submodule qtdoc updated: a1a4cb2964...a390b74a20
Submodule qtenginio updated: 86f4723e2c...134dc76b7f
Submodule qtgraphicaleffects updated: 1dc642bf3f...c7ed28bece
Submodule qtimageformats updated: 9a8ddea5b8...ec301681e4
1
qtjsondb
1
qtjsondb
Submodule qtjsondb deleted from 58223ab8aa
Submodule qtlocation updated: 2fed04bc1b...774eb1bccb
Submodule qtmacextras updated: 052cd46bd5...3a3a7d799b
Submodule qtmultimedia updated: bc1fa076c9...cc0569a038
2
qtqa
2
qtqa
Submodule qtqa updated: b0f1609d11...31235fa2d0
2
qtquick1
2
qtquick1
Submodule qtquick1 updated: 7e729ca887...ba0708a757
Submodule qtquickcontrols updated: 26f69ece4d...dd490a7fe2
Submodule qtrepotools updated: 2c2b3aa5ad...590f651476
2
qtscript
2
qtscript
Submodule qtscript updated: c38d69ce55...eb08742e8f
Submodule qtsensors updated: 8819153090...5d6969bf32
Submodule qtserialport updated: cf2460238e...e257bdc9aa
2
qtsvg
2
qtsvg
Submodule qtsvg updated: 33e7b0c07b...ccae23961e
2
qttools
2
qttools
Submodule qttools updated: f2acb10367...b73a47aa17
Submodule qttranslations updated: 9017bab36b...f76e5c98b0
Submodule qtwayland updated: 3f32b38aed...182488129c
Submodule qtwebchannel updated: a79f70e2df...7b5da1d3dd
Submodule qtwebengine updated: 4bee5b45e8...6c0d77396f
2
qtwebkit
2
qtwebkit
Submodule qtwebkit updated: ceaa9ecc67...ea590d74ea
Submodule qtwebkit-examples updated: 0d64440870...9f20ed0b48
Submodule qtwebsockets updated: 9924fc0b14...02e0e2a977
Submodule qtwinextras updated: c197dffefd...d82df56fb9
Submodule qtx11extras updated: ad22f63229...32b1ce9e1b
Submodule qtxmlpatterns updated: 1f50edbd81...c21924d67a
Reference in New Issue
Block a user