]> granicus.if.org Git - postgresql/commitdiff
Allow MSVC to build with Tcl 8.6.
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 5 May 2017 15:05:34 +0000 (12:05 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 5 May 2017 15:05:34 +0000 (12:05 -0300)
Commit eaba54c20c5 added support for Tcl 8.6 for configure-supported
platforms after verifying that pltcl works without further changes, but
the MSVC tooling wasn't updated accordingly.  Update MSVC to match,
restructuring the code to avoid duplicating the logic for every Tcl
version supported.

Backpatch to all live branches, like eaba54c20c5.  In 9.4 and previous,
change the patch to use backslashes rather than forward, as in the rest
of the file.

Reported by Paresh More, who also tested the patch I provided.
Discussion: https://postgr.es/m/CAAgiCNGVw3ssBtSi3ZNstrz5k00ax=UV+_ZEHUeW_LMSGL2sew@mail.gmail.com

src/tools/msvc/Mkvcbuild.pm

index fe905d3c9d154052991e97646daf06b4e680bc51..57af0a0a950190d1287d8ba618c8a8d1b5a91a7a 100644 (file)
@@ -194,20 +194,24 @@ sub mkvcbuild
 
        if ($solution->{options}->{tcl})
        {
+               my $found = 0;
                my $pltcl =
                  $solution->AddProject('pltcl', 'dll', 'PLs', 'src/pl/tcl');
                $pltcl->AddIncludeDir($solution->{options}->{tcl} . '/include');
                $pltcl->AddReference($postgres);
-               if (-e $solution->{options}->{tcl} . '/lib/tcl85.lib')
-               {
-                       $pltcl->AddLibrary(
-                               $solution->{options}->{tcl} . '/lib/tcl85.lib');
-               }
-               else
+
+               for my $tclver (qw(86t 85 84))
                {
-                       $pltcl->AddLibrary(
-                               $solution->{options}->{tcl} . '/lib/tcl84.lib');
+                       my $tcllib = $solution->{options}->{tcl} . "/lib/tcl$tclver.lib";
+                       if (-e $tcllib)
+                       {
+                               $pltcl->AddLibrary($tcllib);
+                               $found = 1;
+                               last;
+                       }
                }
+               die "Unable to find $solution->{options}->{tcl}/lib/tcl<version>.lib"
+                       unless $found;
        }
 
        $libpq = $solution->AddProject('libpq', 'dll', 'interfaces',