mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Use depfile with dart2wasm to determine when to rebuild. (#122817)
Use depfile with dart2wasm to determine when to rebuild.
This commit is contained in:
parent
245d6d45a1
commit
be97d03a25
@ -295,6 +295,7 @@ class Dart2WasmTarget extends Dart2WebTarget {
|
|||||||
final BuildMode buildMode = getBuildModeForName(buildModeEnvironment);
|
final BuildMode buildMode = getBuildModeForName(buildModeEnvironment);
|
||||||
final Artifacts artifacts = globals.artifacts!;
|
final Artifacts artifacts = globals.artifacts!;
|
||||||
final File outputWasmFile = environment.buildDir.childFile('main.dart.wasm');
|
final File outputWasmFile = environment.buildDir.childFile('main.dart.wasm');
|
||||||
|
final File depFile = environment.buildDir.childFile('dart2wasm.d');
|
||||||
final String dartSdkPath = artifacts.getArtifactPath(Artifact.engineDartSdkPath, platform: TargetPlatform.web_javascript);
|
final String dartSdkPath = artifacts.getArtifactPath(Artifact.engineDartSdkPath, platform: TargetPlatform.web_javascript);
|
||||||
final String dartSdkRoot = environment.fileSystem.directory(dartSdkPath).parent.path;
|
final String dartSdkRoot = environment.fileSystem.directory(dartSdkPath).parent.path;
|
||||||
|
|
||||||
@ -319,10 +320,12 @@ class Dart2WasmTarget extends Dart2WebTarget {
|
|||||||
dartSdkRoot,
|
dartSdkRoot,
|
||||||
'--libraries-spec',
|
'--libraries-spec',
|
||||||
artifacts.getHostArtifact(HostArtifact.flutterWebLibrariesJson).path,
|
artifacts.getHostArtifact(HostArtifact.flutterWebLibrariesJson).path,
|
||||||
|
'--depfile=${depFile.path}',
|
||||||
|
|
||||||
environment.buildDir.childFile('main.dart').path, // dartfile
|
environment.buildDir.childFile('main.dart').path, // dartfile
|
||||||
outputWasmFile.path,
|
outputWasmFile.path,
|
||||||
];
|
];
|
||||||
|
globals.printTrace('compiling dart code to wasm with command "${compilationArgs.join(' ')}"');
|
||||||
final ProcessResult compileResult = await globals.processManager.run(compilationArgs);
|
final ProcessResult compileResult = await globals.processManager.run(compilationArgs);
|
||||||
if (compileResult.exitCode != 0) {
|
if (compileResult.exitCode != 0) {
|
||||||
throw Exception(_collectOutput(compileResult));
|
throw Exception(_collectOutput(compileResult));
|
||||||
@ -335,6 +338,11 @@ class Dart2WasmTarget extends Dart2WebTarget {
|
|||||||
@override
|
@override
|
||||||
String get name => 'dart2wasm';
|
String get name => 'dart2wasm';
|
||||||
|
|
||||||
|
@override
|
||||||
|
List<String> get depfiles => const <String>[
|
||||||
|
'dart2wasm.d',
|
||||||
|
];
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Source> get outputs => const <Source>[
|
List<Source> get outputs => const <Source>[
|
||||||
Source.pattern('{OUTPUT_DIR}/main.dart.wasm'),
|
Source.pattern('{OUTPUT_DIR}/main.dart.wasm'),
|
||||||
|
@ -778,6 +778,8 @@ void main() {
|
|||||||
environment.defines[kBuildMode] = 'profile';
|
environment.defines[kBuildMode] = 'profile';
|
||||||
environment.defines[kDartDefines] = encodeDartDefines(<String>['FOO=bar', 'BAZ=qux']);
|
environment.defines[kDartDefines] = encodeDartDefines(<String>['FOO=bar', 'BAZ=qux']);
|
||||||
|
|
||||||
|
final File depFile = environment.buildDir.childFile('dart2wasm.d');
|
||||||
|
|
||||||
processManager.addCommand(FakeCommand(
|
processManager.addCommand(FakeCommand(
|
||||||
command: <String>[
|
command: <String>[
|
||||||
'bin/cache/dart-sdk/bin/dartaotruntime',
|
'bin/cache/dart-sdk/bin/dartaotruntime',
|
||||||
@ -796,6 +798,7 @@ void main() {
|
|||||||
'bin/cache',
|
'bin/cache',
|
||||||
'--libraries-spec',
|
'--libraries-spec',
|
||||||
'bin/cache/flutter_web_sdk/libraries.json',
|
'bin/cache/flutter_web_sdk/libraries.json',
|
||||||
|
'--depfile=${depFile.absolute.path}',
|
||||||
|
|
||||||
environment.buildDir.childFile('main.dart').absolute.path,
|
environment.buildDir.childFile('main.dart').absolute.path,
|
||||||
environment.buildDir.childFile('main.dart.wasm').absolute.path,
|
environment.buildDir.childFile('main.dart.wasm').absolute.path,
|
||||||
|
Loading…
Reference in New Issue
Block a user