Reland filesystem options support with fix for Windows test. (#15655)
* Revert "Revert "Reland pass filesystem options (#15622)" (#15651)" This reverts commit 0f3eada0664e208bb8c65a5aa02daec38997e8b9. * Fix for windows failing test * !isEmpty -> isNotEmpty
This commit is contained in:
parent
298f4efc54
commit
43284d70d9
@ -260,6 +260,14 @@ class FlutterPlugin implements Plugin<Project> {
|
|||||||
if (project.hasProperty('preview-dart-2')) {
|
if (project.hasProperty('preview-dart-2')) {
|
||||||
previewDart2Value = project.property('preview-dart-2')
|
previewDart2Value = project.property('preview-dart-2')
|
||||||
}
|
}
|
||||||
|
String[] fileSystemRootsValue = null
|
||||||
|
if (project.hasProperty('filesystem-roots')) {
|
||||||
|
fileSystemRootsValue = project.property('filesystem-roots').split('\\|')
|
||||||
|
}
|
||||||
|
String fileSystemSchemeValue = null
|
||||||
|
if (project.hasProperty('filesystem-scheme')) {
|
||||||
|
fileSystemSchemeValue = project.property('filesystem-scheme')
|
||||||
|
}
|
||||||
Boolean trackWidgetCreationValue = false
|
Boolean trackWidgetCreationValue = false
|
||||||
if (project.hasProperty('track-widget-creation')) {
|
if (project.hasProperty('track-widget-creation')) {
|
||||||
trackWidgetCreationValue = project.property('track-widget-creation')
|
trackWidgetCreationValue = project.property('track-widget-creation')
|
||||||
@ -302,6 +310,8 @@ class FlutterPlugin implements Plugin<Project> {
|
|||||||
localEngineSrcPath this.localEngineSrcPath
|
localEngineSrcPath this.localEngineSrcPath
|
||||||
targetPath target
|
targetPath target
|
||||||
previewDart2 previewDart2Value
|
previewDart2 previewDart2Value
|
||||||
|
fileSystemRoots fileSystemRootsValue
|
||||||
|
fileSystemScheme fileSystemSchemeValue
|
||||||
trackWidgetCreation trackWidgetCreationValue
|
trackWidgetCreation trackWidgetCreationValue
|
||||||
preferSharedLibrary preferSharedLibraryValue
|
preferSharedLibrary preferSharedLibraryValue
|
||||||
targetPlatform targetPlatformValue
|
targetPlatform targetPlatformValue
|
||||||
@ -320,6 +330,8 @@ class FlutterPlugin implements Plugin<Project> {
|
|||||||
localEngineSrcPath this.localEngineSrcPath
|
localEngineSrcPath this.localEngineSrcPath
|
||||||
targetPath target
|
targetPath target
|
||||||
previewDart2 previewDart2Value
|
previewDart2 previewDart2Value
|
||||||
|
fileSystemRoots fileSystemRootsValue
|
||||||
|
fileSystemScheme fileSystemSchemeValue
|
||||||
trackWidgetCreation trackWidgetCreationValue
|
trackWidgetCreation trackWidgetCreationValue
|
||||||
preferSharedLibrary preferSharedLibraryValue
|
preferSharedLibrary preferSharedLibraryValue
|
||||||
targetPlatform targetPlatformValue
|
targetPlatform targetPlatformValue
|
||||||
@ -357,6 +369,10 @@ abstract class BaseFlutterTask extends DefaultTask {
|
|||||||
@Optional @Input
|
@Optional @Input
|
||||||
Boolean previewDart2
|
Boolean previewDart2
|
||||||
@Optional @Input
|
@Optional @Input
|
||||||
|
String[] fileSystemRoots
|
||||||
|
@Optional @Input
|
||||||
|
String fileSystemScheme
|
||||||
|
@Optional @Input
|
||||||
Boolean trackWidgetCreation
|
Boolean trackWidgetCreation
|
||||||
@Optional @Input
|
@Optional @Input
|
||||||
Boolean preferSharedLibrary
|
Boolean preferSharedLibrary
|
||||||
@ -437,6 +453,14 @@ abstract class BaseFlutterTask extends DefaultTask {
|
|||||||
} else {
|
} else {
|
||||||
args "--no-preview-dart-2"
|
args "--no-preview-dart-2"
|
||||||
}
|
}
|
||||||
|
if (fileSystemRoots != null) {
|
||||||
|
for (root in fileSystemRoots) {
|
||||||
|
args "--filesystem-root", root
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (fileSystemScheme != null) {
|
||||||
|
args "--filesystem-scheme", fileSystemScheme
|
||||||
|
}
|
||||||
if (trackWidgetCreation) {
|
if (trackWidgetCreation) {
|
||||||
args "--track-widget-creation"
|
args "--track-widget-creation"
|
||||||
}
|
}
|
||||||
|
@ -303,6 +303,10 @@ Future<Null> _buildGradleProjectV2(String gradle, BuildInfo buildInfo, String ta
|
|||||||
command.add('-Pextra-front-end-options=${buildInfo.extraFrontEndOptions}');
|
command.add('-Pextra-front-end-options=${buildInfo.extraFrontEndOptions}');
|
||||||
if (buildInfo.extraGenSnapshotOptions != null)
|
if (buildInfo.extraGenSnapshotOptions != null)
|
||||||
command.add('-Pextra-gen-snapshot-options=${buildInfo.extraGenSnapshotOptions}');
|
command.add('-Pextra-gen-snapshot-options=${buildInfo.extraGenSnapshotOptions}');
|
||||||
|
if (buildInfo.fileSystemRoots != null && buildInfo.fileSystemRoots.isNotEmpty)
|
||||||
|
command.add('-Pfilesystem-roots=${buildInfo.fileSystemRoots.join('|')}');
|
||||||
|
if (buildInfo.fileSystemScheme != null)
|
||||||
|
command.add('-Pfilesystem-scheme=${buildInfo.fileSystemScheme}');
|
||||||
}
|
}
|
||||||
if (buildInfo.preferSharedLibrary && androidSdk.ndkCompiler != null) {
|
if (buildInfo.preferSharedLibrary && androidSdk.ndkCompiler != null) {
|
||||||
command.add('-Pprefer-shared-library=true');
|
command.add('-Pprefer-shared-library=true');
|
||||||
|
@ -17,6 +17,8 @@ class BuildInfo {
|
|||||||
this.extraGenSnapshotOptions,
|
this.extraGenSnapshotOptions,
|
||||||
this.preferSharedLibrary,
|
this.preferSharedLibrary,
|
||||||
this.targetPlatform,
|
this.targetPlatform,
|
||||||
|
this.fileSystemRoots,
|
||||||
|
this.fileSystemScheme,
|
||||||
});
|
});
|
||||||
|
|
||||||
final BuildMode mode;
|
final BuildMode mode;
|
||||||
@ -32,6 +34,9 @@ class BuildInfo {
|
|||||||
/// Whether build should be done using Dart2 Frontend parser.
|
/// Whether build should be done using Dart2 Frontend parser.
|
||||||
final bool previewDart2;
|
final bool previewDart2;
|
||||||
|
|
||||||
|
final List<String> fileSystemRoots;
|
||||||
|
final String fileSystemScheme;
|
||||||
|
|
||||||
/// Whether the build should track widget creation locations.
|
/// Whether the build should track widget creation locations.
|
||||||
final bool trackWidgetCreation;
|
final bool trackWidgetCreation;
|
||||||
|
|
||||||
|
@ -35,7 +35,18 @@ class BuildFlxCommand extends BuildSubCommand {
|
|||||||
..addFlag('report-licensed-packages',
|
..addFlag('report-licensed-packages',
|
||||||
help: 'Whether to report the names of all the packages that are included '
|
help: 'Whether to report the names of all the packages that are included '
|
||||||
'in the application\'s LICENSE file.',
|
'in the application\'s LICENSE file.',
|
||||||
defaultsTo: false);
|
defaultsTo: false)
|
||||||
|
..addMultiOption('filesystem-root',
|
||||||
|
hide: !verboseHelp,
|
||||||
|
help: 'Specify the path, that is used as root in a virtual file system\n'
|
||||||
|
'for compilation. Input file name should be specified as Uri in\n'
|
||||||
|
'filesystem-scheme scheme. Use only in Dart 2 mode.\n'
|
||||||
|
'Requires --output-dill option to be explicitly specified.\n')
|
||||||
|
..addOption('filesystem-scheme',
|
||||||
|
defaultsTo: 'org-dartlang-root',
|
||||||
|
hide: !verboseHelp,
|
||||||
|
help: 'Specify the scheme that is used for virtual file system used in\n'
|
||||||
|
'compilation. See more details on filesystem-root option.\n');
|
||||||
usesPubOption();
|
usesPubOption();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,6 +78,8 @@ class BuildFlxCommand extends BuildSubCommand {
|
|||||||
precompiledSnapshot: argResults['precompiled'],
|
precompiledSnapshot: argResults['precompiled'],
|
||||||
reportLicensedPackages: argResults['report-licensed-packages'],
|
reportLicensedPackages: argResults['report-licensed-packages'],
|
||||||
trackWidgetCreation: argResults['track-widget-creation'],
|
trackWidgetCreation: argResults['track-widget-creation'],
|
||||||
|
fileSystemScheme: argResults['filesystem-scheme'],
|
||||||
|
fileSystemRoots: argResults['filesystem-root'],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -172,7 +172,18 @@ class RunCommand extends RunCommandBase {
|
|||||||
help: 'Specify the path to frontend server output kernel file.',
|
help: 'Specify the path to frontend server output kernel file.',
|
||||||
)
|
)
|
||||||
..addOption(FlutterOptions.kExtraFrontEndOptions, hide: true)
|
..addOption(FlutterOptions.kExtraFrontEndOptions, hide: true)
|
||||||
..addOption(FlutterOptions.kExtraGenSnapshotOptions, hide: true);
|
..addOption(FlutterOptions.kExtraGenSnapshotOptions, hide: true)
|
||||||
|
..addMultiOption('filesystem-root',
|
||||||
|
hide: !verboseHelp,
|
||||||
|
help: 'Specify the path, that is used as root in a virtual file system\n'
|
||||||
|
'for compilation. Input file name should be specified as Uri in\n'
|
||||||
|
'filesystem-scheme scheme. Use only in Dart 2 mode.\n'
|
||||||
|
'Requires --output-dill option to be explicitly specified.\n')
|
||||||
|
..addOption('filesystem-scheme',
|
||||||
|
defaultsTo: 'org-dartlang-root',
|
||||||
|
hide: !verboseHelp,
|
||||||
|
help: 'Specify the scheme that is used for virtual file system used in\n'
|
||||||
|
'compilation. See more details on filesystem-root option.\n');
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Device> devices;
|
List<Device> devices;
|
||||||
@ -345,6 +356,8 @@ class RunCommand extends RunCommandBase {
|
|||||||
previewDart2: argResults['preview-dart-2'],
|
previewDart2: argResults['preview-dart-2'],
|
||||||
trackWidgetCreation: argResults['track-widget-creation'],
|
trackWidgetCreation: argResults['track-widget-creation'],
|
||||||
dillOutputPath: argResults['output-dill'],
|
dillOutputPath: argResults['output-dill'],
|
||||||
|
fileSystemRoots: argResults['filesystem-root'],
|
||||||
|
fileSystemScheme: argResults['filesystem-scheme'],
|
||||||
);
|
);
|
||||||
}).toList();
|
}).toList();
|
||||||
|
|
||||||
|
@ -55,7 +55,9 @@ Future<String> compile(
|
|||||||
bool trackWidgetCreation: false,
|
bool trackWidgetCreation: false,
|
||||||
List<String> extraFrontEndOptions,
|
List<String> extraFrontEndOptions,
|
||||||
String incrementalCompilerByteStorePath,
|
String incrementalCompilerByteStorePath,
|
||||||
String packagesPath}) async {
|
String packagesPath,
|
||||||
|
List<String> fileSystemRoots,
|
||||||
|
String fileSystemScheme}) async {
|
||||||
final String frontendServer = artifacts.getArtifactPath(
|
final String frontendServer = artifacts.getArtifactPath(
|
||||||
Artifact.frontendServerSnapshotForEngineDartSdk
|
Artifact.frontendServerSnapshotForEngineDartSdk
|
||||||
);
|
);
|
||||||
@ -93,9 +95,17 @@ Future<String> compile(
|
|||||||
if (outputFilePath != null) {
|
if (outputFilePath != null) {
|
||||||
command.addAll(<String>['--output-dill', outputFilePath]);
|
command.addAll(<String>['--output-dill', outputFilePath]);
|
||||||
}
|
}
|
||||||
if (depFilePath != null) {
|
if (depFilePath != null && (fileSystemRoots == null || fileSystemRoots.isEmpty)) {
|
||||||
command.addAll(<String>['--depfile', depFilePath]);
|
command.addAll(<String>['--depfile', depFilePath]);
|
||||||
}
|
}
|
||||||
|
if (fileSystemRoots != null) {
|
||||||
|
for (String root in fileSystemRoots) {
|
||||||
|
command.addAll(<String>['--filesystem-root', root]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (fileSystemScheme != null) {
|
||||||
|
command.addAll(<String>['--filesystem-scheme', fileSystemScheme]);
|
||||||
|
}
|
||||||
|
|
||||||
if (extraFrontEndOptions != null)
|
if (extraFrontEndOptions != null)
|
||||||
command.addAll(extraFrontEndOptions);
|
command.addAll(extraFrontEndOptions);
|
||||||
@ -127,10 +137,13 @@ Future<String> compile(
|
|||||||
/// restarts the Flutter app.
|
/// restarts the Flutter app.
|
||||||
class ResidentCompiler {
|
class ResidentCompiler {
|
||||||
ResidentCompiler(this._sdkRoot, {bool trackWidgetCreation: false,
|
ResidentCompiler(this._sdkRoot, {bool trackWidgetCreation: false,
|
||||||
String packagesPath, CompilerMessageConsumer compilerMessageConsumer: printError})
|
String packagesPath, List<String> fileSystemRoots, String fileSystemScheme ,
|
||||||
|
CompilerMessageConsumer compilerMessageConsumer: printError})
|
||||||
: assert(_sdkRoot != null),
|
: assert(_sdkRoot != null),
|
||||||
_trackWidgetCreation = trackWidgetCreation,
|
_trackWidgetCreation = trackWidgetCreation,
|
||||||
_packagesPath = packagesPath,
|
_packagesPath = packagesPath,
|
||||||
|
_fileSystemRoots = fileSystemRoots,
|
||||||
|
_fileSystemScheme = fileSystemScheme,
|
||||||
stdoutHandler = new _StdoutHandler(consumer: compilerMessageConsumer) {
|
stdoutHandler = new _StdoutHandler(consumer: compilerMessageConsumer) {
|
||||||
// This is a URI, not a file path, so the forward slash is correct even on Windows.
|
// This is a URI, not a file path, so the forward slash is correct even on Windows.
|
||||||
if (!_sdkRoot.endsWith('/'))
|
if (!_sdkRoot.endsWith('/'))
|
||||||
@ -139,6 +152,8 @@ class ResidentCompiler {
|
|||||||
|
|
||||||
final bool _trackWidgetCreation;
|
final bool _trackWidgetCreation;
|
||||||
final String _packagesPath;
|
final String _packagesPath;
|
||||||
|
final List<String> _fileSystemRoots;
|
||||||
|
final String _fileSystemScheme;
|
||||||
String _sdkRoot;
|
String _sdkRoot;
|
||||||
Process _server;
|
Process _server;
|
||||||
final _StdoutHandler stdoutHandler;
|
final _StdoutHandler stdoutHandler;
|
||||||
@ -157,11 +172,13 @@ class ResidentCompiler {
|
|||||||
// First time recompile is called we actually have to compile the app from
|
// First time recompile is called we actually have to compile the app from
|
||||||
// scratch ignoring list of invalidated files.
|
// scratch ignoring list of invalidated files.
|
||||||
if (_server == null)
|
if (_server == null)
|
||||||
return _compile(mainPath, outputPath, packagesFilePath);
|
return _compile(_mapFilename(mainPath), outputPath, _mapFilename(packagesFilePath));
|
||||||
|
|
||||||
final String inputKey = new Uuid().generateV4();
|
final String inputKey = new Uuid().generateV4();
|
||||||
_server.stdin.writeln('recompile ${mainPath != null ? mainPath + " ": ""}$inputKey');
|
_server.stdin.writeln('recompile ${mainPath != null ? _mapFilename(mainPath) + " ": ""}$inputKey');
|
||||||
invalidatedFiles.forEach(_server.stdin.writeln);
|
for (String filePath in invalidatedFiles) {
|
||||||
|
_server.stdin.writeln(_mapFilename(filePath));
|
||||||
|
}
|
||||||
_server.stdin.writeln(inputKey);
|
_server.stdin.writeln(inputKey);
|
||||||
|
|
||||||
return stdoutHandler.outputFilename.future;
|
return stdoutHandler.outputFilename.future;
|
||||||
@ -192,6 +209,14 @@ class ResidentCompiler {
|
|||||||
if (_packagesPath != null) {
|
if (_packagesPath != null) {
|
||||||
args.addAll(<String>['--packages', _packagesPath]);
|
args.addAll(<String>['--packages', _packagesPath]);
|
||||||
}
|
}
|
||||||
|
if (_fileSystemRoots != null) {
|
||||||
|
for (String root in _fileSystemRoots) {
|
||||||
|
args.addAll(<String>['--filesystem-root', root]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (_fileSystemScheme != null) {
|
||||||
|
args.addAll(<String>['--filesystem-scheme', _fileSystemScheme]);
|
||||||
|
}
|
||||||
_server = await processManager.start(args);
|
_server = await processManager.start(args);
|
||||||
_server.stdout
|
_server.stdout
|
||||||
.transform(utf8.decoder)
|
.transform(utf8.decoder)
|
||||||
@ -238,6 +263,19 @@ class ResidentCompiler {
|
|||||||
_server.stdin.writeln('reset');
|
_server.stdin.writeln('reset');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String _mapFilename(String filename) {
|
||||||
|
if (_fileSystemRoots != null) {
|
||||||
|
for (String root in _fileSystemRoots) {
|
||||||
|
if (filename.startsWith(root)) {
|
||||||
|
return new Uri(
|
||||||
|
scheme: _fileSystemScheme, path: filename.substring(root.length))
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return filename;
|
||||||
|
}
|
||||||
|
|
||||||
Future<dynamic> shutdown() {
|
Future<dynamic> shutdown() {
|
||||||
_server.kill();
|
_server.kill();
|
||||||
return _server.exitCode;
|
return _server.exitCode;
|
||||||
|
@ -487,7 +487,7 @@ class DevFS {
|
|||||||
final DevFSContent content = dirtyEntries[uri];
|
final DevFSContent content = dirtyEntries[uri];
|
||||||
if (content is DevFSFileContent) {
|
if (content is DevFSFileContent) {
|
||||||
filesUris.add(uri);
|
filesUris.add(uri);
|
||||||
invalidatedFiles.add(content.file.uri.toString());
|
invalidatedFiles.add(content.file.path);
|
||||||
numBytes -= content.size;
|
numBytes -= content.size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,6 +44,8 @@ Future<Null> build({
|
|||||||
bool precompiledSnapshot: false,
|
bool precompiledSnapshot: false,
|
||||||
bool reportLicensedPackages: false,
|
bool reportLicensedPackages: false,
|
||||||
bool trackWidgetCreation: false,
|
bool trackWidgetCreation: false,
|
||||||
|
List<String> fileSystemRoots,
|
||||||
|
String fileSystemScheme,
|
||||||
}) async {
|
}) async {
|
||||||
outputPath ??= defaultFlxOutputPath;
|
outputPath ??= defaultFlxOutputPath;
|
||||||
snapshotPath ??= defaultSnapshotPath;
|
snapshotPath ??= defaultSnapshotPath;
|
||||||
@ -82,6 +84,9 @@ Future<Null> build({
|
|||||||
outputFilePath: applicationKernelFilePath,
|
outputFilePath: applicationKernelFilePath,
|
||||||
depFilePath: depfilePath,
|
depFilePath: depfilePath,
|
||||||
trackWidgetCreation: trackWidgetCreation,
|
trackWidgetCreation: trackWidgetCreation,
|
||||||
|
fileSystemRoots: fileSystemRoots,
|
||||||
|
fileSystemScheme: fileSystemScheme,
|
||||||
|
packagesPath: packagesPath,
|
||||||
);
|
);
|
||||||
if (kernelBinaryFilename == null) {
|
if (kernelBinaryFilename == null) {
|
||||||
throwToolExit('Compiler terminated unexpectedly on $mainPath');
|
throwToolExit('Compiler terminated unexpectedly on $mainPath');
|
||||||
|
@ -36,6 +36,8 @@ class FlutterDevice {
|
|||||||
ApplicationPackage package;
|
ApplicationPackage package;
|
||||||
ResidentCompiler generator;
|
ResidentCompiler generator;
|
||||||
String dillOutputPath;
|
String dillOutputPath;
|
||||||
|
List<String> fileSystemRoots;
|
||||||
|
String fileSystemScheme;
|
||||||
|
|
||||||
StreamSubscription<String> _loggingSubscription;
|
StreamSubscription<String> _loggingSubscription;
|
||||||
|
|
||||||
@ -43,11 +45,14 @@ class FlutterDevice {
|
|||||||
@required bool previewDart2,
|
@required bool previewDart2,
|
||||||
@required bool trackWidgetCreation,
|
@required bool trackWidgetCreation,
|
||||||
this.dillOutputPath,
|
this.dillOutputPath,
|
||||||
|
this.fileSystemRoots,
|
||||||
|
this.fileSystemScheme,
|
||||||
}) {
|
}) {
|
||||||
if (previewDart2) {
|
if (previewDart2) {
|
||||||
generator = new ResidentCompiler(
|
generator = new ResidentCompiler(
|
||||||
artifacts.getArtifactPath(Artifact.flutterPatchedSdkPath),
|
artifacts.getArtifactPath(Artifact.flutterPatchedSdkPath),
|
||||||
trackWidgetCreation: trackWidgetCreation,
|
trackWidgetCreation: trackWidgetCreation,
|
||||||
|
fileSystemRoots: fileSystemRoots, fileSystemScheme: fileSystemScheme
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -392,7 +392,7 @@ class HotRunner extends ResidentRunner {
|
|||||||
// We are now running from source.
|
// We are now running from source.
|
||||||
_runningFromSnapshot = false;
|
_runningFromSnapshot = false;
|
||||||
final String launchPath = debuggingOptions.buildInfo.previewDart2
|
final String launchPath = debuggingOptions.buildInfo.previewDart2
|
||||||
? dillOutputPath ?? mainPath + '.dill'
|
? mainPath + '.dill'
|
||||||
: mainPath;
|
: mainPath;
|
||||||
await _launchFromDevFS(launchPath);
|
await _launchFromDevFS(launchPath);
|
||||||
restartTimer.stop();
|
restartTimer.stop();
|
||||||
|
@ -61,6 +61,8 @@ class FlutterCommandResult {
|
|||||||
class FlutterOptions {
|
class FlutterOptions {
|
||||||
static const String kExtraFrontEndOptions = 'extra-front-end-options';
|
static const String kExtraFrontEndOptions = 'extra-front-end-options';
|
||||||
static const String kExtraGenSnapshotOptions = 'extra-gen-snapshot-options';
|
static const String kExtraGenSnapshotOptions = 'extra-gen-snapshot-options';
|
||||||
|
static const String kFileSystemRoot = 'filesystem-root';
|
||||||
|
static const String kFileSystemScheme = 'filesystem-scheme';
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class FlutterCommand extends Command<Null> {
|
abstract class FlutterCommand extends Command<Null> {
|
||||||
@ -194,7 +196,12 @@ abstract class FlutterCommand extends Command<Null> {
|
|||||||
preferSharedLibrary: argParser.options.containsKey('prefer-shared-library')
|
preferSharedLibrary: argParser.options.containsKey('prefer-shared-library')
|
||||||
? argResults['prefer-shared-library']
|
? argResults['prefer-shared-library']
|
||||||
: false,
|
: false,
|
||||||
targetPlatform: targetPlatform);
|
targetPlatform: targetPlatform,
|
||||||
|
fileSystemRoots: argParser.options.containsKey(FlutterOptions.kFileSystemRoot)
|
||||||
|
? argResults[FlutterOptions.kFileSystemRoot] : null,
|
||||||
|
fileSystemScheme: argParser.options.containsKey(FlutterOptions.kFileSystemScheme)
|
||||||
|
? argResults[FlutterOptions.kFileSystemScheme] : null,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setupApplicationPackages() {
|
void setupApplicationPackages() {
|
||||||
|
@ -227,7 +227,7 @@ Future<Null> _recompile(StreamController<List<int>> streamController,
|
|||||||
final String output = await generator.recompile(null /* mainPath */, <String>['/path/to/main.dart']);
|
final String output = await generator.recompile(null /* mainPath */, <String>['/path/to/main.dart']);
|
||||||
expect(output, equals('/path/to/main.dart.dill'));
|
expect(output, equals('/path/to/main.dart.dill'));
|
||||||
final String commands = mockFrontendServerStdIn.getAndClear();
|
final String commands = mockFrontendServerStdIn.getAndClear();
|
||||||
final RegExp re = new RegExp(r'^recompile (.*)\n/path/to/main.dart\n(.*)\n$');
|
final RegExp re = new RegExp('^recompile (.*)\\n/path/to/main.dart\\n(.*)\\n\$');
|
||||||
expect(commands, matches(re));
|
expect(commands, matches(re));
|
||||||
final Match match = re.firstMatch(commands);
|
final Match match = re.firstMatch(commands);
|
||||||
expect(match[1] == match[2], isTrue);
|
expect(match[1] == match[2], isTrue);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user