Simon says : work with qmake shadow builds. Patch adds support
authorzack <zack@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 10 Dec 2006 03:27:14 +0000 (03:27 +0000)
committerzack <zack@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 10 Dec 2006 03:27:14 +0000 (03:27 +0000)
for it to the build scripts.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@18119 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebKitTools/Scripts/build-webkit
WebKitTools/Scripts/webkitdirs.pm

index ff01a8ee7649308b9f62f5f32deb7061651a5497..e92d0334d259e258de5d4337f7b8f5a8acf322b2 100644 (file)
@@ -1,3 +1,12 @@
+2006-12-09  Simon Hausmann  <hausmann@kde.org>
+
+        Reviewed by hyatt.
+
+        Add support for a QMake build using build-webkit --qmake
+
+        * Scripts/build-webkit:
+        * Scripts/webkitdirs.pm:
+
 2006-12-09  Zack Rusin  <zack@kde.org>
 
         Reviewed by Lars.
index 2303cb522aa01a6893aabd04099e06c968acf40c..65159d2e0e370e63afe01a1df817d5bbf1a1a779 100755 (executable)
@@ -38,8 +38,11 @@ use POSIX;
 my $svgSupport = 1;
 my $colorSupport = 1; # Default: colorize make output
 
+our @qmakeBuild;
+
 GetOptions('svg!' => \$svgSupport,
-           'color!' => \$colorSupport);
+           'color!' => \$colorSupport,
+           'qmake!' => \@qmakeBuild);
 
 checkRequiredSystemConfig();
 setConfiguration();
@@ -87,7 +90,9 @@ for my $dir (@projects) {
     chdir $dir or die;
     my $result = 0;
     if (isQt()) {
-        if ($dir eq "WebKit") {
+        if (isQtWithQMake()) {
+            $result = buildQMakeProject($dir, $colorSupport);
+        } else {
             $result = buildCMakeProject($dir, $colorSupport);
         }
     } elsif (isOSX()) {
index cd670c49de4b05f2004cf0914c3610e31b91e20f..5223af66a8ec703a149e5be10e09397d3e5b967c 100644 (file)
@@ -345,6 +345,12 @@ sub isQt()
     return defined($ENV{'QTDIR'})
 }
 
+sub isQtWithQMake()
+{
+    our @qmakeBuild;
+    return (isQt() and (@qmakeBuild eq 1))
+}
+
 sub isCygwin()
 {
     return ($^O eq "cygwin");
@@ -461,4 +467,35 @@ sub buildCMakeProject($$)
     return $result;
 }
 
+sub buildQMakeProject($$)
+{
+    my ($project, $colorize) = @_;
+
+    if ($project ne "WebKit") {
+        die "Qt/Linux builds JavaScriptCore/WebCore/WebKitQt in one shot! Only call it for 'WebKit'.\n";
+    }
+
+    my $config = configuration();
+    my $prefix = $ENV{"WebKitInstallationPrefix"};
+
+    my @buildArgs = ("-r");
+    push @buildArgs, "OUTPUT_DIR=" . baseProductDir() . "/$config";
+    push @buildArgs, "../../webkit.pro";
+
+    print "Calling 'qmake @buildArgs' in " . baseProductDir() . "/$config ...\n\n";
+    print "Installation directory: $prefix\n" if(defined($prefix));
+
+    system "mkdir -p " . baseProductDir() . "/$config";
+    chdir baseProductDir() . "/$config" or die "Failed to cd into " . baseProductDir() . "/$config \n";
+
+    my $result = system "qmake", @buildArgs;
+    if($result ne 0) {
+       die "Failed to setup build environment using qmake!\n";
+    }
+
+    $result = system "make";
+    chdir ".." or die;
+    return $result;
+}
+
 1;