diff options
author | Brad King <brad.king@kitware.com> | 2019-04-19 11:40:14 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-04-19 11:46:13 (GMT) |
commit | db02be85a0bcccb633b31f087cde96d95fd21e8f (patch) | |
tree | 9814a9faa000bc83770dac6593a4b9fed890e3eb /Source | |
parent | 5e98111643e22ad515afa2bf48a92573b6987115 (diff) | |
download | CMake-db02be85a0bcccb633b31f087cde96d95fd21e8f.zip CMake-db02be85a0bcccb633b31f087cde96d95fd21e8f.tar.gz CMake-db02be85a0bcccb633b31f087cde96d95fd21e8f.tar.bz2 |
VS: Provide the default platform name to project code
The value of `CMAKE_VS_PLATFORM_NAME` is computed by Visual Studio
generators based on `CMAKE_GENERATOR_PLATFORM` or some default.
Prior to the VS 2019 generator, the default was always `Win32`.
However, for the `Visual Studio 16 2019` generator, the default is
based on the host platform.
Store the default in a new `CMAKE_VS_PLATFORM_NAME_DEFAULT` variable for
use by project code. This is particularly useful in toolchain files
because they are allowed to set `CMAKE_GENERATOR_PLATFORM` and so
`CMAKE_VS_PLATFORM_NAME` is not yet known. Of course the toolchain file
author knows whether it will set `CMAKE_GENERATOR_PLATFORM`, and if not
then `CMAKE_VS_PLATFORM_NAME_DEFAULT` provides the platform name that
will be used.
Fixes: #19177
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmGlobalVisualStudio7Generator.cxx | 2 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudioGenerator.cxx | 8 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudioGenerator.h | 3 |
3 files changed, 12 insertions, 1 deletions
diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx index d457f60..d138c1e 100644 --- a/Source/cmGlobalVisualStudio7Generator.cxx +++ b/Source/cmGlobalVisualStudio7Generator.cxx @@ -101,7 +101,7 @@ void cmGlobalVisualStudio7Generator::EnableLanguage( } // Create list of configurations requested by user's cache, if any. - this->cmGlobalGenerator::EnableLanguage(lang, mf, optional); + this->cmGlobalVisualStudioGenerator::EnableLanguage(lang, mf, optional); // if this environment variable is set, then copy it to // a static cache entry. It will be used by diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx index 639dc22..f3ed76b 100644 --- a/Source/cmGlobalVisualStudioGenerator.cxx +++ b/Source/cmGlobalVisualStudioGenerator.cxx @@ -52,6 +52,14 @@ void cmGlobalVisualStudioGenerator::SetVersion(VSVersion v) this->Version = v; } +void cmGlobalVisualStudioGenerator::EnableLanguage( + std::vector<std::string> const& lang, cmMakefile* mf, bool optional) +{ + mf->AddDefinition("CMAKE_VS_PLATFORM_NAME_DEFAULT", + this->DefaultPlatformName.c_str()); + this->cmGlobalGenerator::EnableLanguage(lang, mf, optional); +} + bool cmGlobalVisualStudioGenerator::SetGeneratorPlatform(std::string const& p, cmMakefile* mf) { diff --git a/Source/cmGlobalVisualStudioGenerator.h b/Source/cmGlobalVisualStudioGenerator.h index 039191c..cbab329 100644 --- a/Source/cmGlobalVisualStudioGenerator.h +++ b/Source/cmGlobalVisualStudioGenerator.h @@ -50,6 +50,9 @@ public: /** Is the installed VS an Express edition? */ bool IsExpressEdition() const { return this->ExpressEdition; } + void EnableLanguage(std::vector<std::string> const& languages, cmMakefile*, + bool optional) override; + bool SetGeneratorPlatform(std::string const& p, cmMakefile* mf) override; /** |