diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2004-01-26 19:41:29 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2004-01-26 19:41:29 (GMT) |
commit | 0217af3b5829b5d2e190d84109af2f0ab984c9ff (patch) | |
tree | e0a34f8882aecb0bb6d9b7e9dd1140f487741a9d | |
parent | 1d958cad60f599a72281cec1f9abb349c5ee573b (diff) | |
download | CMake-0217af3b5829b5d2e190d84109af2f0ab984c9ff.zip CMake-0217af3b5829b5d2e190d84109af2f0ab984c9ff.tar.gz CMake-0217af3b5829b5d2e190d84109af2f0ab984c9ff.tar.bz2 |
ENH: Improve calling of RunSingle command and fix compile error
-rw-r--r-- | Source/cmCTest.cxx | 9 | ||||
-rw-r--r-- | Source/cmSystemTools.cxx | 3 |
2 files changed, 10 insertions, 2 deletions
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 421f81b..fbe20fd 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -4212,7 +4212,7 @@ int cmCTest::RunCMakeAndTest(std::string* outstring) out << "Running make command: " << makeCommand.c_str() << "\n"; retVal = 0; std::string output; - if (!cmSystemTools::RunSingleCommand(makeCommand.c_str(), &output, &retVal, 0, false)) + if (!cmSystemTools::RunSingleCommand(makeCommand.c_str(), (m_Verbose?&output:0), &retVal, 0, false)) { out << "Error: " << makeCommand.c_str() << " execution failed\n"; out << output.c_str() << "\n"; @@ -4464,7 +4464,12 @@ void cmCTest::PopulateCustomVector(cmMakefile* mf, const char* def, tm_VectorOfS } std::vector<std::string> slist; cmSystemTools::ExpandListArgument(dval, slist); - vec.insert(vec.end(), slist.begin(), slist.end()); + std::vector<std::string>::iterator it; + + for ( it = slist.begin(); it != slist.end(); ++it ) + { + vec.push_back(it->c_str()); + } } int cmCTest::ExecuteCommands(tm_VectorOfStrings& vec) diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index 032a95d..28b378b 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -437,6 +437,8 @@ bool cmSystemTools::RunSingleCommand( std::vector<char> tempOutput; char* data; int length; + if ( output || verbose ) + { while(cmsysProcess_WaitForData(cp, &data, &length, 0)) { if ( output ) @@ -448,6 +450,7 @@ bool cmSystemTools::RunSingleCommand( cmSystemTools::Stdout(data, length); } } + } cmsysProcess_WaitForExit(cp, 0); if ( output ) |