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
This commit is contained in:
parent
73827b9205
commit
2ca116189f
|
@ -114,18 +114,23 @@ std::string cmGlobalVisualStudio10Generator
|
||||||
::GenerateBuildCommand(const char* makeProgram,
|
::GenerateBuildCommand(const char* makeProgram,
|
||||||
const char *projectName,
|
const char *projectName,
|
||||||
const char* additionalOptions, const char *targetName,
|
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
|
// now build the test
|
||||||
std::string makeCommand
|
std::string makeCommand
|
||||||
= cmSystemTools::ConvertToOutputPath(makeProgram);
|
= cmSystemTools::ConvertToOutputPath(makeProgram);
|
||||||
std::string lowerCaseCommand = makeCommand;
|
std::string lowerCaseCommand = makeCommand;
|
||||||
cmSystemTools::LowerCase(lowerCaseCommand);
|
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
|
// if there are spaces in the makeCommand, assume a full path
|
||||||
// and convert it to a path with no spaces in it as the
|
// and convert it to a path with no spaces in it as the
|
||||||
// RunSingleCommand does not like spaces
|
// RunSingleCommand does not like spaces
|
||||||
|
|
Loading…
Reference in New Issue