diff options
author | Brad King <brad.king@kitware.com> | 2019-01-28 15:49:16 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-01-28 17:58:21 (GMT) |
commit | 0fd742a6ffa637b8ccac3b61b42bd10b2c3a87cc (patch) | |
tree | 3f264f210f2e7ab523433b4f87509e581c7e9110 /Source/cmGlobalVisualStudioVersionedGenerator.cxx | |
parent | 17cef3806d958bd03ec08b925fe585a0cfa204fa (diff) | |
download | CMake-0fd742a6ffa637b8ccac3b61b42bd10b2c3a87cc.zip CMake-0fd742a6ffa637b8ccac3b61b42bd10b2c3a87cc.tar.gz CMake-0fd742a6ffa637b8ccac3b61b42bd10b2c3a87cc.tar.bz2 |
VS: Teach VS 2019 generator to select host tools matching host arch
This generator is new so we can introduce the long-desired behavior
of selecting ``host=x64`` tools by default on x64 hosts.
Diffstat (limited to 'Source/cmGlobalVisualStudioVersionedGenerator.cxx')
-rw-r--r-- | Source/cmGlobalVisualStudioVersionedGenerator.cxx | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Source/cmGlobalVisualStudioVersionedGenerator.cxx b/Source/cmGlobalVisualStudioVersionedGenerator.cxx index b019f39..bc6b453 100644 --- a/Source/cmGlobalVisualStudioVersionedGenerator.cxx +++ b/Source/cmGlobalVisualStudioVersionedGenerator.cxx @@ -11,10 +11,13 @@ #if defined(_M_ARM64) # define HOST_PLATFORM_NAME "ARM64" +# define HOST_TOOLS_ARCH "" #elif defined(_M_ARM) # define HOST_PLATFORM_NAME "ARM" +# define HOST_TOOLS_ARCH "" #elif defined(_M_IA64) # define HOST_PLATFORM_NAME "Itanium" +# define HOST_TOOLS_ARCH "" #else # include "cmsys/SystemInformation.hxx" #endif @@ -33,6 +36,20 @@ static std::string VSHostPlatformName() #endif } +static std::string VSHostArchitecture() +{ +#ifdef HOST_TOOLS_ARCH + return HOST_TOOLS_ARCH; +#else + cmsys::SystemInformation info; + if (info.Is64Bits()) { + return "x64"; + } else { + return "x86"; + } +#endif +} + static unsigned int VSVersionToMajor( cmGlobalVisualStudioGenerator::VSVersion v) { @@ -262,6 +279,7 @@ cmGlobalVisualStudioVersionedGenerator::cmGlobalVisualStudioVersionedGenerator( this->DefaultLinkFlagTableName = VSVersionToToolset(this->Version); if (this->Version >= cmGlobalVisualStudioGenerator::VS16) { this->DefaultPlatformName = VSHostPlatformName(); + this->DefaultPlatformToolsetHostArchitecture = VSHostArchitecture(); } } |