diff options
author | Matej Hribernik <matej.hribernik@comtrade.com> | 2011-06-19 16:40:28 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2011-06-20 12:29:40 (GMT) |
commit | d44c68f39e5b46324898ce4ad0b12c63095b1b40 (patch) | |
tree | 90b45af79057fb0e7e8469411f74a208cd0a6d32 | |
parent | ac8a6bf085b088748e0b4e355f73f80cf4745f62 (diff) | |
download | CMake-d44c68f39e5b46324898ce4ad0b12c63095b1b40.zip CMake-d44c68f39e5b46324898ce4ad0b12c63095b1b40.tar.gz CMake-d44c68f39e5b46324898ce4ad0b12c63095b1b40.tar.bz2 |
VS: Factor Find64BitTools out of Win64 generator to parent
It will be shared with a forthcoming IA64 generator.
-rw-r--r-- | Source/cmGlobalVisualStudio10Generator.cxx | 36 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio10Generator.h | 1 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio10Win64Generator.cxx | 36 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio10Win64Generator.h | 1 |
4 files changed, 37 insertions, 37 deletions
diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index 6c3c1ed..2ee95c0 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -174,3 +174,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; + } +} diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h index bef5642..8573670 100644 --- a/Source/cmGlobalVisualStudio10Generator.h +++ b/Source/cmGlobalVisualStudio10Generator.h @@ -74,6 +74,7 @@ public: virtual std::string GetUserMacrosRegKeyBase(); virtual const char* GetCMakeCFGInitDirectory() { return "$(Configuration)";} + bool Find64BitTools(cmMakefile* mf); protected: virtual const char* GetIDEVersion() { return "10.0"; } diff --git a/Source/cmGlobalVisualStudio10Win64Generator.cxx b/Source/cmGlobalVisualStudio10Win64Generator.cxx index 8600777..49dc473 100644 --- a/Source/cmGlobalVisualStudio10Win64Generator.cxx +++ b/Source/cmGlobalVisualStudio10Win64Generator.cxx @@ -38,42 +38,6 @@ void cmGlobalVisualStudio10Win64Generator } //---------------------------------------------------------------------------- -bool cmGlobalVisualStudio10Win64Generator::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; - } -} - -//---------------------------------------------------------------------------- void cmGlobalVisualStudio10Win64Generator ::EnableLanguage(std::vector<std::string> const& languages, cmMakefile* mf, bool optional) diff --git a/Source/cmGlobalVisualStudio10Win64Generator.h b/Source/cmGlobalVisualStudio10Win64Generator.h index e6d3dc5..8a2de4c 100644 --- a/Source/cmGlobalVisualStudio10Win64Generator.h +++ b/Source/cmGlobalVisualStudio10Win64Generator.h @@ -34,7 +34,6 @@ public: virtual void AddPlatformDefinitions(cmMakefile* mf); - bool Find64BitTools(cmMakefile* mf); virtual void EnableLanguage(std::vector<std::string>const& languages, cmMakefile *, bool optional); }; |