Unverified Commit 5816da80 authored by Kevin Moore's avatar Kevin Moore Committed by GitHub

[tool] consistently use environment (not globals) in targets/web.dart (#125937)

Also update the order of args to commands so that testing has less repeated "stuff"
parent 8449623e
...@@ -163,15 +163,15 @@ class Dart2JSTarget extends Dart2WebTarget { ...@@ -163,15 +163,15 @@ class Dart2JSTarget extends Dart2WebTarget {
} }
final BuildMode buildMode = BuildMode.fromCliName(buildModeEnvironment); final BuildMode buildMode = BuildMode.fromCliName(buildModeEnvironment);
final JsCompilerConfig compilerConfig = JsCompilerConfig.fromBuildSystemEnvironment(environment.defines); final JsCompilerConfig compilerConfig = JsCompilerConfig.fromBuildSystemEnvironment(environment.defines);
final Artifacts artifacts = globals.artifacts!; final Artifacts artifacts = environment.artifacts;
final String platformBinariesPath = getWebPlatformBinariesDirectory(artifacts, webRenderer).path; final String platformBinariesPath = getWebPlatformBinariesDirectory(artifacts, webRenderer).path;
final List<String> sharedCommandOptions = <String>[ final List<String> sharedCommandOptions = <String>[
artifacts.getArtifactPath(Artifact.engineDartBinary, platform: TargetPlatform.web_javascript), artifacts.getArtifactPath(Artifact.engineDartBinary, platform: TargetPlatform.web_javascript),
'--disable-dart-dev', '--disable-dart-dev',
artifacts.getArtifactPath(Artifact.dart2jsSnapshot, platform: TargetPlatform.web_javascript), artifacts.getArtifactPath(Artifact.dart2jsSnapshot, platform: TargetPlatform.web_javascript),
'--platform-binaries=$platformBinariesPath', '--platform-binaries=$platformBinariesPath',
...decodeCommaSeparated(environment.defines, kExtraFrontEndOptions),
'--invoker=flutter_tool', '--invoker=flutter_tool',
...decodeCommaSeparated(environment.defines, kExtraFrontEndOptions),
if (buildMode == BuildMode.profile) if (buildMode == BuildMode.profile)
'-Ddart.vm.profile=true' '-Ddart.vm.profile=true'
else else
...@@ -214,7 +214,7 @@ class Dart2JSTarget extends Dart2WebTarget { ...@@ -214,7 +214,7 @@ class Dart2JSTarget extends Dart2WebTarget {
final File dart2jsDeps = environment.buildDir final File dart2jsDeps = environment.buildDir
.childFile('app.dill.deps'); .childFile('app.dill.deps');
if (!dart2jsDeps.existsSync()) { if (!dart2jsDeps.existsSync()) {
globals.printWarning('Warning: dart2js did not produced expected deps list at ' environment.logger.printWarning('Warning: dart2js did not produced expected deps list at '
'${dart2jsDeps.path}'); '${dart2jsDeps.path}');
return; return;
} }
...@@ -241,7 +241,7 @@ class Dart2WasmTarget extends Dart2WebTarget { ...@@ -241,7 +241,7 @@ class Dart2WasmTarget extends Dart2WebTarget {
} }
final WasmCompilerConfig compilerConfig = WasmCompilerConfig.fromBuildSystemEnvironment(environment.defines); final WasmCompilerConfig compilerConfig = WasmCompilerConfig.fromBuildSystemEnvironment(environment.defines);
final BuildMode buildMode = BuildMode.fromCliName(buildModeEnvironment); final BuildMode buildMode = BuildMode.fromCliName(buildModeEnvironment);
final Artifacts artifacts = globals.artifacts!; final Artifacts artifacts = environment.artifacts;
final File outputWasmFile = environment.buildDir.childFile( final File outputWasmFile = environment.buildDir.childFile(
compilerConfig.runWasmOpt ? 'main.dart.unopt.wasm' : 'main.dart.wasm' compilerConfig.runWasmOpt ? 'main.dart.unopt.wasm' : 'main.dart.wasm'
); );
...@@ -253,14 +253,6 @@ class Dart2WasmTarget extends Dart2WebTarget { ...@@ -253,14 +253,6 @@ class Dart2WasmTarget extends Dart2WebTarget {
artifacts.getArtifactPath(Artifact.engineDartAotRuntime, platform: TargetPlatform.web_javascript), artifacts.getArtifactPath(Artifact.engineDartAotRuntime, platform: TargetPlatform.web_javascript),
'--disable-dart-dev', '--disable-dart-dev',
artifacts.getArtifactPath(Artifact.dart2wasmSnapshot, platform: TargetPlatform.web_javascript), artifacts.getArtifactPath(Artifact.dart2wasmSnapshot, platform: TargetPlatform.web_javascript),
if (buildMode == BuildMode.profile)
'-Ddart.vm.profile=true'
else
'-Ddart.vm.product=true',
...decodeCommaSeparated(environment.defines, kExtraFrontEndOptions),
for (final String dartDefine in decodeDartDefines(environment.defines, kDartDefines))
'-D$dartDefine',
...compilerConfig.toCommandOptions(),
'--packages=.dart_tool/package_config.json', '--packages=.dart_tool/package_config.json',
'--dart-sdk=$dartSdkPath', '--dart-sdk=$dartSdkPath',
'--multi-root-scheme', '--multi-root-scheme',
...@@ -271,6 +263,14 @@ class Dart2WasmTarget extends Dart2WebTarget { ...@@ -271,6 +263,14 @@ class Dart2WasmTarget extends Dart2WebTarget {
dartSdkRoot, dartSdkRoot,
'--libraries-spec', '--libraries-spec',
artifacts.getHostArtifact(HostArtifact.flutterWebLibrariesJson).path, artifacts.getHostArtifact(HostArtifact.flutterWebLibrariesJson).path,
if (buildMode == BuildMode.profile)
'-Ddart.vm.profile=true'
else
'-Ddart.vm.product=true',
...decodeCommaSeparated(environment.defines, kExtraFrontEndOptions),
for (final String dartDefine in decodeDartDefines(environment.defines, kDartDefines))
'-D$dartDefine',
...compilerConfig.toCommandOptions(),
if (webRenderer == WebRendererMode.skwasm) if (webRenderer == WebRendererMode.skwasm)
...<String>[ ...<String>[
'--import-shared-memory', '--import-shared-memory',
...@@ -383,10 +383,10 @@ class WebReleaseBundle extends Target { ...@@ -383,10 +383,10 @@ class WebReleaseBundle extends Target {
@override @override
Future<void> build(Environment environment) async { Future<void> build(Environment environment) async {
for (final File outputFile in environment.buildDir.listSync(recursive: true).whereType<File>()) { for (final File outputFile in environment.buildDir.listSync(recursive: true).whereType<File>()) {
final String basename = globals.fs.path.basename(outputFile.path); final String basename = environment.fileSystem.path.basename(outputFile.path);
if (shouldCopy(basename)) { if (shouldCopy(basename)) {
outputFile.copySync( outputFile.copySync(
environment.outputDir.childFile(globals.fs.path.basename(outputFile.path)).path environment.outputDir.childFile(environment.fileSystem.path.basename(outputFile.path)).path
); );
} }
} }
...@@ -422,9 +422,9 @@ class WebReleaseBundle extends Target { ...@@ -422,9 +422,9 @@ class WebReleaseBundle extends Target {
// Copy other resource files out of web/ directory. // Copy other resource files out of web/ directory.
final List<File> outputResourcesFiles = <File>[]; final List<File> outputResourcesFiles = <File>[];
for (final File inputFile in inputResourceFiles) { for (final File inputFile in inputResourceFiles) {
final File outputFile = globals.fs.file(globals.fs.path.join( final File outputFile = environment.fileSystem.file(environment.fileSystem.path.join(
environment.outputDir.path, environment.outputDir.path,
globals.fs.path.relative(inputFile.path, from: webResources.path))); environment.fileSystem.path.relative(inputFile.path, from: webResources.path)));
if (!outputFile.parent.existsSync()) { if (!outputFile.parent.existsSync()) {
outputFile.parent.createSync(recursive: true); outputFile.parent.createSync(recursive: true);
} }
...@@ -535,7 +535,7 @@ class WebBuiltInAssets extends Target { ...@@ -535,7 +535,7 @@ class WebBuiltInAssets extends Target {
// Write the flutter.js file // Write the flutter.js file
final File flutterJsFile = environment.outputDir.childFile('flutter.js'); final File flutterJsFile = environment.outputDir.childFile('flutter.js');
final String fileGeneratorsPath = final String fileGeneratorsPath =
globals.artifacts!.getArtifactPath(Artifact.flutterToolsFileGenerators); environment.artifacts.getArtifactPath(Artifact.flutterToolsFileGenerators);
flutterJsFile.writeAsStringSync( flutterJsFile.writeAsStringSync(
flutter_js.generateFlutterJsFile(fileGeneratorsPath)); flutter_js.generateFlutterJsFile(fileGeneratorsPath));
} }
...@@ -576,7 +576,7 @@ class WebServiceWorker extends Target { ...@@ -576,7 +576,7 @@ class WebServiceWorker extends Target {
.listSync(recursive: true) .listSync(recursive: true)
.whereType<File>() .whereType<File>()
.where((File file) => !file.path.endsWith('flutter_service_worker.js') .where((File file) => !file.path.endsWith('flutter_service_worker.js')
&& !globals.fs.path.basename(file.path).startsWith('.')) && !environment.fileSystem.path.basename(file.path).startsWith('.'))
.toList(); .toList();
final Map<String, String> urlToHash = <String, String>{}; final Map<String, String> urlToHash = <String, String>{};
...@@ -586,15 +586,15 @@ class WebServiceWorker extends Target { ...@@ -586,15 +586,15 @@ class WebServiceWorker extends Target {
file.path.endsWith('.part.js.map')) { file.path.endsWith('.part.js.map')) {
continue; continue;
} }
final String url = globals.fs.path.toUri( final String url = environment.fileSystem.path.toUri(
globals.fs.path.relative( environment.fileSystem.path.relative(
file.path, file.path,
from: environment.outputDir.path), from: environment.outputDir.path),
).toString(); ).toString();
final String hash = md5.convert(await file.readAsBytes()).toString(); final String hash = md5.convert(await file.readAsBytes()).toString();
urlToHash[url] = hash; urlToHash[url] = hash;
// Add an additional entry for the base URL. // Add an additional entry for the base URL.
if (globals.fs.path.basename(url) == 'index.html') { if (environment.fileSystem.path.basename(url) == 'index.html') {
urlToHash['/'] = hash; urlToHash['/'] = hash;
} }
} }
...@@ -605,7 +605,7 @@ class WebServiceWorker extends Target { ...@@ -605,7 +605,7 @@ class WebServiceWorker extends Target {
final ServiceWorkerStrategy serviceWorkerStrategy = final ServiceWorkerStrategy serviceWorkerStrategy =
ServiceWorkerStrategy.fromCliName(environment.defines[kServiceWorkerStrategy]); ServiceWorkerStrategy.fromCliName(environment.defines[kServiceWorkerStrategy]);
final String fileGeneratorsPath = final String fileGeneratorsPath =
globals.artifacts!.getArtifactPath(Artifact.flutterToolsFileGenerators); environment.artifacts.getArtifactPath(Artifact.flutterToolsFileGenerators);
final String serviceWorker = generateServiceWorker( final String serviceWorker = generateServiceWorker(
fileGeneratorsPath, fileGeneratorsPath,
urlToHash, urlToHash,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment