[iOS] Fix project build order
authordbates@webkit.org <dbates@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 10 Jan 2014 23:36:58 +0000 (23:36 +0000)
committerdbates@webkit.org <dbates@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 10 Jan 2014 23:36:58 +0000 (23:36 +0000)
Ensure we build WebKitAdditions before WebCore (if applicable). Also, we don't
build WebInspectorUI, Tools/MiniBrowser, or Tools/WebKitTestRunner on iOS at the
time of writing.

* Scripts/build-webkit:

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

Tools/ChangeLog
Tools/Scripts/build-webkit

index cd650be..226c620 100644 (file)
@@ -1,3 +1,13 @@
+2014-01-10  Daniel Bates  <dabates@apple.com>
+
+        [iOS] Fix project build order
+
+        Ensure we build WebKitAdditions before WebCore (if applicable). Also, we don't
+        build WebInspectorUI, Tools/MiniBrowser, or Tools/WebKitTestRunner on iOS at the
+        time of writing.
+
+        * Scripts/build-webkit:
+
 2014-01-10  Mario Sanchez Prada  <mario.prada@samsung.com>
 
         Move platformName property from testRunner to accessibilityController
index 1424c78..5926956 100755 (executable)
@@ -40,6 +40,7 @@ use FindBin;
 use Getopt::Long qw(:config pass_through no_auto_abbrev);
 use lib $FindBin::Bin;
 use webkitdirs;
+use List::Util qw(first);
 use webkitperl::FeatureList qw(getFeatureOptionList);
 use POSIX;
 
@@ -210,7 +211,7 @@ for my $dir (@projects) {
     }
 }
 
-if (!-d "WebKitLibraries") {
+if (!isIOSWebKit() && !-d "WebKitLibraries") {
     die "Error: No WebKitLibraries directory found. Please do a fresh checkout.\n";
 }
 
@@ -236,20 +237,37 @@ if (isAppleMacWebKit()) {
     $ENV{ENABLE_FTL_JIT} = 1 if $hasFTLJIT;
     $ENV{ENABLE_LLINT_C_LOOP} = 1 if $forceCLoop;
 
+    if (isIOSWebKit()) {
+        # WebKitSystemInterface should always be built just before WebKit.
+        my $webKitIndex = first { $projects[$_] eq "Source/WebKit" } 0..$#projects;
+        splice(@projects, $webKitIndex, 0, "WebKitSystemInterface");
+
+        # WebKitAdditions must come before WebCore
+        splice(@projects, 0, 0, "../Internal/WebKitAdditions");
+    }
+
     # ANGLE must come before WebCore
     splice @projects, 0, 0, "Source/ThirdParty/ANGLE";
 
-    # WebKit2 is only supported in SnowLeopard and later at present.
-    push @projects, ("Source/WebKit2", "Tools/MiniBrowser") if osXVersion()->{"minor"} >= 6 and !$noWebKit2;
+    if (!isIOSWebKit()) {
+        # WebKit2 is only supported in SnowLeopard and later at present.
+        push @projects, ("Source/WebKit2", "Tools/MiniBrowser") if osXVersion()->{"minor"} >= 6 and !$noWebKit2;
 
-    # WebInspectorUI must come before WebKit and WebKit2
-    unshift @projects, ("Source/WebInspectorUI");
+        # WebInspectorUI must come before WebKit and WebKit2
+        unshift @projects, ("Source/WebInspectorUI");
 
-    # Build Tools needed for Apple ports
-    push @projects, ("Tools/DumpRenderTree", "Tools/WebKitTestRunner", "Source/ThirdParty/gtest", "Tools/TestWebKitAPI");
+        # Build Tools needed for Apple ports
+        push @projects, ("Tools/DumpRenderTree", "Tools/WebKitTestRunner", "Source/ThirdParty/gtest", "Tools/TestWebKitAPI");
 
-    # Copy library and header from WebKitLibraries to a findable place in the product directory.
-    (system("perl", "Tools/Scripts/copy-webkitlibraries-to-product-directory", $productDir) == 0) or die;
+        # Copy library and header from WebKitLibraries to a findable place in the product directory.
+        (system("perl", "Tools/Scripts/copy-webkitlibraries-to-product-directory", $productDir) == 0) or die;
+    } else {
+        push @projects, ("Source/WebKit2") if !$noWebKit2;
+
+        # Build Tools needed for Apple ports
+        # FIXME: <rdar://problem/11784024> WebKitTestRunner should build for iOS
+        push @projects, ("Tools/DumpRenderTree", "Source/ThirdParty/gtest", "Tools/TestWebKitAPI");
+    }
 } elsif (isWinCairo()) {
     (system("perl Tools/Scripts/update-webkit-wincairo-libs") == 0) or die;
 } elsif (isAppleWinWebKit()) {