Unverified Commit aa9119e5 authored by includecmath's avatar includecmath Committed by GitHub

[flutter_tools] Concise dart2js commands outputKernel & outputJavaScript (#61881)

parent 8be1c9ef
...@@ -153,64 +153,48 @@ class Dart2JSTarget extends Target { ...@@ -153,64 +153,48 @@ class Dart2JSTarget extends Target {
@override @override
Future<void> build(Environment environment) async { Future<void> build(Environment environment) async {
final String dart2jsOptimization = environment.defines[kDart2jsOptimization];
final bool csp = environment.defines[kCspMode] == 'true';
final BuildMode buildMode = getBuildModeForName(environment.defines[kBuildMode]); final BuildMode buildMode = getBuildModeForName(environment.defines[kBuildMode]);
final String specPath = globals.fs.path.join(
globals.artifacts.getArtifactPath(Artifact.flutterWebSdk), 'libraries.json');
// TODO(jonahwilliams): support configuration of this file.
const String packageFile = '.packages';
final File outputKernel = environment.buildDir.childFile('app.dill');
final File outputFile = environment.buildDir.childFile('main.dart.js');
final List<String> dartDefines = decodeDartDefines(environment.defines, kDartDefines);
final List<String> extraFrontEndOptions = decodeDartDefines(environment.defines, kExtraFrontEndOptions);
// Run the dart2js compilation in two stages, so that icon tree shaking can final List<String> sharedCommandOptions = <String>[
// parse the kernel file for web builds.
final ProcessResult kernelResult = await globals.processManager.run(<String>[
globals.artifacts.getArtifactPath(Artifact.engineDartBinary), globals.artifacts.getArtifactPath(Artifact.engineDartBinary),
'--disable-dart-dev', '--disable-dart-dev',
globals.artifacts.getArtifactPath(Artifact.dart2jsSnapshot), globals.artifacts.getArtifactPath(Artifact.dart2jsSnapshot),
'--libraries-spec=$specPath', '--libraries-spec=${globals.fs.path.join(globals.artifacts.getArtifactPath(Artifact.flutterWebSdk), 'libraries.json')}',
...?extraFrontEndOptions, ...?decodeDartDefines(environment.defines, kExtraFrontEndOptions),
'-o',
outputKernel.path,
'--packages=$packageFile',
if (buildMode == BuildMode.profile) if (buildMode == BuildMode.profile)
'-Ddart.vm.profile=true' '-Ddart.vm.profile=true'
else else
'-Ddart.vm.product=true', '-Ddart.vm.product=true',
for (final String dartDefine in dartDefines) for (final String dartDefine in decodeDartDefines(environment.defines, kDartDefines))
'-D$dartDefine', '-D$dartDefine',
];
// Run the dart2js compilation in two stages, so that icon tree shaking can
// parse the kernel file for web builds.
final ProcessResult kernelResult = await globals.processManager.run(<String>[
...sharedCommandOptions,
'-o',
environment.buildDir.childFile('app.dill').path,
'--packages=.packages',
'--cfe-only', '--cfe-only',
environment.buildDir.childFile('main.dart').path, environment.buildDir.childFile('main.dart').path, // dartfile
]); ]);
if (kernelResult.exitCode != 0) { if (kernelResult.exitCode != 0) {
throw Exception(kernelResult.stdout + kernelResult.stderr); throw Exception(kernelResult.stdout + kernelResult.stderr);
} }
final String dart2jsOptimization = environment.defines[kDart2jsOptimization];
final File outputJSFile = environment.buildDir.childFile('main.dart.js');
final bool csp = environment.defines[kCspMode] == 'true';
final ProcessResult javaScriptResult = await globals.processManager.run(<String>[ final ProcessResult javaScriptResult = await globals.processManager.run(<String>[
globals.artifacts.getArtifactPath(Artifact.engineDartBinary), ...sharedCommandOptions,
'--disable-dart-dev', if (dart2jsOptimization != null) '-$dart2jsOptimization' else '-O4',
globals.artifacts.getArtifactPath(Artifact.dart2jsSnapshot), if (buildMode == BuildMode.profile) '--no-minify',
'--libraries-spec=$specPath', if (csp) '--csp',
...?extraFrontEndOptions,
if (dart2jsOptimization != null)
'-$dart2jsOptimization'
else
'-O4',
if (buildMode == BuildMode.profile)
'-Ddart.vm.profile=true'
else
'-Ddart.vm.product=true',
for (final String dartDefine in dartDefines)
'-D$dartDefine',
if (buildMode == BuildMode.profile)
'--no-minify',
if (csp)
'--csp',
'-o', '-o',
outputFile.path, outputJSFile.path,
environment.buildDir.childFile('app.dill').path, environment.buildDir.childFile('app.dill').path, // dartfile
]); ]);
if (javaScriptResult.exitCode != 0) { if (javaScriptResult.exitCode != 0) {
throw Exception(javaScriptResult.stdout + javaScriptResult.stderr); throw Exception(javaScriptResult.stdout + javaScriptResult.stderr);
...@@ -228,7 +212,7 @@ class Dart2JSTarget extends Target { ...@@ -228,7 +212,7 @@ class Dart2JSTarget extends Target {
); );
final Depfile depfile = depfileService.parseDart2js( final Depfile depfile = depfileService.parseDart2js(
environment.buildDir.childFile('app.dill.deps'), environment.buildDir.childFile('app.dill.deps'),
outputFile, outputJSFile,
); );
depfileService.writeToFile( depfileService.writeToFile(
depfile, depfile,
......
...@@ -225,10 +225,10 @@ void main() { ...@@ -225,10 +225,10 @@ void main() {
processManager.addCommand(FakeCommand( processManager.addCommand(FakeCommand(
command: <String>[ command: <String>[
...kDart2jsLinuxArgs, ...kDart2jsLinuxArgs,
'-Ddart.vm.profile=true',
'-o', '-o',
environment.buildDir.childFile('app.dill').absolute.path, environment.buildDir.childFile('app.dill').absolute.path,
'--packages=.packages', '--packages=.packages',
'-Ddart.vm.profile=true',
'--cfe-only', '--cfe-only',
environment.buildDir.childFile('main.dart').absolute.path, environment.buildDir.childFile('main.dart').absolute.path,
] ]
...@@ -236,8 +236,8 @@ void main() { ...@@ -236,8 +236,8 @@ void main() {
processManager.addCommand(FakeCommand( processManager.addCommand(FakeCommand(
command: <String>[ command: <String>[
...kDart2jsLinuxArgs, ...kDart2jsLinuxArgs,
'-O4',
'-Ddart.vm.profile=true', '-Ddart.vm.profile=true',
'-O4',
'--no-minify', '--no-minify',
'--csp', '--csp',
'-o', '-o',
...@@ -259,10 +259,10 @@ void main() { ...@@ -259,10 +259,10 @@ void main() {
command: <String>[ command: <String>[
...kDart2jsLinuxArgs, ...kDart2jsLinuxArgs,
'--enable-experiment=non-nullable', '--enable-experiment=non-nullable',
'-Ddart.vm.profile=true',
'-o', '-o',
environment.buildDir.childFile('app.dill').absolute.path, environment.buildDir.childFile('app.dill').absolute.path,
'--packages=.packages', '--packages=.packages',
'-Ddart.vm.profile=true',
'--cfe-only', '--cfe-only',
environment.buildDir.childFile('main.dart').absolute.path, environment.buildDir.childFile('main.dart').absolute.path,
] ]
...@@ -271,8 +271,8 @@ void main() { ...@@ -271,8 +271,8 @@ void main() {
command: <String>[ command: <String>[
...kDart2jsLinuxArgs, ...kDart2jsLinuxArgs,
'--enable-experiment=non-nullable', '--enable-experiment=non-nullable',
'-O4',
'-Ddart.vm.profile=true', '-Ddart.vm.profile=true',
'-O4',
'--no-minify', '--no-minify',
'-o', '-o',
environment.buildDir.childFile('main.dart.js').absolute.path, environment.buildDir.childFile('main.dart.js').absolute.path,
...@@ -290,10 +290,10 @@ void main() { ...@@ -290,10 +290,10 @@ void main() {
processManager.addCommand(FakeCommand( processManager.addCommand(FakeCommand(
command: <String>[ command: <String>[
...kDart2jsLinuxArgs, ...kDart2jsLinuxArgs,
'-Ddart.vm.profile=true',
'-o', '-o',
environment.buildDir.childFile('app.dill').absolute.path, environment.buildDir.childFile('app.dill').absolute.path,
'--packages=.packages', '--packages=.packages',
'-Ddart.vm.profile=true',
'--cfe-only', '--cfe-only',
environment.buildDir.childFile('main.dart').absolute.path, environment.buildDir.childFile('main.dart').absolute.path,
] ]
...@@ -301,8 +301,8 @@ void main() { ...@@ -301,8 +301,8 @@ void main() {
processManager.addCommand(FakeCommand( processManager.addCommand(FakeCommand(
command: <String>[ command: <String>[
...kDart2jsLinuxArgs, ...kDart2jsLinuxArgs,
'-O4',
'-Ddart.vm.profile=true', '-Ddart.vm.profile=true',
'-O4',
'--no-minify', '--no-minify',
'-o', '-o',
environment.buildDir.childFile('main.dart.js').absolute.path, environment.buildDir.childFile('main.dart.js').absolute.path,
...@@ -320,10 +320,10 @@ void main() { ...@@ -320,10 +320,10 @@ void main() {
processManager.addCommand(FakeCommand( processManager.addCommand(FakeCommand(
command: <String>[ command: <String>[
...kDart2jsLinuxArgs, ...kDart2jsLinuxArgs,
'-Ddart.vm.product=true',
'-o', '-o',
environment.buildDir.childFile('app.dill').absolute.path, environment.buildDir.childFile('app.dill').absolute.path,
'--packages=.packages', '--packages=.packages',
'-Ddart.vm.product=true',
'--cfe-only', '--cfe-only',
environment.buildDir.childFile('main.dart').absolute.path, environment.buildDir.childFile('main.dart').absolute.path,
] ]
...@@ -331,8 +331,8 @@ void main() { ...@@ -331,8 +331,8 @@ void main() {
processManager.addCommand(FakeCommand( processManager.addCommand(FakeCommand(
command: <String>[ command: <String>[
...kDart2jsLinuxArgs, ...kDart2jsLinuxArgs,
'-O4',
'-Ddart.vm.product=true', '-Ddart.vm.product=true',
'-O4',
'-o', '-o',
environment.buildDir.childFile('main.dart.js').absolute.path, environment.buildDir.childFile('main.dart.js').absolute.path,
environment.buildDir.childFile('app.dill').absolute.path, environment.buildDir.childFile('app.dill').absolute.path,
...@@ -350,10 +350,10 @@ void main() { ...@@ -350,10 +350,10 @@ void main() {
processManager.addCommand(FakeCommand( processManager.addCommand(FakeCommand(
command: <String>[ command: <String>[
...kDart2jsLinuxArgs, ...kDart2jsLinuxArgs,
'-Ddart.vm.product=true',
'-o', '-o',
environment.buildDir.childFile('app.dill').absolute.path, environment.buildDir.childFile('app.dill').absolute.path,
'--packages=.packages', '--packages=.packages',
'-Ddart.vm.product=true',
'--cfe-only', '--cfe-only',
environment.buildDir.childFile('main.dart').absolute.path, environment.buildDir.childFile('main.dart').absolute.path,
] ]
...@@ -361,8 +361,8 @@ void main() { ...@@ -361,8 +361,8 @@ void main() {
processManager.addCommand(FakeCommand( processManager.addCommand(FakeCommand(
command: <String>[ command: <String>[
...kDart2jsLinuxArgs, ...kDart2jsLinuxArgs,
'-O3',
'-Ddart.vm.product=true', '-Ddart.vm.product=true',
'-O3',
'-o', '-o',
environment.buildDir.childFile('main.dart.js').absolute.path, environment.buildDir.childFile('main.dart.js').absolute.path,
environment.buildDir.childFile('app.dill').absolute.path, environment.buildDir.childFile('app.dill').absolute.path,
...@@ -399,12 +399,12 @@ void main() { ...@@ -399,12 +399,12 @@ void main() {
processManager.addCommand(FakeCommand( processManager.addCommand(FakeCommand(
command: <String>[ command: <String>[
...kDart2jsLinuxArgs, ...kDart2jsLinuxArgs,
'-o',
environment.buildDir.childFile('app.dill').absolute.path,
'--packages=.packages',
'-Ddart.vm.product=true', '-Ddart.vm.product=true',
'-DFOO=bar', '-DFOO=bar',
'-DBAZ=qux', '-DBAZ=qux',
'-o',
environment.buildDir.childFile('app.dill').absolute.path,
'--packages=.packages',
'--cfe-only', '--cfe-only',
environment.buildDir.childFile('main.dart').absolute.path, environment.buildDir.childFile('main.dart').absolute.path,
] ]
...@@ -412,10 +412,10 @@ void main() { ...@@ -412,10 +412,10 @@ void main() {
processManager.addCommand(FakeCommand( processManager.addCommand(FakeCommand(
command: <String>[ command: <String>[
...kDart2jsLinuxArgs, ...kDart2jsLinuxArgs,
'-O4',
'-Ddart.vm.product=true', '-Ddart.vm.product=true',
'-DFOO=bar', '-DFOO=bar',
'-DBAZ=qux', '-DBAZ=qux',
'-O4',
'-o', '-o',
environment.buildDir.childFile('main.dart.js').absolute.path, environment.buildDir.childFile('main.dart.js').absolute.path,
environment.buildDir.childFile('app.dill').absolute.path, environment.buildDir.childFile('app.dill').absolute.path,
...@@ -433,12 +433,12 @@ void main() { ...@@ -433,12 +433,12 @@ void main() {
processManager.addCommand(FakeCommand( processManager.addCommand(FakeCommand(
command: <String>[ command: <String>[
...kDart2jsLinuxArgs, ...kDart2jsLinuxArgs,
'-o',
environment.buildDir.childFile('app.dill').absolute.path,
'--packages=.packages',
'-Ddart.vm.profile=true', '-Ddart.vm.profile=true',
'-DFOO=bar', '-DFOO=bar',
'-DBAZ=qux', '-DBAZ=qux',
'-o',
environment.buildDir.childFile('app.dill').absolute.path,
'--packages=.packages',
'--cfe-only', '--cfe-only',
environment.buildDir.childFile('main.dart').absolute.path, environment.buildDir.childFile('main.dart').absolute.path,
] ]
...@@ -446,10 +446,10 @@ void main() { ...@@ -446,10 +446,10 @@ void main() {
processManager.addCommand(FakeCommand( processManager.addCommand(FakeCommand(
command: <String>[ command: <String>[
...kDart2jsLinuxArgs, ...kDart2jsLinuxArgs,
'-O4',
'-Ddart.vm.profile=true', '-Ddart.vm.profile=true',
'-DFOO=bar', '-DFOO=bar',
'-DBAZ=qux', '-DBAZ=qux',
'-O4',
'--no-minify', '--no-minify',
'-o', '-o',
environment.buildDir.childFile('main.dart.js').absolute.path, environment.buildDir.childFile('main.dart.js').absolute.path,
......
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