From 2ca116189f26e758a47d4737afe21853d0676235 Mon Sep 17 00:00:00 2001 From: David Cole Date: Fri, 21 Jan 2011 13:18:06 -0500 Subject: [PATCH] VS10: Enable using devenv as CMAKE_MAKE_PROGRAM (#11459) If CMAKE_MAKE_PROGRAM is set to devenv, then GenerateBuildCommand uses it just like we used to do for VS8 and VS9. Otherwise, it still uses MSBuild. This will let us run the CMake test suite through devenv and make sure all the solution and project files we generate are load-able and build-able by the VS 2010 IDE, not just MSBuild. Inspired-By: Robert Lenhardt --- Source/cmGlobalVisualStudio10Generator.cxx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index 0b939af96..6c3c1eded 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -114,18 +114,23 @@ std::string cmGlobalVisualStudio10Generator ::GenerateBuildCommand(const char* makeProgram, const char *projectName, const char* additionalOptions, const char *targetName, - const char* config, bool ignoreErrors, bool) + const char* config, bool ignoreErrors, bool fast) { - // Ingoring errors is not implemented in visual studio 6 - (void) ignoreErrors; - - // now build the test std::string makeCommand = cmSystemTools::ConvertToOutputPath(makeProgram); std::string lowerCaseCommand = makeCommand; cmSystemTools::LowerCase(lowerCaseCommand); + // If makeProgram is devenv, parent class knows how to generate command: + if (lowerCaseCommand.find("devenv") != std::string::npos) + { + return cmGlobalVisualStudio7Generator::GenerateBuildCommand(makeProgram, + projectName, additionalOptions, targetName, config, ignoreErrors, fast); + } + + // Otherwise, assume MSBuild command line, and construct accordingly. + // if there are spaces in the makeCommand, assume a full path // and convert it to a path with no spaces in it as the // RunSingleCommand does not like spaces