diff options
author | Brad King <brad.king@kitware.com> | 2016-05-18 13:30:59 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2016-05-18 13:30:59 (GMT) |
commit | 4f17baccadf5f1c74ac2bbcdf07b020d2f9df628 (patch) | |
tree | 390fb5a7994d5e3cc10c04ee5ddf05fc5d10370d | |
parent | 570d689776761b67306fe8dc786eb36a2da4fef8 (diff) | |
parent | edcccde7d65944b3744c4567bd1d452211829702 (diff) | |
download | CMake-4f17baccadf5f1c74ac2bbcdf07b020d2f9df628.zip CMake-4f17baccadf5f1c74ac2bbcdf07b020d2f9df628.tar.gz CMake-4f17baccadf5f1c74ac2bbcdf07b020d2f9df628.tar.bz2 |
Merge topic 'file-glob-sort'
edcccde7 file: Sort GLOB results to make it deterministic (#14491)
-rw-r--r-- | Help/command/file.rst | 5 | ||||
-rw-r--r-- | Source/cmFileCommand.cxx | 1 | ||||
-rw-r--r-- | Tests/RunCMake/file/GLOB.cmake | 3 | ||||
-rw-r--r-- | Tests/RunCMake/file/GLOB_RECURSE-cyclic-recursion.cmake | 3 | ||||
-rw-r--r-- | Tests/RunCMake/file/GLOB_RECURSE.cmake | 3 |
5 files changed, 4 insertions, 11 deletions
diff --git a/Help/command/file.rst b/Help/command/file.rst index 96ac6c7..256d16d 100644 --- a/Help/command/file.rst +++ b/Help/command/file.rst @@ -103,8 +103,9 @@ Generate a list of files that match the ``<globbing-expressions>`` and store it into the ``<variable>``. Globbing expressions are similar to regular expressions, but much simpler. If ``RELATIVE`` flag is specified, the results will be returned as relative paths to the given -path. No specific order of results is defined. If order is important then -sort the list explicitly (e.g. using the :command:`list(SORT)` command). +path. No specific order of results is defined other than that it is +deterministic. If order is important then sort the list explicitly +(e.g. using the :command:`list(SORT)` command). By default ``GLOB`` lists directories - directories are omited in result if ``LIST_DIRECTORIES`` is set to false. diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index 5363a99..4e72f36 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -823,6 +823,7 @@ bool cmFileCommand::HandleGlobCommand(std::vector<std::string> const& args, std::vector<std::string>::size_type cc; std::vector<std::string>& files = g.GetFiles(); + std::sort(files.begin(), files.end()); for (cc = 0; cc < files.size(); cc++) { if (!first) { output += ";"; diff --git a/Tests/RunCMake/file/GLOB.cmake b/Tests/RunCMake/file/GLOB.cmake index 3d577e3..c524e42 100644 --- a/Tests/RunCMake/file/GLOB.cmake +++ b/Tests/RunCMake/file/GLOB.cmake @@ -12,17 +12,14 @@ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test/dir 2/non_empty_dir/dir 2 subdir fi file(GLOB CONTENT_LIST "${CMAKE_CURRENT_BINARY_DIR}/test/*/*") list(LENGTH CONTENT_LIST CONTENT_COUNT) message("content: ${CONTENT_COUNT} ") -list(SORT CONTENT_LIST) message("${CONTENT_LIST}") file(GLOB CONTENT_LIST LIST_DIRECTORIES true "${CMAKE_CURRENT_BINARY_DIR}/test/*/*") list(LENGTH CONTENT_LIST CONTENT_COUNT) message("content: ${CONTENT_COUNT} ") -list(SORT CONTENT_LIST) message("${CONTENT_LIST}") file(GLOB CONTENT_LIST LIST_DIRECTORIES false "${CMAKE_CURRENT_BINARY_DIR}/test/*/*") list(LENGTH CONTENT_LIST CONTENT_COUNT) message("content: ${CONTENT_COUNT} ") -list(SORT CONTENT_LIST) message("${CONTENT_LIST}") diff --git a/Tests/RunCMake/file/GLOB_RECURSE-cyclic-recursion.cmake b/Tests/RunCMake/file/GLOB_RECURSE-cyclic-recursion.cmake index a8c6784..fb8be42 100644 --- a/Tests/RunCMake/file/GLOB_RECURSE-cyclic-recursion.cmake +++ b/Tests/RunCMake/file/GLOB_RECURSE-cyclic-recursion.cmake @@ -7,17 +7,14 @@ execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${CMAKE_CURRENT_BINA file(GLOB_RECURSE CONTENT_LIST FOLLOW_SYMLINKS "${CMAKE_CURRENT_BINARY_DIR}/test/*") list(LENGTH CONTENT_LIST CONTENT_COUNT) message("content: ${CONTENT_COUNT} ") -list(SORT CONTENT_LIST) message("${CONTENT_LIST}") file(GLOB_RECURSE CONTENT_LIST LIST_DIRECTORIES false FOLLOW_SYMLINKS "${CMAKE_CURRENT_BINARY_DIR}/test/*") list(LENGTH CONTENT_LIST CONTENT_COUNT) message("content: ${CONTENT_COUNT} ") -list(SORT CONTENT_LIST) message("${CONTENT_LIST}") file(GLOB_RECURSE CONTENT_LIST LIST_DIRECTORIES true FOLLOW_SYMLINKS "${CMAKE_CURRENT_BINARY_DIR}/test/*") list(LENGTH CONTENT_LIST CONTENT_COUNT) message("content: ${CONTENT_COUNT} ") -list(SORT CONTENT_LIST) message("${CONTENT_LIST}") diff --git a/Tests/RunCMake/file/GLOB_RECURSE.cmake b/Tests/RunCMake/file/GLOB_RECURSE.cmake index 6db377b..530930f 100644 --- a/Tests/RunCMake/file/GLOB_RECURSE.cmake +++ b/Tests/RunCMake/file/GLOB_RECURSE.cmake @@ -12,17 +12,14 @@ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test/dir 2/non_empty_dir/dir 2 subdir fi file(GLOB_RECURSE CONTENT_LIST "${CMAKE_CURRENT_BINARY_DIR}/test/*/*") list(LENGTH CONTENT_LIST CONTENT_COUNT) message("content: ${CONTENT_COUNT} ") -list(SORT CONTENT_LIST) message("${CONTENT_LIST}") file(GLOB_RECURSE CONTENT_LIST LIST_DIRECTORIES false "${CMAKE_CURRENT_BINARY_DIR}/test/*/*") list(LENGTH CONTENT_LIST CONTENT_COUNT) message("content: ${CONTENT_COUNT} ") -list(SORT CONTENT_LIST) message("${CONTENT_LIST}") file(GLOB_RECURSE CONTENT_LIST LIST_DIRECTORIES true "${CMAKE_CURRENT_BINARY_DIR}/test/*/*") list(LENGTH CONTENT_LIST CONTENT_COUNT) message("content: ${CONTENT_COUNT} ") -list(SORT CONTENT_LIST) message("${CONTENT_LIST}") |