summaryrefslogtreecommitdiff
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:39:19 -0400
commit3b9c227008a65b0135931e9478cf2b5bb16eca34 (patch)
tree1d165cfbc2965a6a88c831c271b532f828b1bb00
parentb8ddf0bdf74603fa04aab911afac861efec0a0a3 (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.
-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 0d3554659b0..04fa74b7a93 100644
--- a/src/tools/msvc/Project.pm
+++ b/src/tools/msvc/Project.pm
@@ -132,7 +132,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 c59cfd50238..c857ae88e3e 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -129,8 +129,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