diff --git a/Source/CTest/cmCTestBuildAndTestHandler.cxx b/Source/CTest/cmCTestBuildAndTestHandler.cxx index b4818be2d..627832ce6 100644 --- a/Source/CTest/cmCTestBuildAndTestHandler.cxx +++ b/Source/CTest/cmCTestBuildAndTestHandler.cxx @@ -301,7 +301,7 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring) int retVal = cm.GetGlobalGenerator()->Build( this->SourceDir, this->BinaryDir, this->BuildProject, *tarIt, - &output, this->BuildMakeProgram, + output, this->BuildMakeProgram, config, !this->BuildNoClean, false, remainingTime); diff --git a/Source/cmCoreTryCompile.cxx b/Source/cmCoreTryCompile.cxx index a3f327775..ed19851ac 100644 --- a/Source/cmCoreTryCompile.cxx +++ b/Source/cmCoreTryCompile.cxx @@ -489,7 +489,7 @@ int cmCoreTryCompile::TryCompileCode(std::vector const& argv) targetName, this->SrcFileSignature, &cmakeFlags, - &output); + output); if ( erroroc ) { cmSystemTools::SetErrorOccured(); diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 249373cf2..38ba5d13e 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -1616,7 +1616,7 @@ int cmGlobalGenerator::TryCompile(const std::string& srcdir, const std::string& bindir, const std::string& projectName, const std::string& target, bool fast, - std::string *output, cmMakefile *mf) + std::string& output, cmMakefile *mf) { // if this is not set, then this is a first time configure // and there is a good chance that the try compile stuff will @@ -1675,7 +1675,7 @@ void cmGlobalGenerator::GenerateBuildCommand( int cmGlobalGenerator::Build( const std::string&, const std::string& bindir, const std::string& projectName, const std::string& target, - std::string *output, + std::string& output, const std::string& makeCommandCSTR, const std::string& config, bool clean, bool fast, @@ -1688,22 +1688,15 @@ int cmGlobalGenerator::Build( */ std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); cmSystemTools::ChangeDirectory(bindir.c_str()); - if(output) - { - *output += "Change Dir: "; - *output += bindir; - *output += "\n"; - } + output += "Change Dir: "; + output += bindir; + output += "\n"; int retVal; bool hideconsole = cmSystemTools::GetRunCommandHideConsole(); cmSystemTools::SetRunCommandHideConsole(true); std::string outputBuffer; - std::string* outputPtr = 0; - if(output) - { - outputPtr = &outputBuffer; - } + std::string* outputPtr = &outputBuffer; // should we do a clean first? if (clean) @@ -1711,32 +1704,23 @@ int cmGlobalGenerator::Build( std::vector cleanCommand; this->GenerateBuildCommand(cleanCommand, makeCommandCSTR, projectName, bindir, "clean", config, fast); - if(output) - { - *output += "\nRun Clean Command:"; - *output += cmSystemTools::PrintSingleCommand(cleanCommand); - *output += "\n"; - } + output += "\nRun Clean Command:"; + output += cmSystemTools::PrintSingleCommand(cleanCommand); + output += "\n"; if (!cmSystemTools::RunSingleCommand(cleanCommand, outputPtr, &retVal, 0, outputflag, timeout)) { cmSystemTools::SetRunCommandHideConsole(hideconsole); cmSystemTools::Error("Generator: execution of make clean failed."); - if (output) - { - *output += *outputPtr; - *output += "\nGenerator: execution of make clean failed.\n"; - } + output += *outputPtr; + output += "\nGenerator: execution of make clean failed.\n"; // return to the original directory cmSystemTools::ChangeDirectory(cwd.c_str()); return 1; } - if (output) - { - *output += *outputPtr; - } + output += *outputPtr; } // now build @@ -1744,12 +1728,9 @@ int cmGlobalGenerator::Build( this->GenerateBuildCommand(makeCommand, makeCommandCSTR, projectName, bindir, target, config, fast, nativeOptions); std::string makeCommandStr = cmSystemTools::PrintSingleCommand(makeCommand); - if(output) - { - *output += "\nRun Build Command:"; - *output += makeCommandStr; - *output += "\n"; - } + output += "\nRun Build Command:"; + output += makeCommandStr; + output += "\n"; if (!cmSystemTools::RunSingleCommand(makeCommand, outputPtr, &retVal, 0, outputflag, timeout)) @@ -1758,27 +1739,21 @@ int cmGlobalGenerator::Build( cmSystemTools::Error ("Generator: execution of make failed. Make command was: ", makeCommandStr.c_str()); - if (output) - { - *output += *outputPtr; - *output += "\nGenerator: execution of make failed. Make command was: " + output += *outputPtr; + output += "\nGenerator: execution of make failed. Make command was: " + makeCommandStr + "\n"; - } // return to the original directory cmSystemTools::ChangeDirectory(cwd.c_str()); return 1; } - if (output) - { - *output += *outputPtr; - } + output += *outputPtr; cmSystemTools::SetRunCommandHideConsole(hideconsole); // The SGI MipsPro 7.3 compiler does not return an error code when // the source has a #error in it! This is a work-around for such // compilers. - if((retVal == 0) && (output->find("#error") != std::string::npos)) + if((retVal == 0) && (output.find("#error") != std::string::npos)) { retVal = 1; } diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index 6b608bb80..f80c3c7bd 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -116,7 +116,7 @@ public: virtual int TryCompile(const std::string& srcdir, const std::string& bindir, const std::string& projectName, const std::string& targetName, - bool fast, std::string *output, cmMakefile* mf); + bool fast, std::string& output, cmMakefile* mf); /** @@ -127,7 +127,7 @@ public: */ int Build(const std::string& srcdir, const std::string& bindir, const std::string& projectName, const std::string& targetName, - std::string *output, + std::string& output, const std::string& makeProgram, const std::string& config, bool clean, bool fast, double timeout, diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index d3ca34acb..04b2d2786 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -3510,7 +3510,7 @@ int cmMakefile::TryCompile(const std::string& srcdir, const std::string& targetName, bool fast, const std::vector *cmakeArgs, - std::string *output) + std::string& output) { this->Internal->IsSourceFileTryCompile = fast; // does the binary directory exist ? If not create it... diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index 3a40c1c0f..d728a62a2 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -130,7 +130,7 @@ public: const std::string& projectName, const std::string& targetName, bool fast, const std::vector *cmakeArgs, - std::string *output); + std::string& output); bool GetIsSourceFileTryCompile() const; diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 5aa1ab0d1..6cc3b8152 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -2757,7 +2757,7 @@ int cmake::Build(const std::string& dir, projName = it.GetValue(); return gen->Build("", dir, projName, target, - &output, + output, "", config, clean, false, 0, cmSystemTools::OUTPUT_PASSTHROUGH,