From e17f3458ce8c5eaba53dc00d273d3456746c7fd4 Mon Sep 17 00:00:00 2001 From: Brad King Date: Sun, 16 Sep 2012 00:01:32 +0200 Subject: [PATCH] VS11: Detect VS 2012 Express for default generator (#13348) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add WDExpress to the list of registry search locations. Add VS 11 to the list of VS versions and corresponding generator names. Fix the search logic to use the most recent version found under any registry entry. Inspired-by: Peter Kümmel --- Source/cmake.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Source/cmake.cxx b/Source/cmake.cxx index c6787b9d0..079ea36e8 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -2184,6 +2184,7 @@ int cmake::ActualConfigure() std::vector vsVerions; vsVerions.push_back("VisualStudio\\"); vsVerions.push_back("VCExpress\\"); + vsVerions.push_back("WDExpress\\"); struct VSRegistryEntryName { const char* MSVersion; @@ -2196,10 +2197,11 @@ int cmake::ActualConfigure() {"8.0", "Visual Studio 8 2005"}, {"9.0", "Visual Studio 9 2008"}, {"10.0", "Visual Studio 10"}, + {"11.0", "Visual Studio 11"}, {0, 0}}; - for(size_t b=0; b < vsVerions.size() && installedCompiler.empty(); b++) + for(int i=0; version[i].MSVersion != 0; i++) { - for(int i =0; version[i].MSVersion != 0; i++) + for(size_t b=0; b < vsVerions.size(); b++) { std::string reg = vsregBase + vsVerions[b] + version[i].MSVersion; reg += ";InstallDir]"; @@ -2208,6 +2210,7 @@ int cmake::ActualConfigure() if (!(reg == "/registry")) { installedCompiler = version[i].GeneratorName; + break; } } }