From e9d2a830206fac08f47e55c739a3f3fbe29855e9 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 2 Apr 2019 10:48:37 -0700 Subject: Check scripts/cmake/* and buildsystems/vcpkg.cmake for changes when hashing --- toolsrc/src/vcpkg/build.cpp | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'toolsrc/src') diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index f20367e00..50bcacd13 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -479,13 +479,13 @@ namespace vcpkg::Build const int max_port_file_count = 100; // the order of recursive_directory_iterator is undefined so save the names to sort - std::vector port_files; + std::vector hashed_files; for (auto &port_file : fs::stdfs::recursive_directory_iterator(config.port_dir)) { if (fs::is_regular_file(status(port_file))) { - port_files.push_back(port_file); - if (port_files.size() > max_port_file_count) + hashed_files.push_back(port_file); + if (hashed_files.size() > max_port_file_count) { abi_tag_entries.emplace_back(AbiEntry{ "no_hash_max_portfile", "" }); break; @@ -493,12 +493,20 @@ namespace vcpkg::Build } } - if (port_files.size() <= max_port_file_count) + if (hashed_files.size() <= max_port_file_count) { - std::sort(port_files.begin(), port_files.end()); + for (auto &script_file : fs::stdfs::recursive_directory_iterator(paths.scripts)) + { + if (fs::is_regular_file(status(script_file))) + { + hashed_files.push_back(script_file); + } + } + + std::sort(hashed_files.begin(), hashed_files.end()); int counter = 0; - for (auto & port_file : port_files) + for (auto & hashed_file : hashed_files) { // When vcpkg takes a dependency on C++17 it can use fs::relative, // which will give a stable ordering and better names in the key entry. @@ -506,15 +514,15 @@ namespace vcpkg::Build std::string key = Strings::format("file_%03d", counter++); if (GlobalState::debugging) { - System::println("[DEBUG] mapping %s from %s", key, port_file.string()); + System::println("[DEBUG] mapping %s from %s", key, hashed_file.string()); } - abi_tag_entries.emplace_back(AbiEntry{ key, vcpkg::Hash::get_file_hash(fs, port_file, "SHA1") }); + abi_tag_entries.emplace_back(AbiEntry{ key, vcpkg::Hash::get_file_hash(fs, hashed_file, "SHA1") }); } } abi_tag_entries.emplace_back(AbiEntry{ - "vcpkg_fixup_cmake_targets", - vcpkg::Hash::get_file_hash(fs, paths.scripts / "cmake" / "vcpkg_fixup_cmake_targets.cmake", "SHA1")}); + "vcpkg", + vcpkg::Hash::get_file_hash(fs, paths.scripts / "buildsystems" / "vcpkg.cmake", "SHA1")}); abi_tag_entries.emplace_back(AbiEntry{"triplet", pre_build_info.triplet_abi_tag}); -- cgit v1.2.3