[Windows] Update various build tools to understand VS2010 environment.
authorbfulgham@apple.com <bfulgham@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 15 May 2013 18:36:36 +0000 (18:36 +0000)
committerbfulgham@apple.com <bfulgham@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 15 May 2013 18:36:36 +0000 (18:36 +0000)
https://bugs.webkit.org/show_bug.cgi?id=116169.

Reviewed by Anders Carlsson.

* Scripts/build-api-tests: Identify VS2010 environment.
* Scripts/build-dumprendertree: Ditto.
* Scripts/build-webkit: Ditto.
* Scripts/webkitdirs.pm:
(dieIfWindowsPlatformSDKNotInstalled): Update to recognize a wider
range of acceptable SDK's.

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

Tools/ChangeLog
Tools/Scripts/build-api-tests
Tools/Scripts/build-dumprendertree
Tools/Scripts/build-webkit
Tools/Scripts/webkitdirs.pm

index 8abb547..f749f84 100644 (file)
@@ -1,3 +1,17 @@
+2013-05-15  Brent Fulgham  <bfulgham@apple.com>
+
+        [Windows] Update various build tools to understand VS2010 environment.
+        https://bugs.webkit.org/show_bug.cgi?id=116169.
+
+        Reviewed by Anders Carlsson.
+
+        * Scripts/build-api-tests: Identify VS2010 environment.
+        * Scripts/build-dumprendertree: Ditto.
+        * Scripts/build-webkit: Ditto.
+        * Scripts/webkitdirs.pm:
+        (dieIfWindowsPlatformSDKNotInstalled): Update to recognize a wider
+        range of acceptable SDK's.
+
 2013-05-15  Peter Gal  <galpeter@inf.u-szeged.hu>
 
         Allow http tests on Arch Linux
index f6ddec0..7730627 100755 (executable)
@@ -65,7 +65,11 @@ if (isAppleMacWebKit()) {
     $result = buildXCodeProject("TestWebKitAPI", $clean, XcodeOptions(), @ARGV);
 } elsif (isAppleWinWebKit()) {
     chdir "Tools/TestWebKitAPI" or die;
-    $result = buildVisualStudioProject("win/TestWebKitAPI.sln", $clean);
+    my $solutionPath = "TestWebKitAPI.vcxproj/TestWebKitAPI.sln";
+    if (visualStudioVersion() eq "8") {
+        $solutionPath = "win/TestWebKitAPI.sln";
+    }
+    $result = buildVisualStudioProject($solutionPath, $clean);
 } else {
     die "TestWebKitAPI is not supported on this platform.\n";
 }
index 9231713..4926af1 100755 (executable)
@@ -68,7 +68,11 @@ my $result;
 if (isAppleMacWebKit()) {
     $result = buildXCodeProject("DumpRenderTree", $clean, XcodeOptions(), @ARGV);
 } elsif (isAppleWinWebKit()) {
-    $result = buildVisualStudioProject("DumpRenderTree.sln", $clean);
+    my $drtSolutionPath = "DumpRenderTree.vcxproj/DumpRenderTree.sln";
+    if (visualStudioVersion() eq "8") {
+        $drtSolutionPath = "DumpRenderTree.sln";
+    }
+    $result = buildVisualStudioProject($drtSolutionPath, $clean);
 } elsif (isQt() || isGtk() || isEfl()) {
     # Qt, Gtk and EFL build everything in one shot. No need to build anything here.
     $result = 0;
index 5719b00..e22f2c9 100755 (executable)
@@ -337,7 +337,11 @@ for my $dir (@projects) {
         $result = buildXCodeProject($projectPath, $clean, @local_options, @ARGV);
     } elsif (isAppleWinWebKit()) {
         if ($project eq "WebKit") {
-            $result = buildVisualStudioProject("win/WebKit.vcproj/WebKit.sln", $clean);
+            my $webkitSolutionPath = "WebKit.vcxproj/WebKit.sln";
+            if (visualStudioVersion() eq "8") {
+                $webkitSolutionPath = "win/WebKit.vcproj/WebKit.sln";
+            }
+            $result = buildVisualStudioProject($webkitSolutionPath, $clean);
         }
     }
     # Various build* calls above may change the CWD.
index 23d3eab..75703dd 100755 (executable)
@@ -1681,17 +1681,27 @@ sub dieIfWindowsPlatformSDKNotInstalled
 {
     my $registry32Path = "/proc/registry/";
     my $registry64Path = "/proc/registry64/";
-    my $windowsPlatformSDKRegistryEntry = "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MicrosoftSDK/InstalledSDKs/D2FF9F89-8AA2-4373-8A31-C838BF4DBBE1";
+    my @windowsPlatformSDKRegistryEntries = (
+        "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v8.0A",
+        "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v8.0",
+        "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v7.1A",
+        "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v7.0A",
+        "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MicrosoftSDK/InstalledSDKs/D2FF9F89-8AA2-4373-8A31-C838BF4DBBE1",
+    );
 
     # FIXME: It would be better to detect whether we are using 32- or 64-bit Windows
     # and only check the appropriate entry. But for now we just blindly check both.
-    return if (-e $registry32Path . $windowsPlatformSDKRegistryEntry) || (-e $registry64Path . $windowsPlatformSDKRegistryEntry);
+    my $recommendedPlatformSDK = $windowsPlatformSDKRegistryEntries[0];
+
+    while (@windowsPlatformSDKRegistryEntries) {
+        my $windowsPlatformSDKRegistryEntry = shift @windowsPlatformSDKRegistryEntries;
+        return if (-e $registry32Path . $windowsPlatformSDKRegistryEntry) || (-e $registry64Path . $windowsPlatformSDKRegistryEntry);
+    }
 
     print "*************************************************************\n";
-    print "Cannot find registry entry '$windowsPlatformSDKRegistryEntry'.\n";
-    print "Please download and install the Microsoft Windows Server 2003 R2\n";
-    print "Platform SDK from <http://www.microsoft.com/downloads/details.aspx?\n";
-    print "familyid=0baf2b35-c656-4969-ace8-e4c0c0716adb&displaylang=en>.\n\n";
+    print "Cannot find registry entry '$recommendedPlatformSDK'.\n";
+    print "Please download and install the Microsoft Windows SDK\n";
+    print "from <http://www.microsoft.com/en-us/download/details.aspx?id=8279>.\n\n";
     print "Then follow step 2 in the Windows section of the \"Installing Developer\n";
     print "Tools\" instructions at <http://www.webkit.org/building/tools.html>.\n";
     print "*************************************************************\n";