mirror of
git://code.qt.io/qt/qt5.git
synced 2026-02-01 19:36:04 +08:00
Can now tell init-repository to only use a subset of modules
Still useful to use init-repository because of all the other logic, such as repository urls. More general than --no-webkit, although it is still a valid convenience as the most common case. Also makes qt.pro check for existence of modules, since it is no longer certain that you'll have everything but webkit. Change-Id: Iaaaa30e24e0a793218e2e307bdde56067760c513 Reviewed-on: http://codereview.qt.nokia.com/1258 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
This commit is contained in:
@@ -87,6 +87,10 @@ Skip webkit and webkit examples submodules.
|
||||
It may be desirable to skip these modules due to the large size of the webkit
|
||||
git repository.
|
||||
|
||||
=item --module-subset=<module1>,<module2>...
|
||||
|
||||
Only initialize the specified subset of modules given as the argument. Specified
|
||||
modules must already exist in .gitmodules.
|
||||
|
||||
=item --no-update
|
||||
|
||||
@@ -300,6 +304,7 @@ sub parse_arguments
|
||||
'protocol' => "",
|
||||
'update' => 1 ,
|
||||
'webkit' => 1 ,
|
||||
'module-subset' => "",
|
||||
);
|
||||
|
||||
GetOptionsFromArray(\@args,
|
||||
@@ -314,6 +319,7 @@ sub parse_arguments
|
||||
'quiet' => \$self->{qw{ quiet }},
|
||||
'update!' => \$self->{qw{ update }},
|
||||
'webkit!' => \$self->{qw{ webkit }},
|
||||
'module-subset=s' => \$self->{qw{ module-subset }},
|
||||
|
||||
'help|?' => sub { pod2usage(1); },
|
||||
'http' => sub { $self->{protocol} = 'http'; },
|
||||
@@ -349,6 +355,12 @@ sub parse_arguments
|
||||
# Replace any double trailing slashes from end of mirror
|
||||
$self->{'mirror-url'} =~ s{//+$}{/};
|
||||
|
||||
if ($self->{'module-subset'}) {
|
||||
$self->{'module-subset'} = {
|
||||
map { $_ => 1 } split(qr{,}, $self->{'module-subset'})
|
||||
};
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -405,6 +417,21 @@ sub git_disable_webkit_submodule
|
||||
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) = @_;
|
||||
@@ -593,6 +620,10 @@ sub run
|
||||
$self->git_disable_webkit_submodule;
|
||||
}
|
||||
|
||||
if ($self->{'module-subset'}) {
|
||||
$self->git_prune_submodules;
|
||||
}
|
||||
|
||||
$self->git_set_submodule_config;
|
||||
|
||||
if ($self->{update}) {
|
||||
|
||||
42
qt.pro
42
qt.pro
@@ -87,25 +87,29 @@ module_qtfeedback.depends = module_qtbase module_qtdeclarative
|
||||
# not yet enabled by default
|
||||
module_qtfeedback.CONFIG = no_default_target no_default_install
|
||||
|
||||
SUBDIRS = \
|
||||
module_qtbase \
|
||||
module_qtsvg \
|
||||
module_qtphonon \
|
||||
module_qtxmlpatterns \
|
||||
module_qtscript \
|
||||
module_qtdeclarative \
|
||||
module_qtmultimedia \
|
||||
module_qttools \
|
||||
module_qttranslations \
|
||||
module_qtdoc \
|
||||
module_qlalr \
|
||||
module_qtqa \
|
||||
module_qtlocation \
|
||||
module_qtactiveqt \
|
||||
module_qtsensors \
|
||||
module_qtsystems \
|
||||
module_qtmultimediakit \
|
||||
module_qtfeedback \
|
||||
# only qtbase is required to exist. The others may not - but it is the
|
||||
# users responsibility to ensure that all needed dependencies exist, or
|
||||
# it may not build.
|
||||
|
||||
SUBDIRS = module_qtbase
|
||||
|
||||
exists(qtsvg/qtsvg.pro): SUBDIRS += module_qtsvg
|
||||
exists(qtphonon/qtphonon.pro): SUBDIRS += module_qtphonon
|
||||
exists(qtxmlpatterns/qtxmlpatterns.pro): SUBDIRS += module_qtxmlpatterns
|
||||
exists(qtscript/qtscript.pro): SUBDIRS += module_qtscript
|
||||
exists(qtdeclarative/qtdeclarative.pro): SUBDIRS += module_qtdeclarative
|
||||
exists(qtmultimedia/qtmultimedia.pro): SUBDIRS += module_qtmultimedia
|
||||
exists(qttools/qttools.pro): SUBDIRS += module_qttools
|
||||
exists(qttranslations/qttranslations.pro): SUBDIRS += module_qttranslations
|
||||
exists(qtdoc/qtdoc.pro): SUBDIRS += module_qtdoc
|
||||
exists(qlalr/qlalr.pro): SUBDIRS += module_qlalr
|
||||
exists(qtqa/qtqa.pro): SUBDIRS += module_qtqa
|
||||
exists(qtlocation/qtlocation.pro): SUBDIRS += module_qtlocation
|
||||
exists(qtactiveqt/qtactiveqt.pro): SUBDIRS += module_qtactiveqt
|
||||
exists(qtsensors/qtsensors.pro): SUBDIRS += module_qtsensors
|
||||
exists(qtsystems/qtsystems.pro): SUBDIRS += module_qtsystems
|
||||
exists(qtmultimediakit/qtmultimediakit.pro): SUBDIRS += module_qtmultimediakit
|
||||
exists(qtfeedback/qtfeedback.pro): SUBDIRS += module_qtfeedback
|
||||
|
||||
exists(qtwebkit/Tools/Scripts/build-webkit) {
|
||||
SUBDIRS += module_qtwebkit \
|
||||
|
||||
Reference in New Issue
Block a user