summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Dunstan <andrew@dunslane.net>2019-10-04 15:34:40 -0400
committerAndrew Dunstan <andrew@dunslane.net>2019-10-04 15:38:48 -0400
commit6ca51b155256b2e814b0238119a70545e78106ec (patch)
tree2c3f2abd176fb46cddd8ce56b01b8b5e04acc282 /src
parent8b77f783b7584e8cbcf0aa42c7f176f7f23937ae (diff)
Handle spaces in OpenSSL install location for MSVC
First, make sure that the .exe name is quoted when trying to get the version number. Also, don't quote the lib name for using in the project files if it's already been quoted. This second change applies to all libraries, not just OpenSSL. This has clearly been broken forever, so backpatch to all live branches.
Diffstat (limited to 'src')
-rw-r--r--src/tools/msvc/Project.pm3
-rw-r--r--src/tools/msvc/Solution.pm3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm
index 4ce09418537..de0a2312e93 100644
--- a/src/tools/msvc/Project.pm
+++ b/src/tools/msvc/Project.pm
@@ -126,7 +126,8 @@ sub AddLibrary
{
my ($self, $lib, $dbgsuffix) = @_;
- if ($lib =~ m/\s/)
+ # quote lib name if it has spaces and isn't already quoted
+ if ($lib =~ m/\s/ && $lib !~ m/^[&]quot;/)
{
$lib = '&quot;' . $lib . "&quot;";
}
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index ff7ac43a1ed..4f3b15db6cb 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -130,8 +130,9 @@ sub GetOpenSSLVersion
# Attempt to get OpenSSL version and location. This assumes that
# openssl.exe is in the specified directory.
+ # Quote the .exe name in case it has spaces
my $opensslcmd =
- $self->{options}->{openssl} . "\\bin\\openssl.exe version 2>&1";
+ qq("$self->{options}->{openssl}\\bin\\openssl.exe" version 2>&1);
my $sslout = `$opensslcmd`;
$? >> 8 == 0