summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalVisualStudio10Generator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2011-07-26 18:54:56 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2011-07-26 18:54:56 (GMT)
commit4a18c30a428940e6f78805323b365aab364d85f8 (patch)
treeaccc6df11ec18123fa287ad8be3731cca2e27e7f /Source/cmGlobalVisualStudio10Generator.cxx
parent2b16232d4535cf438be879d86c013e9945dc9f52 (diff)
parentaed92ccea6321d0323a84d9001c489ef5d05d350 (diff)
downloadCMake-4a18c30a428940e6f78805323b365aab364d85f8.zip
CMake-4a18c30a428940e6f78805323b365aab364d85f8.tar.gz
CMake-4a18c30a428940e6f78805323b365aab364d85f8.tar.bz2
Merge topic 'vs-ia64'
aed92cc Add VisualStudio 9 and 10 generators for Itanium platform d44c68f VS: Factor Find64BitTools out of Win64 generator to parent
Diffstat (limited to 'Source/cmGlobalVisualStudio10Generator.cxx')
-rw-r--r--Source/cmGlobalVisualStudio10Generator.cxx36
1 files changed, 36 insertions, 0 deletions
diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx
index 328a3da..ec8f4a5 100644
--- a/Source/cmGlobalVisualStudio10Generator.cxx
+++ b/Source/cmGlobalVisualStudio10Generator.cxx
@@ -175,3 +175,39 @@ std::string cmGlobalVisualStudio10Generator
}
return makeCommand;
}
+
+//----------------------------------------------------------------------------
+bool cmGlobalVisualStudio10Generator::Find64BitTools(cmMakefile* mf)
+{
+ if(!this->PlatformToolset.empty())
+ {
+ return true;
+ }
+ // This edition does not come with 64-bit tools. Look for them.
+ //
+ // TODO: Detect available tools? x64\v100 exists but does not work?
+ // KHLM\\SOFTWARE\\Microsoft\\MSBuild\\ToolsVersions\\4.0;VCTargetsPath
+ // c:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/Platforms/
+ // {Itanium,Win32,x64}/PlatformToolsets/{v100,v90,Windows7.1SDK}
+ std::string winSDK_7_1;
+ if(cmSystemTools::ReadRegistryValue(
+ "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\"
+ "Windows\\v7.1;InstallationFolder", winSDK_7_1))
+ {
+ cmOStringStream m;
+ m << "Found Windows SDK v7.1: " << winSDK_7_1;
+ mf->DisplayStatus(m.str().c_str(), -1);
+ this->PlatformToolset = "Windows7.1SDK";
+ return true;
+ }
+ else
+ {
+ cmOStringStream e;
+ e << "Cannot enable 64-bit tools with Visual Studio 2010 Express.\n"
+ << "Install the Microsoft Windows SDK v7.1 to get 64-bit tools:\n"
+ << " http://msdn.microsoft.com/en-us/windows/bb980924.aspx";
+ mf->IssueMessage(cmake::FATAL_ERROR, e.str().c_str());
+ cmSystemTools::SetFatalErrorOccured();
+ return false;
+ }
+}