On 04/01/2011 02:42 PM, Manuel Klimek wrote: > sorry for the delay, but I was busy with other stuff - please find > attached a proposal patch for the test - I don't know enough about the > cmake testing infrastructure to say whether that was what you > imagined, please let me know if I should change anything.
That looks pretty good, thanks. Here are a few comments from review: - The cmSystemTools::ParseArguments method is not very solid. It fails for double-quotes in the middle of an argument, like '-I"a b"'. Use the newer ParseUnixCommandLine instead. Unfortunately for historical reasons we need to convert from vector<std::string> to vector<cmStdString>. Try the patch below. - The Source directory should not be touched for this. Put the source code in Tests/CMakeLib and move the code to build the executable to the CMakeLists.txt file in that directory. - In the CompileCommandOutput test source files, please actually create a symbol in each library and call them from the main. Otherwise some toolchains will complain about empty object files. - The ADD_TEST_MACRO call will need to be conditioned to run only when the exported compile lines will work. I will take care of that for you when the rest of the patch is ready. Thanks, -Brad diff --git a/Source/run_compile_commands.cxx b/Source/run_compile_commands.cxx index 0b248f7..82cedfb 100644 --- a/Source/run_compile_commands.cxx +++ b/Source/run_compile_commands.cxx @@ -117,8 +117,9 @@ int main () it = parser.GetTranslationUnits().begin(), end = parser.GetTranslationUnits().end(); it != end; ++it) { - std::vector<cmStdString> command = - cmSystemTools::ParseArguments(it->at("command").c_str()); + std::vector<std::string> command1; + cmSystemTools::ParseUnixCommandLine(it->at("command").c_str(), command1); + std::vector<cmStdString> command(command1.begin(), command1.end()); if (!cmSystemTools::RunSingleCommand( command, 0, 0, it->at("directory").c_str())) { _______________________________________________ cmake-developers mailing list cmake-developers@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers