summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorMarius Storm-Olsen <marius.storm-olsen@nokia.com>2012-03-29 09:07:20 -0500
committerQt by Nokia <qt-info@nokia.com>2012-04-05 04:35:38 +0200
commit1de59c1a077a6aeb23a3582828be88a6dd11731e (patch)
tree6e922ec72ab07bffd14f498eff3b5fe8bbb8466b /build
parent6ab6bd8ff70e24948acc4517ed4b1d4ed2a567e4 (diff)
Fix building on Windows and OSX
A problem with the dependency algorithm would make the top-most dependent module not compile. Also affects building QtWayland on Linux. OSX has a problem when doing 'make install' on Qt configured with prefix pointing to qtbase (no installation needed), so disable that for the alpha, like on Windows. Also, remove a redundant line in the script. Change-Id: I368e80520977cf8a4bfcbbf13445f50c820aee9c Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'build')
-rwxr-xr-xbuild12
1 files changed, 8 insertions, 4 deletions
diff --git a/build b/build
index 7e29c77b..61c333c7 100755
--- a/build
+++ b/build
@@ -296,12 +296,17 @@ sub resolve_soft_dependencies
{
my ($self) = @_;
+ my @nondefault = @{$self->{'nondefault'}};
foreach my $module (keys(%{$self->{'deps'}})) {
my @deps = split(/,/, $self->{'deps'}->{$module});
my @newdeps;
foreach my $dep (@deps) {
if ($dep =~ /(.*):s$/) {
- push(@newdeps, $1) if (defined $self->{'deps'}->{$1})
+ my $mod = $1;
+ if (defined $self->{'deps'}->{$mod}
+ && !grep {$_ eq $mod} @nondefault) {
+ push(@newdeps, $mod);
+ }
} else {
push(@newdeps, $dep);
}
@@ -336,7 +341,7 @@ sub get_next_modules
}
foreach my $dep (split(/,/, $deps)) {
- push (@nextModules, $self->get_next_modules($dep)) unless $self->{'seenHash'}->{$module};
+ push (@nextModules, $self->get_next_modules($dep)) unless $self->{'seenHash'}->{$dep};
}
return @nextModules;
@@ -377,7 +382,7 @@ sub build_project
$self->exeLowPriv("cd $module && $build_command") && die "'cd $module && $build_command' failed: $?";
$install_command = "$self->{MAKE} install" if (!defined $install_command);
### TODO: Should be fixed after the alpha
- unless ("$Config{osname}" =~ /mswin/i) {
+ unless ("$Config{osname}" =~ /(dar|ms)win/i) {
$self->exeHighPriv("cd $module && $install_command") && die "'cd $module && $install_command failed: $?";
}
$self->mark_as_finished($module);
@@ -403,7 +408,6 @@ sub build_qt
print " $mods\n";
while (my @modules = $self->get_all_next_modules) {
- my @modules = $self->get_all_next_modules;
foreach my $module (@modules) {
print "build $module...\n";
$self->build_project($module);