summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalVisualStudio10Generator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-09-02 20:15:11 (GMT)
committerBrad King <brad.king@kitware.com>2016-09-07 19:49:08 (GMT)
commitbdc679a8aee4e6b9a8aea795bdbda2341d1e5d08 (patch)
treef9ade938675a59071bd1efe075cc3ff5ec58f7cf /Source/cmGlobalVisualStudio10Generator.cxx
parenta8936656faa14b27173f90046fef6259dceaa321 (diff)
downloadCMake-bdc679a8aee4e6b9a8aea795bdbda2341d1e5d08.zip
CMake-bdc679a8aee4e6b9a8aea795bdbda2341d1e5d08.tar.gz
CMake-bdc679a8aee4e6b9a8aea795bdbda2341d1e5d08.tar.bz2
VS15: Add Visual Studio 15 generator
Call the generator "Visual Studio 15" without any year because the preview version of VS 15 does not provide a year in the product name. Copy cmGlobalVisualStudio14Generator to cmGlobalVisualStudio15Generator and update version numbers accordingly. Add the VS15 enumeration value. Note that we do not need to add a MSVC15 variable or v150 toolset because Visual Studio 15 comes with an updated version of the v140 toolset and remains ABI-compatible. Teach tests VSExternalInclude, RunCMake.GeneratorPlatform, and RunCMake.GeneratorToolset to treat VS 15 as they do VS 10-14. Closes: #16143
Diffstat (limited to 'Source/cmGlobalVisualStudio10Generator.cxx')
-rw-r--r--Source/cmGlobalVisualStudio10Generator.cxx14
1 files changed, 14 insertions, 0 deletions
diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx
index ab87d67..8bb43ee 100644
--- a/Source/cmGlobalVisualStudio10Generator.cxx
+++ b/Source/cmGlobalVisualStudio10Generator.cxx
@@ -365,6 +365,20 @@ std::string cmGlobalVisualStudio10Generator::FindMSBuildCommand()
}
}
+ // Search where VS15Preview places it.
+ mskey = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\SxS\\VS7;";
+ mskey += this->GetIDEVersion();
+ if (cmSystemTools::ReadRegistryValue(mskey.c_str(), msbuild,
+ cmSystemTools::KeyWOW64_32)) {
+ cmSystemTools::ConvertToUnixSlashes(msbuild);
+ msbuild += "/MSBuild/";
+ msbuild += this->GetIDEVersion();
+ msbuild += "/Bin/MSBuild.exe";
+ if (cmSystemTools::FileExists(msbuild, true)) {
+ return msbuild;
+ }
+ }
+
msbuild = "MSBuild.exe";
return msbuild;
}