This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake".
The branch, next has been updated via b06640cd9e1295b9af3f3525d955c67645a8e9ff (commit) via a6f25e8835514b620b27425b8e8aa08189e7acbb (commit) via 397cfb5665a202c680d6f9b9fc49695e39e626d2 (commit) from f46dc00171ad00593105e0eff0b7ac29220d3064 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b06640cd9e1295b9af3f3525d955c67645a8e9ff commit b06640cd9e1295b9af3f3525d955c67645a8e9ff Merge: f46dc00 a6f25e8 Author: Brad King <brad.k...@kitware.com> AuthorDate: Mon Dec 13 16:09:31 2010 -0500 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Mon Dec 13 16:09:31 2010 -0500 Merge topic 'dev/add-response-file-support' into next a6f25e8 Rename response file tests to use "ResponseFile." prefix 397cfb5 Fix response file load logic http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a6f25e8835514b620b27425b8e8aa08189e7acbb commit a6f25e8835514b620b27425b8e8aa08189e7acbb Author: Brad King <brad.k...@kitware.com> AuthorDate: Mon Dec 13 16:07:42 2010 -0500 Commit: Brad King <brad.k...@kitware.com> CommitDate: Mon Dec 13 16:07:42 2010 -0500 Rename response file tests to use "ResponseFile." prefix diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index c390eeb..7805a16 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -713,7 +713,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ ENDIF(NOT COMPILER_IS_COMO) - ADD_TEST(ResponseFileBasic ${CMAKE_CTEST_COMMAND} + ADD_TEST(ResponseFile.Basic ${CMAKE_CTEST_COMMAND} --build-and-test "${CMake_SOURCE_DIR}/Tests/ResponseFile" "${CMake_BINARY_DIR}/Tests/ResponseFileBasic" @@ -722,11 +722,11 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ --build-noclean --build-project ResponseFileBasic --build-options "@${CMAKE_CURRENT_SOURCE_DIR}/ResponseFile/response-basic") - SET_TESTS_PROPERTIES(ResponseFileBasic PROPERTIES + SET_TESTS_PROPERTIES(ResponseFile.Basic PROPERTIES PASS_REGULAR_EXPRESSION "RESPONSE_VARIABLE is: 'foo'") LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/ResponseFileBasic") - ADD_TEST(ResponseFileWithSpaces ${CMAKE_CTEST_COMMAND} + ADD_TEST(ResponseFile.WithSpaces ${CMAKE_CTEST_COMMAND} --build-and-test "${CMake_SOURCE_DIR}/Tests/ResponseFile" "${CMake_BINARY_DIR}/Tests/ResponseFileWithSpaces" @@ -735,11 +735,11 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ --build-noclean --build-project ResponseFileWithSpaces --build-options "@${CMAKE_CURRENT_SOURCE_DIR}/ResponseFile/response-with-spaces") - SET_TESTS_PROPERTIES(ResponseFileWithSpaces PROPERTIES + SET_TESTS_PROPERTIES(ResponseFile.WithSpaces PROPERTIES PASS_REGULAR_EXPRESSION "RESPONSE_VARIABLE is: 'with spaces'") LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/ResponseFileWithSpaces") - ADD_TEST(ResponseFileWithBlankLine ${CMAKE_CTEST_COMMAND} + ADD_TEST(ResponseFile.WithBlankLine ${CMAKE_CTEST_COMMAND} --build-and-test "${CMake_SOURCE_DIR}/Tests/ResponseFile" "${CMake_BINARY_DIR}/Tests/ResponseFileWithBlankLine" @@ -748,11 +748,11 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ --build-noclean --build-project ResponseFileWithBlankLine --build-options "@${CMAKE_CURRENT_SOURCE_DIR}/ResponseFile/response-with-blank-line") - SET_TESTS_PROPERTIES(ResponseFileWithBlankLine PROPERTIES + SET_TESTS_PROPERTIES(ResponseFile.WithBlankLine PROPERTIES PASS_REGULAR_EXPRESSION "RESPONSE_VARIABLE is: 'after blank line'") LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/ResponseFileWithBlankLine") - ADD_TEST(ResponseFileDuplicate ${CMAKE_CTEST_COMMAND} + ADD_TEST(ResponseFile.Duplicate ${CMAKE_CTEST_COMMAND} --build-and-test "${CMake_SOURCE_DIR}/Tests/ResponseFile" "${CMake_BINARY_DIR}/Tests/ResponseFileDuplicate" @@ -761,13 +761,13 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ --build-noclean --build-project ResponseFileDuplicate --build-options "@${CMAKE_CURRENT_SOURCE_DIR}/ResponseFile/response-duplicate") - SET_TESTS_PROPERTIES(ResponseFileDuplicate PROPERTIES + SET_TESTS_PROPERTIES(ResponseFile.Duplicate PROPERTIES PASS_REGULAR_EXPRESSION "RESPONSE_VARIABLE is: 'right'") - SET_TESTS_PROPERTIES(ResponseFileDuplicate PROPERTIES + SET_TESTS_PROPERTIES(ResponseFile.Duplicate PROPERTIES FAIL_REGULAR_EXPRESSION "RESPONSE_VARIABLE is: 'wrong'") LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/ResponseFileDuplicate") - ADD_TEST(ResponseFileWithMany ${CMAKE_CTEST_COMMAND} + ADD_TEST(ResponseFile.WithMany ${CMAKE_CTEST_COMMAND} --build-and-test "${CMake_SOURCE_DIR}/Tests/ResponseFile" "${CMake_BINARY_DIR}/Tests/ResponseFileWithMany" @@ -776,7 +776,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ --build-noclean --build-project ResponseFileWithMany --build-options "@${CMAKE_CURRENT_SOURCE_DIR}/ResponseFile/response-with-many") - SET_TESTS_PROPERTIES(ResponseFileWithMany PROPERTIES + SET_TESTS_PROPERTIES(ResponseFile.WithMany PROPERTIES PASS_REGULAR_EXPRESSION "RESPONSE_VARIABLE is: 'twentieth'") LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/ResponseFileWithMany") http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=397cfb5665a202c680d6f9b9fc49695e39e626d2 commit 397cfb5665a202c680d6f9b9fc49695e39e626d2 Author: Brad King <brad.k...@kitware.com> AuthorDate: Mon Dec 13 16:05:12 2010 -0500 Commit: Brad King <brad.k...@kitware.com> CommitDate: Mon Dec 13 16:05:12 2010 -0500 Fix response file load logic Skip over the '@' before computing the file name. If the file cannot be opened, report the reason. Use robust cross-platform GetLineFromStream to read lines. diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index 3bb3d2c..b5afffb 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -185,36 +185,33 @@ void cmSystemTools::ExpandResponseFiles(int ac, char** av, args.push_back(av[0]); for(int i = 1; i < ac; ++i) { - if(av[i][0] == '@') + if(av[i][0] == '@') + { + const char* fname = av[i]+1; + std::ifstream fin(fname); + if(fin) { - std::string filename = av[i]; - - filename = cmSystemTools::CollapseFullPath(filename.c_str()); - cmSystemTools::ConvertToUnixSlashes(filename); - if(cmSystemTools::FileExists(filename.c_str())) + std::string line; + while(cmSystemTools::GetLineFromStream(fin, line)) { - std::ifstream fin(filename.c_str()); - size_t offset = i; - while (fin) + if(!line.empty()) { - std::string next_filearg; - std::getline(fin, next_filearg); - if (!next_filearg.empty()) - { - args.push_back(next_filearg); - } + args.push_back(line); } } - else - { - cmSystemTools::Error("Could not open command line response file ", - filename.c_str()); - } } else { - args.push_back(av[i]); + cmOStringStream e; + e << "Could not open response file \"" << fname << "\": " + << Superclass::GetLastSystemError(); + cmSystemTools::Error(e.str().c_str()); } + } + else + { + args.push_back(av[i]); + } } argc = args.size(); ----------------------------------------------------------------------- Summary of changes: Source/cmSystemTools.cxx | 39 ++++++++++++++++++--------------------- Tests/CMakeLists.txt | 22 +++++++++++----------- 2 files changed, 29 insertions(+), 32 deletions(-) hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits