win-onecore: Build with /APPCONTAINER for UWP compat

When targeting the win-onecore configuration, we must link with
/APPCONTAINER which is a requirement for submitting apps to the
Windows Store.

Without this, the Windows App Certificate Kit will reject the app:
https://docs.microsoft.com/en-us/cpp/build/reference/appcontainer-windows-store-app

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12400)
This commit is contained in:
Nirbheek Chauhan 2020-07-08 23:23:04 +05:30 committed by Matt Caswell
parent ce11192650
commit 2c61a670eb

View File

@ -36,13 +36,14 @@ my %targets = (
# /NODEFAULTLIB:kernel32.lib is needed, because MSVCRT.LIB has
# hidden reference to kernel32.lib, but we don't actually want
# it in "onecore" build.
lflags => add("/NODEFAULTLIB:kernel32.lib"),
# /APPCONTAINER is needed for Universal Windows Platform compat
lflags => add("/NODEFAULTLIB:kernel32.lib /APPCONTAINER"),
defines => add("OPENSSL_SYS_WIN_CORE"),
ex_libs => "onecore.lib",
},
"VC-WIN64A-ONECORE" => {
inherit_from => [ "VC-WIN64A" ],
lflags => add("/NODEFAULTLIB:kernel32.lib"),
lflags => add("/NODEFAULTLIB:kernel32.lib /APPCONTAINER"),
defines => add("OPENSSL_SYS_WIN_CORE"),
ex_libs => "onecore.lib",
},
@ -68,7 +69,7 @@ my %targets = (
defines => add("_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE",
"OPENSSL_SYS_WIN_CORE"),
bn_ops => "BN_LLONG RC4_CHAR",
lflags => add("/NODEFAULTLIB:kernel32.lib"),
lflags => add("/NODEFAULTLIB:kernel32.lib /APPCONTAINER"),
ex_libs => "onecore.lib",
multilib => "-arm",
},
@ -77,7 +78,7 @@ my %targets = (
defines => add("_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE",
"OPENSSL_SYS_WIN_CORE"),
bn_ops => "SIXTY_FOUR_BIT RC4_CHAR",
lflags => add("/NODEFAULTLIB:kernel32.lib"),
lflags => add("/NODEFAULTLIB:kernel32.lib /APPCONTAINER"),
ex_libs => "onecore.lib",
multilib => "-arm64",
},