summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalVisualStudio12Generator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-07-28 20:15:43 (GMT)
committerBrad King <brad.king@kitware.com>2014-07-31 18:08:46 (GMT)
commitd7938bff37bfa05f34b9ad5a46ae3aff54955eea (patch)
tree51259231e7382d59da58a9598d19ae705c1fc388 /Source/cmGlobalVisualStudio12Generator.cxx
parent3abd150ce9df03e24a903dedc952339b58ba79cb (diff)
downloadCMake-d7938bff37bfa05f34b9ad5a46ae3aff54955eea.zip
CMake-d7938bff37bfa05f34b9ad5a46ae3aff54955eea.tar.gz
CMake-d7938bff37bfa05f34b9ad5a46ae3aff54955eea.tar.bz2
VS: Select WindowsPhone and WindowsStore default toolsets
Teach the VS >= 10 generators to recognize these system names and select the appropriate default toolset for the system version. Report an error when the version is not known to be supported by VS. Inspired-by: Gilles Khouzam <gillesk@microsoft.com>
Diffstat (limited to 'Source/cmGlobalVisualStudio12Generator.cxx')
-rw-r--r--Source/cmGlobalVisualStudio12Generator.cxx50
1 files changed, 50 insertions, 0 deletions
diff --git a/Source/cmGlobalVisualStudio12Generator.cxx b/Source/cmGlobalVisualStudio12Generator.cxx
index 4235cbc..29ecfe0 100644
--- a/Source/cmGlobalVisualStudio12Generator.cxx
+++ b/Source/cmGlobalVisualStudio12Generator.cxx
@@ -109,6 +109,56 @@ cmGlobalVisualStudio12Generator::MatchesGeneratorName(
}
//----------------------------------------------------------------------------
+bool cmGlobalVisualStudio12Generator::InitializeWindowsPhone(cmMakefile* mf)
+{
+ this->DefaultPlatformToolset = this->SelectWindowsPhoneToolset();
+ if(this->DefaultPlatformToolset.empty())
+ {
+ cmOStringStream e;
+ e << this->GetName() << " supports Windows Phone '8.0' and '8.1', "
+ "but not '" << this->SystemVersion << "'. Check CMAKE_SYSTEM_VERSION.";
+ mf->IssueMessage(cmake::FATAL_ERROR, e.str());
+ return false;
+ }
+ return true;
+}
+
+//----------------------------------------------------------------------------
+bool cmGlobalVisualStudio12Generator::InitializeWindowsStore(cmMakefile* mf)
+{
+ this->DefaultPlatformToolset = this->SelectWindowsStoreToolset();
+ if(this->DefaultPlatformToolset.empty())
+ {
+ cmOStringStream e;
+ e << this->GetName() << " supports Windows Store '8.0' and '8.1', "
+ "but not '" << this->SystemVersion << "'. Check CMAKE_SYSTEM_VERSION.";
+ mf->IssueMessage(cmake::FATAL_ERROR, e.str());
+ return false;
+ }
+ return true;
+}
+
+//----------------------------------------------------------------------------
+std::string cmGlobalVisualStudio12Generator::SelectWindowsPhoneToolset() const
+{
+ if(this->SystemVersion == "8.1")
+ {
+ return "v120_wp81";
+ }
+ return this->cmGlobalVisualStudio11Generator::SelectWindowsPhoneToolset();
+}
+
+//----------------------------------------------------------------------------
+std::string cmGlobalVisualStudio12Generator::SelectWindowsStoreToolset() const
+{
+ if(this->SystemVersion == "8.1")
+ {
+ return "v120";
+ }
+ return this->cmGlobalVisualStudio11Generator::SelectWindowsStoreToolset();
+}
+
+//----------------------------------------------------------------------------
void cmGlobalVisualStudio12Generator::WriteSLNHeader(std::ostream& fout)
{
fout << "Microsoft Visual Studio Solution File, Format Version 12.00\n";