win-onecore: Build with /APPCONTAINER for UWP compat
authorNirbheek Chauhan <nirbheek.chauhan@gmail.com>
Wed, 8 Jul 2020 17:53:04 +0000 (23:23 +0530)
committerMatt Caswell <matt@openssl.org>
Mon, 4 Jan 2021 12:01:55 +0000 (12:01 +0000)
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)

Configurations/50-win-onecore.conf

index 91e77b663fae9b04da9d668732c4fdefbf37b1f9..efa2c837bcba0917f544c0ddab6b1fdc84c6eff8 100644 (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",
     },