diff options
author | Gilles Khouzam <gillesk@microsoft.com> | 2015-09-01 20:52:36 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-09-02 14:11:36 (GMT) |
commit | 4b8b91688f2b2fd18a2bda182dd8a1c7a201ff3d (patch) | |
tree | fe48b7638e352daf2edcc05eabfc348a2e15d89b | |
parent | 72c11e590273d100c49f472afc3a7569b233ff00 (diff) | |
download | CMake-4b8b91688f2b2fd18a2bda182dd8a1c7a201ff3d.zip CMake-4b8b91688f2b2fd18a2bda182dd8a1c7a201ff3d.tar.gz CMake-4b8b91688f2b2fd18a2bda182dd8a1c7a201ff3d.tar.bz2 |
VS: Find Desktop SDK for current VS version (#15662)
Determine the Desktop SDK for Windows Phone and Windows Store from the
generator instead of the version of the targeted app. This allows to
build a Windows Phone 8.1 app on VS 2015 for example.
-rw-r--r-- | Source/cmGlobalVisualStudio11Generator.h | 5 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio12Generator.h | 5 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio14Generator.cxx | 13 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio14Generator.h | 5 |
4 files changed, 26 insertions, 2 deletions
diff --git a/Source/cmGlobalVisualStudio11Generator.h b/Source/cmGlobalVisualStudio11Generator.h index b50f4c9..9499d80 100644 --- a/Source/cmGlobalVisualStudio11Generator.h +++ b/Source/cmGlobalVisualStudio11Generator.h @@ -34,9 +34,12 @@ protected: virtual bool SelectWindowsPhoneToolset(std::string& toolset) const; virtual bool SelectWindowsStoreToolset(std::string& toolset) const; + // Used to verify that the Desktop toolset for the current generator is + // installed on the machine. + virtual bool IsWindowsDesktopToolsetInstalled() const; + // These aren't virtual because we need to check if the selected version // of the toolset is installed - bool IsWindowsDesktopToolsetInstalled() const; bool IsWindowsPhoneToolsetInstalled() const; bool IsWindowsStoreToolsetInstalled() const; diff --git a/Source/cmGlobalVisualStudio12Generator.h b/Source/cmGlobalVisualStudio12Generator.h index bce9e0c..a7939aa 100644 --- a/Source/cmGlobalVisualStudio12Generator.h +++ b/Source/cmGlobalVisualStudio12Generator.h @@ -38,9 +38,12 @@ protected: virtual bool SelectWindowsPhoneToolset(std::string& toolset) const; virtual bool SelectWindowsStoreToolset(std::string& toolset) const; + // Used to verify that the Desktop toolset for the current generator is + // installed on the machine. + virtual bool IsWindowsDesktopToolsetInstalled() const; + // These aren't virtual because we need to check if the selected version // of the toolset is installed - bool IsWindowsDesktopToolsetInstalled() const; bool IsWindowsPhoneToolsetInstalled() const; bool IsWindowsStoreToolsetInstalled() const; virtual const char* GetIDEVersion() { return "12.0"; } diff --git a/Source/cmGlobalVisualStudio14Generator.cxx b/Source/cmGlobalVisualStudio14Generator.cxx index 2cf55d4..d73eedf 100644 --- a/Source/cmGlobalVisualStudio14Generator.cxx +++ b/Source/cmGlobalVisualStudio14Generator.cxx @@ -124,3 +124,16 @@ void cmGlobalVisualStudio14Generator::WriteSLNHeader(std::ostream& fout) fout << "# Visual Studio 14\n"; } } + +//---------------------------------------------------------------------------- +bool +cmGlobalVisualStudio14Generator::IsWindowsDesktopToolsetInstalled() const +{ + const char desktop10Key[] = + "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\" + "VisualStudio\\14.0\\VC\\Runtimes"; + + std::vector<std::string> vc14; + return cmSystemTools::GetRegistrySubKeys(desktop10Key, + vc14, cmSystemTools::KeyWOW64_32); +} diff --git a/Source/cmGlobalVisualStudio14Generator.h b/Source/cmGlobalVisualStudio14Generator.h index aa817be..02c6274 100644 --- a/Source/cmGlobalVisualStudio14Generator.h +++ b/Source/cmGlobalVisualStudio14Generator.h @@ -31,6 +31,11 @@ public: virtual const char* GetToolsVersion() { return "14.0"; } protected: virtual const char* GetIDEVersion() { return "14.0"; } + + // Used to verify that the Desktop toolset for the current generator is + // installed on the machine. + virtual bool IsWindowsDesktopToolsetInstalled() const; + private: class Factory; }; |