Commit a05af1d4 authored by Magnus Hagander's avatar Magnus Hagander

Make the msvc build system ask python about details of version and installation

prefix, instead of assuming it will always be following the default layout.

All information we need is not available on Windows, but the number of
assumptions are at least fewer this way than before.

Based on suggestions from James William Pye.
parent c5d644a8
...@@ -3,7 +3,7 @@ package Mkvcbuild; ...@@ -3,7 +3,7 @@ package Mkvcbuild;
# #
# Package that generates build files for msvc build # Package that generates build files for msvc build
# #
# $PostgreSQL: pgsql/src/tools/msvc/Mkvcbuild.pm,v 1.51 2010/01/20 09:22:43 heikki Exp $ # $PostgreSQL: pgsql/src/tools/msvc/Mkvcbuild.pm,v 1.52 2010/02/14 14:10:23 mha Exp $
# #
use Carp; use Carp;
use Win32; use Win32;
...@@ -147,11 +147,18 @@ sub mkvcbuild ...@@ -147,11 +147,18 @@ sub mkvcbuild
if ($solution->{options}->{python}) if ($solution->{options}->{python})
{ {
# Attempt to get python version and location. Assume python.exe in specified dir.
open(P, $solution->{options}->{python} . "\\python -c \"import sys;print(sys.prefix);print(str(sys.version_info[0])+str(sys.version_info[1]))\" |") || die "Could not query for python versoin!\n";
my $pyprefix = <P>;chomp($pyprefix);
my $pyver = <P>;chomp($pyver);
close(P);
# Sometimes (always?) if python is not present, the execution actually works, but gives no data...
die "Failed to query python for version information\n" if (!(defined($pyprefix) && defined($pyver)));
my $plpython = $solution->AddProject('plpython','dll','PLs','src\pl\plpython'); my $plpython = $solution->AddProject('plpython','dll','PLs','src\pl\plpython');
$plpython->AddIncludeDir($solution->{options}->{python} . '\include'); $plpython->AddIncludeDir($pyprefix . '\include');
$solution->{options}->{python} =~ /\\Python(\d{2})/i $plpython->AddLibrary($pyprefix . "\\Libs\\python$pyver.lib");
|| croak "Could not determine python version from path";
$plpython->AddLibrary($solution->{options}->{python} . "\\Libs\\python$1.lib");
$plpython->AddReference($postgres); $plpython->AddReference($postgres);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment