Browse Source

Merge topic 'vs2019-wow64'

5c50eeaffc VS: Fix x64 host recognition by x86 cmake process

Acked-by: Kitware Robot <[email protected]>
Merge-request: !3102
Brad King 6 years ago
parent
commit
7d77607d10
1 changed files with 10 additions and 5 deletions
  1. 10 5
      Source/cmGlobalVisualStudioVersionedGenerator.cxx

+ 10 - 5
Source/cmGlobalVisualStudioVersionedGenerator.cxx

@@ -18,8 +18,15 @@
 #elif defined(_M_IA64)
 #  define HOST_PLATFORM_NAME "Itanium"
 #  define HOST_TOOLS_ARCH ""
+#elif defined(_WIN64)
+#  define HOST_PLATFORM_NAME "x64"
+#  define HOST_TOOLS_ARCH "x64"
 #else
-#  include "cmsys/SystemInformation.hxx"
+static bool VSIsWow64()
+{
+  BOOL isWow64 = false;
+  return IsWow64Process(GetCurrentProcess(), &isWow64) && isWow64;
+}
 #endif
 
 static std::string VSHostPlatformName()
@@ -27,8 +34,7 @@ static std::string VSHostPlatformName()
 #ifdef HOST_PLATFORM_NAME
   return HOST_PLATFORM_NAME;
 #else
-  cmsys::SystemInformation info;
-  if (info.Is64Bits()) {
+  if (VSIsWow64()) {
     return "x64";
   } else {
     return "Win32";
@@ -41,8 +47,7 @@ static std::string VSHostArchitecture()
 #ifdef HOST_TOOLS_ARCH
   return HOST_TOOLS_ARCH;
 #else
-  cmsys::SystemInformation info;
-  if (info.Is64Bits()) {
+  if (VSIsWow64()) {
     return "x64";
   } else {
     return "x86";