]>
Commit | Line | Data |
---|---|---|
5936e888 AP |
1 | # Windows OneCore targets. |
2 | # | |
c2969ff6 | 3 | # OneCore is new API stability "contract" that transcends Desktop, IoT and |
5936e888 AP |
4 | # Mobile[?] Windows editions. It's a set up "umbrella" libraries that |
5 | # export subset of Win32 API that are common to all Windows 10 devices. | |
6 | # | |
df443918 | 7 | # OneCore Configuration temporarly dedicated for console applications |
b2b4dfcc P |
8 | # due to disabled event logging, which is incompatible with one core. |
9 | # Error messages are provided via standard error only. | |
10 | # TODO: extend error handling to use ETW based eventing | |
11 | # (Or rework whole error messaging) | |
5936e888 AP |
12 | |
13 | my %targets = ( | |
14 | "VC-WIN32-ONECORE" => { | |
15 | inherit_from => [ "VC-WIN32" ], | |
16 | # /NODEFAULTLIB:kernel32.lib is needed, because MSVCRT.LIB has | |
17 | # hidden reference to kernel32.lib, but we don't actually want | |
18 | # it in "onecore" build. | |
19 | lflags => add("/NODEFAULTLIB:kernel32.lib"), | |
b2b4dfcc P |
20 | defines => add("OPENSSL_SYS_WIN_CORE"), |
21 | ex_libs => "onecore.lib", | |
5936e888 AP |
22 | }, |
23 | "VC-WIN64A-ONECORE" => { | |
24 | inherit_from => [ "VC-WIN64A" ], | |
25 | lflags => add("/NODEFAULTLIB:kernel32.lib"), | |
b2b4dfcc P |
26 | defines => add("OPENSSL_SYS_WIN_CORE"), |
27 | ex_libs => "onecore.lib", | |
5936e888 AP |
28 | }, |
29 | ||
30 | # Windows on ARM targets. ARM compilers are additional components in | |
31 | # VS2017, i.e. they are not installed by default. And when installed, | |
32 | # there are no "ARM Tool Command Prompt"s on Start menu, you have | |
33 | # to locate vcvarsall.bat and act accordingly. VC-WIN32-ARM has | |
34 | # received limited testing with evp_test.exe on Windows 10 IoT Core, | |
35 | # but not VC-WIN64-ARM, no hardware... In other words they are not | |
36 | # actually supported... | |
37 | # | |
38 | # Another thing to keep in mind [in cross-compilation scenario such | |
39 | # as this one] is that target's file system has nothing to do with | |
40 | # compilation system's one. This means that you're are likely to use | |
41 | # --prefix and --openssldir with target-specific values. 'nmake install' | |
42 | # step is effectively meaningless in cross-compilation case, though | |
43 | # it might be useful to 'nmake install DESTDIR=S:\ome\where' where you | |
44 | # can point Visual Studio to when compiling custom application code. | |
45 | ||
46 | "VC-WIN32-ARM" => { | |
47 | inherit_from => [ "VC-noCE-common" ], | |
b2b4dfcc P |
48 | defines => add("_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE", |
49 | "OPENSSL_SYS_WIN_CORE"), | |
211da00b | 50 | bn_ops => "BN_LLONG RC4_CHAR", |
5936e888 | 51 | lflags => add("/NODEFAULTLIB:kernel32.lib"), |
b2b4dfcc | 52 | ex_libs => "onecore.lib", |
5936e888 AP |
53 | multilib => "-arm", |
54 | }, | |
55 | "VC-WIN64-ARM" => { | |
56 | inherit_from => [ "VC-noCE-common" ], | |
b2b4dfcc P |
57 | defines => add("_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE", |
58 | "OPENSSL_SYS_WIN_CORE"), | |
211da00b | 59 | bn_ops => "SIXTY_FOUR_BIT RC4_CHAR", |
5936e888 | 60 | lflags => add("/NODEFAULTLIB:kernel32.lib"), |
b2b4dfcc | 61 | ex_libs => "onecore.lib", |
5936e888 AP |
62 | multilib => "-arm64", |
63 | }, | |
5ded1ca6 M |
64 | |
65 | # Universal Windows Platform (UWP) App Support | |
66 | ||
67 | # TODO | |
68 | # | |
69 | # The 'disable' attribute should have 'uplink'. | |
70 | # however, these are checked in some 'inherit_from', which is processed | |
71 | # very early, before the 'disable' attributes are seen. | |
72 | # This is a problem that needs to be resolved in Configure first. | |
73 | # | |
74 | # But if you want to build library with Windows 10 Version 1809 SDK or | |
75 | # earlier, the 'disable' attribute should also have 'asm'. | |
76 | ||
77 | "VC-WIN32-UWP" => { | |
78 | inherit_from => [ "VC-WIN32-ONECORE" ], | |
79 | lflags => add("/APPCONTAINER"), | |
80 | defines => add("WINAPI_FAMILY=WINAPI_FAMILY_APP", | |
81 | "_WIN32_WINNT=0x0A00"), | |
82 | dso_scheme => "", | |
83 | disable => [ 'ui-console', 'stdio', 'async', 'uplink' ], | |
84 | ex_libs => "WindowsApp.lib", | |
85 | }, | |
86 | "VC-WIN64A-UWP" => { | |
87 | inherit_from => [ "VC-WIN64A-ONECORE" ], | |
88 | lflags => add("/APPCONTAINER"), | |
89 | defines => add("WINAPI_FAMILY=WINAPI_FAMILY_APP", | |
90 | "_WIN32_WINNT=0x0A00"), | |
91 | dso_scheme => "", | |
92 | disable => [ 'ui-console', 'stdio', 'async', 'uplink' ], | |
93 | ex_libs => "WindowsApp.lib", | |
94 | }, | |
95 | "VC-WIN32-ARM-UWP" => { | |
96 | inherit_from => [ "VC-WIN32-ARM" ], | |
97 | lflags => add("/APPCONTAINER"), | |
98 | defines => add("WINAPI_FAMILY=WINAPI_FAMILY_APP", | |
99 | "_WIN32_WINNT=0x0A00"), | |
100 | dso_scheme => "", | |
101 | disable => [ 'ui-console', 'stdio', 'async', 'uplink' ], | |
102 | ex_libs => "WindowsApp.lib", | |
103 | }, | |
104 | "VC-WIN64-ARM-UWP" => { | |
105 | inherit_from => [ "VC-WIN64-ARM" ], | |
106 | lflags => add("/APPCONTAINER"), | |
107 | defines => add("WINAPI_FAMILY=WINAPI_FAMILY_APP", | |
108 | "_WIN32_WINNT=0x0A00"), | |
109 | dso_scheme => "", | |
110 | disable => [ 'ui-console', 'stdio', 'async', 'uplink' ], | |
111 | ex_libs => "WindowsApp.lib", | |
112 | }, | |
5936e888 | 113 | ); |