diff --git a/Source/CPack/cmCPackDebGenerator.cxx b/Source/CPack/cmCPackDebGenerator.cxx index 006d66d3b13b6f0744e5f2c63c0a1dc208e58886..db30a0d663c8780421587d795334b424b9fed57a 100644 --- a/Source/CPack/cmCPackDebGenerator.cxx +++ b/Source/CPack/cmCPackDebGenerator.cxx @@ -2,6 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmCPackDebGenerator.h" +#include <algorithm> #include <cstdlib> #include <cstring> #include <map> @@ -525,6 +526,8 @@ int cmCPackDebGenerator::PackageOnePack(std::string const& initialTopLevel, return 0; } this->packageFiles = gl.GetFiles(); + // Sort files so that they have a reproducible order + std::sort(this->packageFiles.begin(), this->packageFiles.end()); } int res = this->createDeb(); @@ -551,6 +554,8 @@ int cmCPackDebGenerator::PackageOnePack(std::string const& initialTopLevel, return 0; } this->packageFiles = gl.GetFiles(); + // Sort files so that they have a reproducible order + std::sort(this->packageFiles.begin(), this->packageFiles.end()); res = this->createDbgsymDDeb(); if (res != 1) { @@ -672,6 +677,8 @@ int cmCPackDebGenerator::PackageComponentsAllInOne( return 0; } this->packageFiles = gl.GetFiles(); + // Sort files so that they have a reproducible order + std::sort(this->packageFiles.begin(), this->packageFiles.end()); int res = this->createDeb(); if (res != 1) { diff --git a/Tests/RunCMake/CPack/tests/MD5SUMS/ExpectedFiles.cmake b/Tests/RunCMake/CPack/tests/MD5SUMS/ExpectedFiles.cmake index d1a3a5fb2db69a2ec386251b7cc064ef366e5652..f8592151e21057431692719e6b4f82342ac145b1 100644 --- a/Tests/RunCMake/CPack/tests/MD5SUMS/ExpectedFiles.cmake +++ b/Tests/RunCMake/CPack/tests/MD5SUMS/ExpectedFiles.cmake @@ -1,2 +1,2 @@ set(EXPECTED_FILES_COUNT "1") -set(EXPECTED_FILE_CONTENT_1_LIST "/foo;/foo/CMakeLists.txt") +set(EXPECTED_FILE_CONTENT_1_LIST "/bar;/bar/CMakeLists.txt;/baz;/baz/CMakeLists.txt;/foo;/foo/CMakeLists.txt") diff --git a/Tests/RunCMake/CPack/tests/MD5SUMS/VerifyResult.cmake b/Tests/RunCMake/CPack/tests/MD5SUMS/VerifyResult.cmake index fbdda9c88aba77f3c7cadfa2ceb51ce649493863..13af09773917b58d2f570142166c4080eb52c604 100644 --- a/Tests/RunCMake/CPack/tests/MD5SUMS/VerifyResult.cmake +++ b/Tests/RunCMake/CPack/tests/MD5SUMS/VerifyResult.cmake @@ -1,3 +1,4 @@ set(whitespaces_ "[\t\n\r ]*") -set(md5sums_md5sums "^.* usr/foo/CMakeLists\.txt${whitespaces_}$") +set(hashsyms_ "[a-f0-9]+") +set(md5sums_md5sums "^${hashsyms_} usr/bar/CMakeLists\.txt${whitespaces_}${hashsyms_} usr/baz/CMakeLists\.txt${whitespaces_}${hashsyms_} usr/foo/CMakeLists\.txt${whitespaces_}$") verifyDebControl("${FOUND_FILE_1}" "md5sums" "md5sums") diff --git a/Tests/RunCMake/CPack/tests/MD5SUMS/test.cmake b/Tests/RunCMake/CPack/tests/MD5SUMS/test.cmake index 15c5892666fa1a50fb1d5e3fb2edc645ae067da7..3c922d2cefd2a632e82bc6975aa8c25e47500f83 100644 --- a/Tests/RunCMake/CPack/tests/MD5SUMS/test.cmake +++ b/Tests/RunCMake/CPack/tests/MD5SUMS/test.cmake @@ -1,4 +1,6 @@ install(FILES CMakeLists.txt DESTINATION foo COMPONENT test) +install(FILES CMakeLists.txt DESTINATION bar COMPONENT test) +install(FILES CMakeLists.txt DESTINATION baz COMPONENT test) if(PACKAGING_TYPE STREQUAL "COMPONENT") set(CPACK_COMPONENTS_ALL test)