50-win-onecore.conf 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. # Windows OneCore targets.
  2. #
  3. # OneCore is new API stability "contract" that transends Desktop, IoT and
  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. #
  7. # TODO: drop onecore_downlevel.lib.
  8. my %targets = (
  9. "VC-WIN32-ONECORE" => {
  10. inherit_from => [ "VC-WIN32" ],
  11. # /NODEFAULTLIB:kernel32.lib is needed, because MSVCRT.LIB has
  12. # hidden reference to kernel32.lib, but we don't actually want
  13. # it in "onecore" build.
  14. lflags => add("/NODEFAULTLIB:kernel32.lib"),
  15. ex_libs => "onecore.lib onecore_downlevel.lib",
  16. },
  17. "VC-WIN64A-ONECORE" => {
  18. inherit_from => [ "VC-WIN64A" ],
  19. lflags => add("/NODEFAULTLIB:kernel32.lib"),
  20. ex_libs => "onecore.lib onecore_downlevel.lib",
  21. },
  22. # Windows on ARM targets. ARM compilers are additional components in
  23. # VS2017, i.e. they are not installed by default. And when installed,
  24. # there are no "ARM Tool Command Prompt"s on Start menu, you have
  25. # to locate vcvarsall.bat and act accordingly. VC-WIN32-ARM has
  26. # received limited testing with evp_test.exe on Windows 10 IoT Core,
  27. # but not VC-WIN64-ARM, no hardware... In other words they are not
  28. # actually supported...
  29. #
  30. # Another thing to keep in mind [in cross-compilation scenario such
  31. # as this one] is that target's file system has nothing to do with
  32. # compilation system's one. This means that you're are likely to use
  33. # --prefix and --openssldir with target-specific values. 'nmake install'
  34. # step is effectively meaningless in cross-compilation case, though
  35. # it might be useful to 'nmake install DESTDIR=S:\ome\where' where you
  36. # can point Visual Studio to when compiling custom application code.
  37. "VC-WIN32-ARM" => {
  38. inherit_from => [ "VC-noCE-common" ],
  39. defines => add("_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE"),
  40. bn_ops => "BN_LLONG RC4_CHAR EXPORT_VAR_AS_FN",
  41. lflags => add("/NODEFAULTLIB:kernel32.lib"),
  42. ex_libs => "onecore.lib onecore_downlevel.lib",
  43. multilib => "-arm",
  44. },
  45. "VC-WIN64-ARM" => {
  46. inherit_from => [ "VC-noCE-common" ],
  47. defines => add("_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE"),
  48. bn_ops => "SIXTY_FOUR_BIT RC4_CHAR EXPORT_VAR_AS_FN",
  49. lflags => add("/NODEFAULTLIB:kernel32.lib"),
  50. ex_libs => "onecore.lib onecore_downlevel.lib",
  51. multilib => "-arm64",
  52. },
  53. );