ср, 7 авг. 2019 г. в 11:29, Kyotaro Horiguchi <horikyota....@gmail.com>: > > Hi, > > At Tue, 6 Aug 2019 22:50:14 +0300, Dmitry Igrishin <dmit...@gmail.com> 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