diff --git a/pkg/vm/lib/frontend_server.dart b/pkg/vm/lib/frontend_server.dart index 2329c516448..31f57e434c3 100644 --- a/pkg/vm/lib/frontend_server.dart +++ b/pkg/vm/lib/frontend_server.dart @@ -636,12 +636,27 @@ String _escapePath(String path) { return path.replaceAll(r'\', r'\\').replaceAll(r' ', r'\ '); } +List _getDependencies(Component component) { + var deps = []; + for (Library lib in component.libraries) { + if (lib.importUri.scheme == 'dart') { + continue; + } + deps.add(lib.fileUri); + for (LibraryPart part in lib.parts) { + final Uri fileUri = lib.fileUri.resolve(part.partUri); + deps.add(fileUri); + } + } + return deps; +} + // https://ninja-build.org/manual.html#_depfile _writeDepfile(Component component, String output, String depfile) async { final IOSink file = new File(depfile).openWrite(); file.write(_escapePath(output)); file.write(':'); - for (Uri dep in component.uriToSource.keys) { + for (Uri dep in _getDependencies(component)) { if (dep == null) continue; file.write(' '); file.write(_escapePath(dep.toFilePath()));