| } | } | ||||
| msvc_deps_info dds::parse_msvc_output_for_deps(std::string_view output, std::string_view leader) { | msvc_deps_info dds::parse_msvc_output_for_deps(std::string_view output, std::string_view leader) { | ||||
| auto lines = split_view(output, "\n"); | |||||
| auto lines = split_view(output, "\n"); | |||||
| std::string cleaned_output; | std::string cleaned_output; | ||||
| deps_info deps; | deps_info deps; | ||||
| for (const auto full_line : lines) { | for (const auto full_line : lines) { | ||||
| auto changed_files = // | auto changed_files = // | ||||
| inputs // | inputs // | ||||
| | ranges::views::filter([](const seen_file_info& input) { | | ranges::views::filter([](const seen_file_info& input) { | ||||
| return fs::last_write_time(input.path) != input.last_mtime; | |||||
| return !fs::exists(input.path) || fs::last_write_time(input.path) != input.last_mtime; | |||||
| }) | }) | ||||
| | ranges::views::transform([](auto& info) { return info.path; }) // | | ranges::views::transform([](auto& info) { return info.path; }) // | ||||
| | ranges::to_vector; | | ranges::to_vector; |