ср, 7 авг. 2019 г. в 11:29, Kyotaro Horiguchi <[email protected]>:
>
> Hi,
>
> At Tue, 6 Aug 2019 22:50:14 +0300, Dmitry Igrishin <[email protected]> wrote
> in <caafz9ko4nt-kdukacekfnd+1lez6nh_hjpgamonftezlrkz...@mail.gmail.com>
> > The attached self-documented patch fixes build on Windows in case when
> > path to Python has embedded spaces.
>
> - $solution->{options}->{python} . "\\python -c \"$pythonprog\"";
> + "\"$solution->{options}->{python}\\python\" -c \"$pythonprog\"";
>
> Solution.pm has the following line:
>
> > my $opensslcmd =
> > $self->{options}->{openssl} . "\\bin\\openssl.exe version 2>&1";
>
> AFAICS that's all.
Thank you! The attached 2nd version of the patch fixes this too.
>
>
> - if ($lib =~ m/\s/)
> - {
> - $lib = '"' . $lib . """;
> - }
> + # Since VC automatically quotes paths specified as the data of
> + # <AdditionalDependencies> in VC project file, it's mistakably
> + # to quote them here. Thus, it's okay if $lib contains spaces.
>
> I'm not sure, but it's not likely that someone adds it without
> actually stumbling on space-containing paths with the ealier
> version. Anyway if we shouldn't touch this unless the existing
> code makes actual problem.
So, do you think a comment is not needed here?
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index d1d0aed07e..76834f5188 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -495,7 +495,7 @@ sub mkvcbuild
my $pythonprog = "import sys;print(sys.prefix);"
. "print(str(sys.version_info[0])+str(sys.version_info[1]))";
my $prefixcmd =
- $solution->{options}->{python} . "\\python -c \"$pythonprog\"";
+ "\"$solution->{options}->{python}\\python\" -c \"$pythonprog\"";
my $pyout = `$prefixcmd`;
die "Could not query for python version!\n" if $?;
my ($pyprefix, $pyver) = split(/\r?\n/, $pyout);
diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm
index b5d1dc6e89..28893f072d 100644
--- a/src/tools/msvc/Project.pm
+++ b/src/tools/msvc/Project.pm
@@ -132,10 +132,9 @@ sub AddLibrary
{
my ($self, $lib, $dbgsuffix) = @_;
- if ($lib =~ m/\s/)
- {
- $lib = '"' . $lib . """;
- }
+ # Since VC automatically quotes paths specified as the data of
+ # <AdditionalDependencies> in VC project file, it's mistakably
+ # to quote them here. Thus, it's okay if $lib contains spaces.
push @{ $self->{libraries} }, $lib;
if ($dbgsuffix)
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 318594db5d..327e556c53 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -126,7 +126,7 @@ sub GetOpenSSLVersion
# Attempt to get OpenSSL version and location. This assumes that
# openssl.exe is in the specified directory.
my $opensslcmd =
- $self->{options}->{openssl} . "\\bin\\openssl.exe version 2>&1";
+ "\"$self->{options}->{openssl}\\bin\\openssl.exe\" version 2>&1";
my $sslout = `$opensslcmd`;
$? >> 8 == 0