summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2019-07-23 09:21:10 +0200
committerRichard Levitte <levitte@openssl.org>2019-08-17 07:55:12 +0200
commitbcc0025d0b5d231ee3662cf7f3c522ba43079858 (patch)
treeca218190104c6f6e0e3ae17d9600d64a15df093e
parent653b883b97f72a15d35d21246696881aa65311e2 (diff)
Windows UWP builds: determine automatically if asm should be disabled
Earlier Windows SDK versions lack the necessary support for our ASM builds, so we check for the SDK version that has the support. Information on exactly what registry key to check was found here: https://stackoverflow.com/questions/2665755/how-can-i-determine-the-version-of-the-windows-sdk-installed-on-my-computer Ref: #9125 Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/9440)
-rw-r--r--Configurations/50-win-onecore.conf32
1 files changed, 28 insertions, 4 deletions
diff --git a/Configurations/50-win-onecore.conf b/Configurations/50-win-onecore.conf
index d4e6e64f15..1e5d970b4b 100644
--- a/Configurations/50-win-onecore.conf
+++ b/Configurations/50-win-onecore.conf
@@ -1,3 +1,4 @@
+## -*- mode: perl; -*-
# Windows OneCore targets.
#
# OneCore is new API stability "contract" that transcends Desktop, IoT and
@@ -10,6 +11,25 @@
# TODO: extend error handling to use ETW based eventing
# (Or rework whole error messaging)
+my $UWP_info = {};
+sub UWP_info {
+ unless (%$UWP_info) {
+ my $SDKver = `powershell -Command \"& {\$(Get-Item \\\"hklm:\\SOFTWARE\\WOW6432Node\\Microsoft\\Microsoft SDKs\\Windows\\\").GetValue(\\\"CurrentVersion\\\")}\"`;
+ $SDKver =~ s|\R$||;
+ my @SDKver_split = split(/\./, $SDKver);
+ # SDK version older than 10.0.17763 don't support our ASM builds
+ if ($SDKver_split[0] < 10
+ || ($SDKver_split[0] == 10
+ && $SDKver_split[1] == 0
+ && $SDKver_split[2] < 17763)) {
+ $UWP_info->{disable} = [ 'asm' ];
+ } else {
+ $UWP_info->{disable} = [ ];
+ }
+ }
+ return $UWP_info;
+}
+
my %targets = (
"VC-WIN32-ONECORE" => {
inherit_from => [ "VC-WIN32" ],
@@ -80,7 +100,8 @@ my %targets = (
defines => add("WINAPI_FAMILY=WINAPI_FAMILY_APP",
"_WIN32_WINNT=0x0A00"),
dso_scheme => "",
- disable => [ 'ui-console', 'stdio', 'async', 'uplink' ],
+ disable => sub { [ 'ui-console', 'stdio', 'async', 'uplink',
+ @{ UWP_info()->{disable} } ] },
ex_libs => "WindowsApp.lib",
},
"VC-WIN64A-UWP" => {
@@ -89,7 +110,8 @@ my %targets = (
defines => add("WINAPI_FAMILY=WINAPI_FAMILY_APP",
"_WIN32_WINNT=0x0A00"),
dso_scheme => "",
- disable => [ 'ui-console', 'stdio', 'async', 'uplink' ],
+ disable => sub { [ 'ui-console', 'stdio', 'async', 'uplink',
+ @{ UWP_info()->{disable} } ] },
ex_libs => "WindowsApp.lib",
},
"VC-WIN32-ARM-UWP" => {
@@ -98,7 +120,8 @@ my %targets = (
defines => add("WINAPI_FAMILY=WINAPI_FAMILY_APP",
"_WIN32_WINNT=0x0A00"),
dso_scheme => "",
- disable => [ 'ui-console', 'stdio', 'async', 'uplink' ],
+ disable => sub { [ 'ui-console', 'stdio', 'async', 'uplink',
+ @{ UWP_info()->{disable} } ] },
ex_libs => "WindowsApp.lib",
},
"VC-WIN64-ARM-UWP" => {
@@ -107,7 +130,8 @@ my %targets = (
defines => add("WINAPI_FAMILY=WINAPI_FAMILY_APP",
"_WIN32_WINNT=0x0A00"),
dso_scheme => "",
- disable => [ 'ui-console', 'stdio', 'async', 'uplink' ],
+ disable => sub { [ 'ui-console', 'stdio', 'async', 'uplink',
+ @{ UWP_info()->{disable} } ] },
ex_libs => "WindowsApp.lib",
},
);