mirror of
https://github.com/dart-lang/sdk
synced 2024-09-05 00:13:50 +00:00
[dart2wasm] Support --multi-root and --multi-root-scheme flags.
Change-Id: I111748742677073bb3cf4c1655b69cb21d42f546 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/274089 Reviewed-by: Joshua Litt <joshualitt@google.com> Commit-Queue: Jackson Gardner <jacksongardner@google.com>
This commit is contained in:
parent
1edc2ecd3f
commit
00ca59a478
|
@ -50,8 +50,12 @@ final List<Option> options = [
|
|||
StringMultiOption(
|
||||
"define", (o, values) => o.environment = processEnvironment(values),
|
||||
abbr: "D"),
|
||||
StringMultiOption("enable-experiment",
|
||||
(o, values) => o.feExperimentalFlags = processFeExperimentalFlags(values))
|
||||
StringMultiOption(
|
||||
"enable-experiment",
|
||||
(o, values) =>
|
||||
o.feExperimentalFlags = processFeExperimentalFlags(values)),
|
||||
StringOption("multi-root-scheme", (o, value) => o.multiRootScheme = value),
|
||||
UriMultiOption("multi-root", (o, values) => o.multiRoots = values),
|
||||
];
|
||||
|
||||
Map<fe.ExperimentalFlag, bool> processFeExperimentalFlags(
|
||||
|
|
|
@ -4,6 +4,11 @@
|
|||
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:build_integration/file_system/multi_root.dart'
|
||||
show MultiRootFileSystem;
|
||||
|
||||
import 'package:front_end/src/api_prototype/standard_file_system.dart'
|
||||
show StandardFileSystem;
|
||||
import 'package:front_end/src/api_unstable/vm.dart'
|
||||
show
|
||||
CompilerOptions,
|
||||
|
@ -52,6 +57,12 @@ Future<Uint8List?> compileToModule(compiler.CompilerOptions options,
|
|||
..verbose = false
|
||||
..onDiagnostic = diagnosticMessageHandler
|
||||
..nnbdMode = NnbdMode.Strong;
|
||||
if (options.multiRootScheme != null) {
|
||||
compilerOptions.fileSystem = new MultiRootFileSystem(
|
||||
options.multiRootScheme!,
|
||||
options.multiRoots.isEmpty ? [Uri.base] : options.multiRoots,
|
||||
StandardFileSystem.instance);
|
||||
}
|
||||
|
||||
if (options.platformPath != null) {
|
||||
compilerOptions.sdkSummary = options.platformPath;
|
||||
|
|
|
@ -18,6 +18,8 @@ class CompilerOptions {
|
|||
String outputFile;
|
||||
Map<String, String> environment = const {};
|
||||
Map<fe.ExperimentalFlag, bool> feExperimentalFlags = const {};
|
||||
String? multiRootScheme;
|
||||
List<Uri> multiRoots = const [];
|
||||
|
||||
factory CompilerOptions.defaultOptions() =>
|
||||
CompilerOptions(mainUri: Uri(), outputFile: '');
|
||||
|
|
|
@ -51,6 +51,12 @@ class IntOption extends ValueOption<int> {
|
|||
defaultsTo: defaultsTo);
|
||||
}
|
||||
|
||||
class StringOption extends ValueOption<String> {
|
||||
StringOption(String name, void applyToOptions(CompilerOptions o, String v),
|
||||
{String? defaultsTo})
|
||||
: super(name, applyToOptions, (v) => v, defaultsTo: defaultsTo);
|
||||
}
|
||||
|
||||
class UriOption extends ValueOption<Uri> {
|
||||
UriOption(String name, void applyToOptions(CompilerOptions o, Uri v),
|
||||
{String? defaultsTo})
|
||||
|
@ -86,3 +92,10 @@ class StringMultiOption extends MultiValueOption<String> {
|
|||
: super(name, applyToOptions, (v) => v,
|
||||
abbr: abbr, defaultsTo: defaultsTo);
|
||||
}
|
||||
|
||||
class UriMultiOption extends MultiValueOption<Uri> {
|
||||
UriMultiOption(name, void applyToOptions(CompilerOptions o, List<Uri> v),
|
||||
{Iterable<String>? defaultsTo})
|
||||
: super(name, applyToOptions, (v) => Uri.file(Directory(v).absolute.path),
|
||||
defaultsTo: defaultsTo);
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ dependencies:
|
|||
_fe_analyzer_shared: any
|
||||
_js_interop_checks: any
|
||||
args: any
|
||||
build_integration: any
|
||||
front_end: any
|
||||
kernel: any
|
||||
vm: any
|
||||
|
|
Loading…
Reference in a new issue