[PATCH] Change in core[libreoffice-4-0]: Make sure that *in this branch* we don't use too new tools

Tor Lillqvist (via Code Review) gerrit at gerrit.libreoffice.org
Tue Jan 8 00:53:25 PST 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/1573

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/73/1573/1

Make sure that *in this branch* we don't use too new tools

This is the branch for 4.0.x and we want to use the VS 2010 compiler
here.

I think that we also don't want to use anyhing newer than Windows SDK
7.1, and .NET Framework 3.5, just to be sure.

Change-Id: I1b94af040829182c0f74edb94843b308251ad8a4
---
M oowintool
1 file changed, 21 insertions(+), 84 deletions(-)



diff --git a/oowintool b/oowintool
index 26221f0..6eed9cb 100755
--- a/oowintool
+++ b/oowintool
@@ -87,25 +87,11 @@
 
 sub print_windows_sdk_home()
 {
-    my ($value, $key);
+    my ($value);
 
-    # This is for the Windows SDK 8 distributed with MSVS 2012
-    $value = reg_get_value ('HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows Kits/Installed Roots/KitsRoot');
-	
-	if (!defined $value) {
-        $value = reg_get_value ('HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/CurrentInstallFolder');
-    }
-    if (!defined $value) {
-        $value = reg_get_value ('HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MicrosoftSDK/Directories/Install Dir');
-    }
-	
-    if (!defined $value) {
-        # Unclear whether we ever get here, don't the above match any
-        # recent Windows SDK?
-        foreach $key (File::Glob::bsd_glob('/proc/registry/HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MicrosoftSDK/InstalledSDKs/*/Install Dir')) {
-            $value = reg_get_value ($key);
-            last if defined $value;
-        }
+    foreach $ver (qw(7.1A 7.1 7.0A 7.0 6.0A)) {
+        $value = reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v$ver/InstallationFolder");
+        last if defined $value;
     }
 
     defined $value || die "Windows SDK not found";
@@ -121,52 +107,19 @@
 
     my ($value, $key);
 
-    foreach $key (File::Glob::bsd_glob('/proc/registry/HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/*/WinSDK-NetFx40Tools/InstallationFolder')) {
-        $key =~ s!^/proc/registry/!!;
-        $value = reg_get_value ($key);
+    $value = reg_get_value('HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v7.0A/WinSDK-NetFx35Tools/InstallationFolder');
 
-        # Sigh, the same test that configure does for al.exe
-        # being either directly in it, or in a "bin" subdir... But on
-        # the other hand we don't want to be mislead by a registry key
-        # that matches the above but points to a directory that does
-        # in fact not contain an al.exe. For me, 
-        # HKLM/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v7.0A/WinSDK-NetFx40Tools/InstallationFolder
-        # contains
-        # c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\
-        # but that then does not contain any al.exe.
+    if (!defined $value) {
+        $value = reg_get_value('HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v6.0A/WinSDKNetFxTools/InstallationFolder');
+    }
 
-        if (-f "$value/bin/al.exe" || -f "$value/al.exe") {
-            print cygpath ($value, 'w', $output_format);
-            return;
-        }
+    if (-f "$value/bin/al.exe" || -f "$value/al.exe") {
+        print cygpath ($value, 'w', $output_format);
+        return;
     }
     die "Can't find al.exe";
 }
 
-my %msvs_2008 = (
-    'ver' => '9.0',
-    'key' => 'Microsoft/VisualStudio/9.0/Setup/VS/ProductDir',
-    'dll_path' => 'VC/redist/x86/Microsoft.VC90.CRT',
-    'dll_suffix' => '90'
-);
-my %msvc_2008 = (
-    'ver' => '9.0',
-    'key' => 'Microsoft/VisualStudio/9.0/Setup/VC/ProductDir',
-    'dll_path' => 'redist/x86/Microsoft.VC90.CRT',
-    'dll_suffix' => '90'
-);
-my %msvs_express_2008 = (
-    'ver' => '9.0',
-    'key' => 'Microsoft/VCExpress/9.0/Setup/VS/ProductDir',
-    'dll_path' => 'VC/redist/x86/Microsoft.VC90.CRT',
-    'dll_suffix' => '90'
-);
-my %msvc_express_2008 = (
-    'ver' => '9.0',
-    'key' => 'Microsoft/VCExpress/9.0/Setup/VC/ProductDir',
-    'dll_path' => 'redist/x86/Microsoft.VC90.CRT',
-    'dll_suffix' => '90'
-);
 my %msvs_2010 = (
     'ver' => '10.0',
     'key' => 'Microsoft/VisualStudio/10.0/Setup/VS/ProductDir',
@@ -179,22 +132,10 @@
     'dll_path' => 'redist/x86/Microsoft.VC100.CRT',
     'dll_suffix' => '100'
 );
-my %msvs_2012 = (
-    'ver' => '11.0',
-    'key' => 'Microsoft/VisualStudio/11.0/Setup/VS/ProductDir',
-    'dll_path' => 'VC/redist/x86/Microsoft.VC110.CRT',
-    'dll_suffix' => '110'
-);
-my %msvc_2012 = (
-    'ver' => '11.0',
-    'key' => 'Microsoft/VisualStudio/11.0/Setup/VC/ProductDir',
-    'dll_path' => 'redist/x86/Microsoft.VC110.CRT',
-    'dll_suffix' => '110'
-);
 
 sub find_msvs()
 {
-    my @ms_versions = ( \%msvs_2010, \%msvs_2012, \%msvs_2008, \%msvs_express_2008 );
+    my @ms_versions = ( \%msvs_2010 );
 
     for $ver (@ms_versions) {
         my $install = reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/" . $ver->{'key'});
@@ -208,7 +149,7 @@
 
 sub find_msvc()
 {
-    my @ms_versions = ( \%msvc_2010, \%msvc_2012, \%msvc_2008, \%msvc_express_2008 );
+    my @ms_versions = ( \%msvc_2010 );
 
     for $ver (@ms_versions) {
         my $install = reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/" . $ver->{'key'});
@@ -242,18 +183,14 @@
 {
     my $csc_exe;
     my $ver = find_msvc();
-    if ($ver->{'ver'} == "9.0") {
-        # We need to compile C# with the 3.5 or 2.0 compiler in order
-        # for the assemblies to be loadable by managed C++ code
-        # compiled with MSVC 2008.
-        $csc_exe =
-            reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v3.5/InstallPath") ||
-            reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/.NETFramework/InstallRoot") . "v2.0.50727";
-    } else {
-        # Is it enough to look for the 4.0 compiler?
-        $csc_exe =
-            reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v4/Client/InstallPath");
-    }
+
+    # We need to compile C# with the 3.5 or 2.0 compiler in order for
+    # the assemblies to be usable on at least vanilla XP SP3 with no
+    # .NET Framework 4 or later.
+
+    $csc_exe =
+      reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v3.5/InstallPath") ||
+        reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/.NETFramework/InstallRoot") . "v2.0.50727";
     print cygpath ($csc_exe, 'w', $output_format);
 }
 

-- 
To view, visit https://gerrit.libreoffice.org/1573
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1b94af040829182c0f74edb94843b308251ad8a4
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-4-0
Gerrit-Owner: Tor Lillqvist <tml at iki.fi>



More information about the LibreOffice mailing list