summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2013-09-10 16:00:33 (GMT)
committerBrad King <brad.king@kitware.com>2013-09-10 17:44:10 (GMT)
commitcd90a0eadd799be2cdf568f8ed2df7549b6dd037 (patch)
tree58564158adb2542eae4e1cf38ba2b6ef322a7328
parentb2ce2f5e485dddd39f6fda04fbb5110e4e279c1c (diff)
downloadCMake-cd90a0eadd799be2cdf568f8ed2df7549b6dd037.zip
CMake-cd90a0eadd799be2cdf568f8ed2df7549b6dd037.tar.gz
CMake-cd90a0eadd799be2cdf568f8ed2df7549b6dd037.tar.bz2
VS: Future-proof Intel project format selection
The version of Intel Fortran that actually uses 9.10 as a project format is very old. Default to the latest format version (11.0) and use the older format only when known to be necessary. Suggested-by: Dick Munroe <munroe@csworks.com>
-rw-r--r--Source/cmLocalVisualStudio7Generator.cxx18
1 files changed, 11 insertions, 7 deletions
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 58cc6f4..bd6c860 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -1954,23 +1954,27 @@ cmLocalVisualStudio7Generator
// Compute the version of the Intel plugin to the VS IDE.
// If the key does not exist then use a default guess.
- std::string intelVersion = "9.10";
+ std::string intelVersion;
std::string vskey = gg->GetRegistryBase();
vskey += "\\Packages\\" CM_INTEL_PLUGIN_GUID ";ProductVersion";
cmSystemTools::ReadRegistryValue(vskey.c_str(), intelVersion,
cmSystemTools::KeyWOW64_32);
- if (intelVersion.find("13") == 0 ||
- intelVersion.find("12") == 0 ||
- intelVersion.find("11") == 0)
+ unsigned int intelVersionNumber = ~0u;
+ sscanf(intelVersion.c_str(), "%u", &intelVersionNumber);
+ if(intelVersionNumber >= 11)
{
- // Version 11.x, 12.x, and 13.x actually use 11.0 in project files!
- intelVersion = "11.0" ;
+ // Default to latest known project file version.
+ intelVersion = "11.0";
}
- else if(intelVersion.find("10") == 0)
+ else if(intelVersionNumber == 10)
{
// Version 10.x actually uses 9.10 in project files!
intelVersion = "9.10";
}
+ else
+ {
+ // Version <= 9: use ProductVersion from registry.
+ }
fout << "<?xml version=\"1.0\" encoding = \"Windows-1252\"?>\n"
<< "<VisualStudioProject\n"