Unverified Commit b30d97a6 authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

[flutter_tools] split host artifacts out of Artifacts (#80876)

parent 0f899f2b
...@@ -107,7 +107,7 @@ Future<void> main(List<String> args) async { ...@@ -107,7 +107,7 @@ Future<void> main(List<String> args) async {
// devtools source code. // devtools source code.
DevtoolsLauncher: () => DevtoolsServerLauncher( DevtoolsLauncher: () => DevtoolsServerLauncher(
processManager: globals.processManager, processManager: globals.processManager,
pubExecutable: globals.artifacts.getArtifactPath(Artifact.pubExecutable), pubExecutable: globals.artifacts.getHostArtifact(HostArtifact.pubExecutable).path,
logger: globals.logger, logger: globals.logger,
platform: globals.platform, platform: globals.platform,
persistentToolState: globals.persistentToolState, persistentToolState: globals.persistentToolState,
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
// @dart = 2.8 // @dart = 2.8
import 'package:file/memory.dart';
import 'package:meta/meta.dart'; import 'package:meta/meta.dart';
import 'package:process/process.dart'; import 'package:process/process.dart';
...@@ -32,6 +33,32 @@ enum Artifact { ...@@ -32,6 +33,32 @@ enum Artifact {
platformLibrariesJson, platformLibrariesJson,
flutterPatchedSdkPath, flutterPatchedSdkPath,
frontendServerSnapshotForEngineDartSdk, frontendServerSnapshotForEngineDartSdk,
/// The root of the Linux desktop sources.
linuxDesktopPath,
// The root of the cpp headers for Linux desktop.
linuxHeaders,
/// The root of the Windows desktop sources.
windowsDesktopPath,
/// The root of the cpp client code for Windows desktop and Windows UWP desktop.
windowsCppClientWrapper,
/// The root of the Windows UWP desktop sources.
windowsUwpDesktopPath,
/// The root of the sky_engine package.
skyEnginePath,
/// The location of the macOS engine podspec file.
flutterMacOSPodspec,
// Fuchsia artifacts from the engine prebuilts.
fuchsiaKernelCompiler,
fuchsiaFlutterRunner,
/// Tools related to subsetting or icon font files.
fontSubset,
constFinder,
}
/// A subset of [Artifact]s that are platform and build mode independent
enum HostArtifact {
/// The root directory of the dart SDK. /// The root directory of the dart SDK.
engineDartSdkPath, engineDartSdkPath,
/// The dart binary used to execute any of the required snapshots. /// The dart binary used to execute any of the required snapshots.
...@@ -50,6 +77,7 @@ enum Artifact { ...@@ -50,6 +77,7 @@ enum Artifact {
webPlatformKernelDill, webPlatformKernelDill,
/// The summary dill with null safety enabled for the dartdevc target. /// The summary dill with null safety enabled for the dartdevc target.
webPlatformSoundKernelDill, webPlatformSoundKernelDill,
/// The precompiled SDKs and sourcemaps for web debug builds. /// The precompiled SDKs and sourcemaps for web debug builds.
webPrecompiledSdk, webPrecompiledSdk,
webPrecompiledSdkSourcemaps, webPrecompiledSdkSourcemaps,
...@@ -68,28 +96,8 @@ enum Artifact { ...@@ -68,28 +96,8 @@ enum Artifact {
idevicesyslog, idevicesyslog,
idevicescreenshot, idevicescreenshot,
iproxy, iproxy,
/// The root of the Linux desktop sources.
linuxDesktopPath,
// The root of the cpp headers for Linux desktop.
linuxHeaders,
/// The root of the Windows desktop sources.
windowsDesktopPath,
/// The root of the cpp client code for Windows desktop and Windows UWP desktop.
windowsCppClientWrapper,
/// The root of the Windows UWP desktop sources.
windowsUwpDesktopPath,
/// The root of the sky_engine package. /// The root of the sky_engine package.
skyEnginePath, skyEnginePath,
/// The location of the macOS engine podspec file.
flutterMacOSPodspec,
// Fuchsia artifacts from the engine prebuilts.
fuchsiaKernelCompiler,
fuchsiaFlutterRunner,
/// Tools related to subsetting or icon font files.
fontSubset,
constFinder,
/// The pub or pub.bat executable /// The pub or pub.bat executable
pubExecutable, pubExecutable,
...@@ -121,29 +129,8 @@ String _artifactToFileName(Artifact artifact, [ TargetPlatform platform, BuildMo ...@@ -121,29 +129,8 @@ String _artifactToFileName(Artifact artifact, [ TargetPlatform platform, BuildMo
case Artifact.flutterPatchedSdkPath: case Artifact.flutterPatchedSdkPath:
assert(false, 'No filename for sdk path, should not be invoked'); assert(false, 'No filename for sdk path, should not be invoked');
return null; return null;
case Artifact.flutterWebSdk:
assert(false, 'No filename for web sdk path, should not be invoked');
return null;
case Artifact.engineDartSdkPath:
return 'dart-sdk';
case Artifact.frontendServerSnapshotForEngineDartSdk: case Artifact.frontendServerSnapshotForEngineDartSdk:
return 'frontend_server.dart.snapshot'; return 'frontend_server.dart.snapshot';
case Artifact.engineDartBinary:
return 'dart$exe';
case Artifact.dart2jsSnapshot:
return 'dart2js.dart.snapshot';
case Artifact.dartdevcSnapshot:
return 'dartdevc.dart.snapshot';
case Artifact.kernelWorkerSnapshot:
return 'kernel_worker.dart.snapshot';
case Artifact.iosDeploy:
return 'ios-deploy';
case Artifact.idevicesyslog:
return 'idevicesyslog';
case Artifact.idevicescreenshot:
return 'idevicescreenshot';
case Artifact.iproxy:
return 'iproxy';
case Artifact.linuxDesktopPath: case Artifact.linuxDesktopPath:
return ''; return '';
case Artifact.linuxHeaders: case Artifact.linuxHeaders:
...@@ -157,10 +144,6 @@ String _artifactToFileName(Artifact artifact, [ TargetPlatform platform, BuildMo ...@@ -157,10 +144,6 @@ String _artifactToFileName(Artifact artifact, [ TargetPlatform platform, BuildMo
return 'sky_engine'; return 'sky_engine';
case Artifact.flutterMacOSPodspec: case Artifact.flutterMacOSPodspec:
return 'FlutterMacOS.podspec'; return 'FlutterMacOS.podspec';
case Artifact.webPlatformKernelDill:
return 'flutter_ddc_sdk.dill';
case Artifact.webPlatformSoundKernelDill:
return 'flutter_ddc_sdk_sound.dill';
case Artifact.fuchsiaKernelCompiler: case Artifact.fuchsiaKernelCompiler:
return 'kernel_compiler.snapshot'; return 'kernel_compiler.snapshot';
case Artifact.fuchsiaFlutterRunner: case Artifact.fuchsiaFlutterRunner:
...@@ -171,24 +154,58 @@ String _artifactToFileName(Artifact artifact, [ TargetPlatform platform, BuildMo ...@@ -171,24 +154,58 @@ String _artifactToFileName(Artifact artifact, [ TargetPlatform platform, BuildMo
return 'font-subset$exe'; return 'font-subset$exe';
case Artifact.constFinder: case Artifact.constFinder:
return 'const_finder.dart.snapshot'; return 'const_finder.dart.snapshot';
case Artifact.flutterWebLibrariesJson: }
assert(false, 'Invalid artifact $artifact.');
return null;
}
String _hostArtifactToFileName(HostArtifact artifact, bool windows) {
final String exe = windows ? '.exe' : '';
switch (artifact) {
case HostArtifact.flutterWebSdk:
return '';
case HostArtifact.engineDartSdkPath:
return 'dart-sdk';
case HostArtifact.engineDartBinary:
return 'dart$exe';
case HostArtifact.dart2jsSnapshot:
return 'dart2js.dart.snapshot';
case HostArtifact.dartdevcSnapshot:
return 'dartdevc.dart.snapshot';
case HostArtifact.kernelWorkerSnapshot:
return 'kernel_worker.dart.snapshot';
case HostArtifact.iosDeploy:
return 'ios-deploy';
case HostArtifact.idevicesyslog:
return 'idevicesyslog';
case HostArtifact.idevicescreenshot:
return 'idevicescreenshot';
case HostArtifact.iproxy:
return 'iproxy';
case HostArtifact.skyEnginePath:
return 'sky_engine';
case HostArtifact.webPlatformKernelDill:
return 'flutter_ddc_sdk.dill';
case HostArtifact.webPlatformSoundKernelDill:
return 'flutter_ddc_sdk_sound.dill';
case HostArtifact.flutterWebLibrariesJson:
return 'libraries.json'; return 'libraries.json';
case Artifact.webPrecompiledSdk: case HostArtifact.webPrecompiledSdk:
case Artifact.webPrecompiledCanvaskitSdk: case HostArtifact.webPrecompiledCanvaskitSdk:
case Artifact.webPrecompiledCanvaskitAndHtmlSdk: case HostArtifact.webPrecompiledCanvaskitAndHtmlSdk:
case Artifact.webPrecompiledSoundSdk: case HostArtifact.webPrecompiledSoundSdk:
case Artifact.webPrecompiledCanvaskitSoundSdk: case HostArtifact.webPrecompiledCanvaskitSoundSdk:
case Artifact.webPrecompiledCanvaskitAndHtmlSoundSdk: case HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdk:
return 'dart_sdk.js'; return 'dart_sdk.js';
case Artifact.webPrecompiledSdkSourcemaps: case HostArtifact.webPrecompiledSdkSourcemaps:
case Artifact.webPrecompiledCanvaskitSdkSourcemaps: case HostArtifact.webPrecompiledCanvaskitSdkSourcemaps:
case Artifact.webPrecompiledCanvaskitAndHtmlSdkSourcemaps: case HostArtifact.webPrecompiledCanvaskitAndHtmlSdkSourcemaps:
case Artifact.webPrecompiledSoundSdkSourcemaps: case HostArtifact.webPrecompiledSoundSdkSourcemaps:
case Artifact.webPrecompiledCanvaskitSoundSdkSourcemaps: case HostArtifact.webPrecompiledCanvaskitSoundSdkSourcemaps:
case Artifact.webPrecompiledCanvaskitAndHtmlSoundSdkSourcemaps: case HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdkSourcemaps:
return 'dart_sdk.js.map'; return 'dart_sdk.js.map';
case Artifact.pubExecutable: case HostArtifact.pubExecutable:
if (platform == TargetPlatform.windows_x64) { if (windows) {
return 'pub.bat'; return 'pub.bat';
} }
return 'pub'; return 'pub';
...@@ -213,13 +230,16 @@ abstract class Artifacts { ...@@ -213,13 +230,16 @@ abstract class Artifacts {
/// A test-specific implementation of artifacts that returns stable paths for /// A test-specific implementation of artifacts that returns stable paths for
/// all artifacts. /// all artifacts.
/// ///
/// If a [fileSystem] is not provided, creates a new [MemoryFileSystem] instance.
///
/// Creates a [LocalEngineArtifacts] if `localEngine` is non-null /// Creates a [LocalEngineArtifacts] if `localEngine` is non-null
@visibleForTesting @visibleForTesting
factory Artifacts.test({String localEngine}) { factory Artifacts.test({String localEngine, FileSystem fileSystem}) {
fileSystem ??= MemoryFileSystem.test();
if (localEngine != null) { if (localEngine != null) {
return _TestLocalEngine(localEngine); return _TestLocalEngine(localEngine, fileSystem);
} }
return _TestArtifacts(); return _TestArtifacts(fileSystem);
} }
static LocalEngineArtifacts getLocalEngine(EngineBuildPaths engineBuildPaths) { static LocalEngineArtifacts getLocalEngine(EngineBuildPaths engineBuildPaths) {
...@@ -242,6 +262,12 @@ abstract class Artifacts { ...@@ -242,6 +262,12 @@ abstract class Artifacts {
EnvironmentType environmentType, EnvironmentType environmentType,
}); });
/// Retrieve a host specific artifact that does not depend on the
/// current build mode or environment.
FileSystemEntity getHostArtifact(
HostArtifact artifact,
);
// Returns which set of engine artifacts is currently used for the [platform] // Returns which set of engine artifacts is currently used for the [platform]
// and [mode] combination. // and [mode] combination.
String getEngineType(TargetPlatform platform, [ BuildMode mode ]); String getEngineType(TargetPlatform platform, [ BuildMode mode ]);
...@@ -250,7 +276,6 @@ abstract class Artifacts { ...@@ -250,7 +276,6 @@ abstract class Artifacts {
bool get isLocalEngine; bool get isLocalEngine;
} }
/// Manages the engine artifacts downloaded to the local cache. /// Manages the engine artifacts downloaded to the local cache.
class CachedArtifacts implements Artifacts { class CachedArtifacts implements Artifacts {
CachedArtifacts({ CachedArtifacts({
...@@ -268,6 +293,81 @@ class CachedArtifacts implements Artifacts { ...@@ -268,6 +293,81 @@ class CachedArtifacts implements Artifacts {
final Cache _cache; final Cache _cache;
final OperatingSystemUtils _operatingSystemUtils; final OperatingSystemUtils _operatingSystemUtils;
@override
FileSystemEntity getHostArtifact(
HostArtifact artifact,
) {
switch (artifact) {
case HostArtifact.engineDartSdkPath:
final String path = _dartSdkPath(_fileSystem);
return _fileSystem.directory(path);
case HostArtifact.engineDartBinary:
final String path = _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.flutterWebSdk:
final String path = _getFlutterWebSdkPath();
return _fileSystem.directory(path);
case HostArtifact.flutterWebLibrariesJson:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.webPlatformKernelDill:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.webPlatformSoundKernelDill:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.webPrecompiledSdk:
case HostArtifact.webPrecompiledSdkSourcemaps:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.webPrecompiledCanvaskitSdk:
case HostArtifact.webPrecompiledCanvaskitSdkSourcemaps:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.webPrecompiledCanvaskitAndHtmlSdk:
case HostArtifact.webPrecompiledCanvaskitAndHtmlSdkSourcemaps:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.webPrecompiledSoundSdk:
case HostArtifact.webPrecompiledSoundSdkSourcemaps:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-sound', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.webPrecompiledCanvaskitSoundSdk:
case HostArtifact.webPrecompiledCanvaskitSoundSdkSourcemaps:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-sound', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdk:
case HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdkSourcemaps:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html-sound', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.idevicesyslog:
case HostArtifact.idevicescreenshot:
final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows);
return _cache.getArtifactDirectory('libimobiledevice').childFile(artifactFileName);
break;
case HostArtifact.skyEnginePath:
final Directory dartPackageDirectory = _cache.getCacheDir('pkg');
final String path = _fileSystem.path.join(dartPackageDirectory.path, _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.directory(path);
case HostArtifact.pubExecutable:
final String path = _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.dart2jsSnapshot:
case HostArtifact.dartdevcSnapshot:
case HostArtifact.kernelWorkerSnapshot:
final String path = _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.iosDeploy:
final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows);
return _cache.getArtifactDirectory('ios-deploy').childFile(artifactFileName);
case HostArtifact.iproxy:
final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows);
return _cache.getArtifactDirectory('usbmuxd').childFile(artifactFileName);
}
assert(false);
return null;
}
@override @override
String getArtifactPath( String getArtifactPath(
Artifact artifact, { Artifact artifact, {
...@@ -341,16 +441,6 @@ class CachedArtifacts implements Artifacts { ...@@ -341,16 +441,6 @@ class CachedArtifacts implements Artifacts {
case Artifact.flutterFramework: case Artifact.flutterFramework:
final String engineDir = _getEngineArtifactsPath(platform, mode); final String engineDir = _getEngineArtifactsPath(platform, mode);
return _getIosEngineArtifactPath(engineDir, environmentType, _fileSystem); return _getIosEngineArtifactPath(engineDir, environmentType, _fileSystem);
case Artifact.idevicescreenshot:
case Artifact.idevicesyslog:
final String artifactFileName = _artifactToFileName(artifact);
return _cache.getArtifactDirectory('libimobiledevice').childFile(artifactFileName).path;
case Artifact.iosDeploy:
final String artifactFileName = _artifactToFileName(artifact);
return _cache.getArtifactDirectory('ios-deploy').childFile(artifactFileName).path;
case Artifact.iproxy:
final String artifactFileName = _artifactToFileName(artifact);
return _cache.getArtifactDirectory('usbmuxd').childFile(artifactFileName).path;
default: default:
return _getHostArtifactPath(artifact, platform, mode); return _getHostArtifactPath(artifact, platform, mode);
} }
...@@ -410,30 +500,12 @@ class CachedArtifacts implements Artifacts { ...@@ -410,30 +500,12 @@ class CachedArtifacts implements Artifacts {
final String engineArtifactsPath = _cache.getArtifactDirectory('engine').path; final String engineArtifactsPath = _cache.getArtifactDirectory('engine').path;
final String platformDirName = getNameForTargetPlatform(platform); final String platformDirName = getNameForTargetPlatform(platform);
return _fileSystem.path.join(engineArtifactsPath, platformDirName, _artifactToFileName(artifact, platform, mode)); return _fileSystem.path.join(engineArtifactsPath, platformDirName, _artifactToFileName(artifact, platform, mode));
case Artifact.engineDartSdkPath:
return _dartSdkPath(_fileSystem);
case Artifact.engineDartBinary:
return _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', _artifactToFileName(artifact, platform));
case Artifact.platformKernelDill: case Artifact.platformKernelDill:
return _fileSystem.path.join(_getFlutterPatchedSdkPath(mode), _artifactToFileName(artifact)); return _fileSystem.path.join(_getFlutterPatchedSdkPath(mode), _artifactToFileName(artifact));
case Artifact.platformLibrariesJson: case Artifact.platformLibrariesJson:
return _fileSystem.path.join(_getFlutterPatchedSdkPath(mode), 'lib', _artifactToFileName(artifact)); return _fileSystem.path.join(_getFlutterPatchedSdkPath(mode), 'lib', _artifactToFileName(artifact));
case Artifact.flutterPatchedSdkPath: case Artifact.flutterPatchedSdkPath:
return _getFlutterPatchedSdkPath(mode); return _getFlutterPatchedSdkPath(mode);
case Artifact.flutterWebSdk:
return _getFlutterWebSdkPath();
case Artifact.flutterWebLibrariesJson:
return _fileSystem.path.join(_getFlutterWebSdkPath(), _artifactToFileName(artifact));
case Artifact.webPlatformKernelDill:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _artifactToFileName(artifact));
case Artifact.webPlatformSoundKernelDill:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _artifactToFileName(artifact));
case Artifact.dart2jsSnapshot:
return _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', 'snapshots', _artifactToFileName(artifact));
case Artifact.dartdevcSnapshot:
return _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', 'snapshots', _artifactToFileName(artifact));
case Artifact.kernelWorkerSnapshot:
return _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', 'snapshots', _artifactToFileName(artifact));
case Artifact.flutterMacOSFramework: case Artifact.flutterMacOSFramework:
case Artifact.linuxDesktopPath: case Artifact.linuxDesktopPath:
case Artifact.windowsDesktopPath: case Artifact.windowsDesktopPath:
...@@ -463,32 +535,6 @@ class CachedArtifacts implements Artifacts { ...@@ -463,32 +535,6 @@ class CachedArtifacts implements Artifacts {
.childDirectory(getNameForTargetPlatform(platform)) .childDirectory(getNameForTargetPlatform(platform))
.childFile(_artifactToFileName(artifact, platform, mode)) .childFile(_artifactToFileName(artifact, platform, mode))
.path; .path;
case Artifact.webPrecompiledSdk:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd', _artifactToFileName(artifact, platform, mode));
case Artifact.webPrecompiledSdkSourcemaps:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd', _artifactToFileName(artifact, platform, mode));
case Artifact.webPrecompiledCanvaskitSdk:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit', _artifactToFileName(artifact, platform, mode));
case Artifact.webPrecompiledCanvaskitSdkSourcemaps:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit', _artifactToFileName(artifact, platform, mode));
case Artifact.webPrecompiledCanvaskitAndHtmlSdk:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html', _artifactToFileName(artifact, platform, mode));
case Artifact.webPrecompiledCanvaskitAndHtmlSdkSourcemaps:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html', _artifactToFileName(artifact, platform, mode));
case Artifact.webPrecompiledSoundSdk:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-sound', _artifactToFileName(artifact, platform, mode));
case Artifact.webPrecompiledSoundSdkSourcemaps:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-sound', _artifactToFileName(artifact, platform, mode));
case Artifact.webPrecompiledCanvaskitSoundSdk:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-sound', _artifactToFileName(artifact, platform, mode));
case Artifact.webPrecompiledCanvaskitSoundSdkSourcemaps:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-sound', _artifactToFileName(artifact, platform, mode));
case Artifact.webPrecompiledCanvaskitAndHtmlSoundSdk:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html-sound', _artifactToFileName(artifact, platform, mode));
case Artifact.webPrecompiledCanvaskitAndHtmlSoundSdkSourcemaps:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html-sound', _artifactToFileName(artifact, platform, mode));
case Artifact.pubExecutable:
return _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', _artifactToFileName(artifact, platform, mode));
default: default:
assert(false, 'Artifact $artifact not available for platform $platform.'); assert(false, 'Artifact $artifact not available for platform $platform.');
return null; return null;
...@@ -622,6 +668,86 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts { ...@@ -622,6 +668,86 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts {
final Platform _platform; final Platform _platform;
final OperatingSystemUtils _operatingSystemUtils; final OperatingSystemUtils _operatingSystemUtils;
@override
FileSystemEntity getHostArtifact(
HostArtifact artifact,
) {
switch (artifact) {
case HostArtifact.engineDartSdkPath:
final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk');
return _fileSystem.directory(path);
case HostArtifact.engineDartBinary:
final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.dart2jsSnapshot:
final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.dartdevcSnapshot:
final String path = _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.kernelWorkerSnapshot:
final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.flutterWebSdk:
final String path = _getFlutterWebSdkPath();
return _fileSystem.directory(path);
case HostArtifact.flutterWebLibrariesJson:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.webPlatformKernelDill:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.webPlatformSoundKernelDill:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.webPrecompiledSdk:
case HostArtifact.webPrecompiledSdkSourcemaps:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.webPrecompiledCanvaskitSdk:
case HostArtifact.webPrecompiledCanvaskitSdkSourcemaps:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.webPrecompiledCanvaskitAndHtmlSdk:
case HostArtifact.webPrecompiledCanvaskitAndHtmlSdkSourcemaps:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.webPrecompiledSoundSdk:
case HostArtifact.webPrecompiledSoundSdkSourcemaps:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-sound', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.webPrecompiledCanvaskitSoundSdk:
case HostArtifact.webPrecompiledCanvaskitSoundSdkSourcemaps:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-sound', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdk:
case HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdkSourcemaps:
final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html-sound', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.idevicesyslog:
case HostArtifact.idevicescreenshot:
final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows);
return _cache.getArtifactDirectory('libimobiledevice').childFile(artifactFileName);
break;
case HostArtifact.skyEnginePath:
final Directory dartPackageDirectory = _cache.getCacheDir('pkg');
final String path = _fileSystem.path.join(dartPackageDirectory.path, _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.directory(path);
case HostArtifact.pubExecutable:
final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', _hostArtifactToFileName(artifact, _platform.isWindows));
return _fileSystem.file(path);
case HostArtifact.iosDeploy:
final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows);
return _cache.getArtifactDirectory('ios-deploy').childFile(artifactFileName);
case HostArtifact.iproxy:
final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows);
return _cache.getArtifactDirectory('usbmuxd').childFile(artifactFileName);
}
assert(false);
return null;
}
@override @override
String getArtifactPath( String getArtifactPath(
Artifact artifact, { Artifact artifact, {
...@@ -630,7 +756,7 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts { ...@@ -630,7 +756,7 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts {
EnvironmentType environmentType, EnvironmentType environmentType,
}) { }) {
platform ??= _currentHostPlatform(_platform, _operatingSystemUtils); platform ??= _currentHostPlatform(_platform, _operatingSystemUtils);
final bool isDirectoryArtifact = artifact == Artifact.flutterWebSdk || artifact == Artifact.flutterPatchedSdkPath; final bool isDirectoryArtifact = artifact == Artifact.flutterPatchedSdkPath;
final String artifactFileName = isDirectoryArtifact ? null : _artifactToFileName(artifact, platform, mode); final String artifactFileName = isDirectoryArtifact ? null : _artifactToFileName(artifact, platform, mode);
switch (artifact) { switch (artifact) {
case Artifact.genSnapshot: case Artifact.genSnapshot:
...@@ -663,35 +789,11 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts { ...@@ -663,35 +789,11 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts {
return _fileSystem.path.join(engineOutPath, 'flutter_runner_patched_sdk'); return _fileSystem.path.join(engineOutPath, 'flutter_runner_patched_sdk');
} }
return _getFlutterPatchedSdkPath(BuildMode.debug); return _getFlutterPatchedSdkPath(BuildMode.debug);
case Artifact.flutterWebSdk:
return _getFlutterWebSdkPath();
case Artifact.frontendServerSnapshotForEngineDartSdk:
return _fileSystem.path.join(_hostEngineOutPath, 'gen', artifactFileName);
case Artifact.engineDartSdkPath:
return _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk');
case Artifact.engineDartBinary:
return _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', artifactFileName);
case Artifact.dart2jsSnapshot:
return _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', artifactFileName);
case Artifact.dartdevcSnapshot:
return _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', 'snapshots', artifactFileName);
case Artifact.kernelWorkerSnapshot:
return _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', artifactFileName); return _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', artifactFileName);
case Artifact.idevicescreenshot:
case Artifact.idevicesyslog:
return _cache.getArtifactDirectory('libimobiledevice').childFile(artifactFileName).path;
case Artifact.iosDeploy:
return _cache.getArtifactDirectory('ios-deploy').childFile(artifactFileName).path;
case Artifact.iproxy:
return _cache.getArtifactDirectory('usbmuxd').childFile(artifactFileName).path;
case Artifact.skyEnginePath: case Artifact.skyEnginePath:
return _fileSystem.path.join(_hostEngineOutPath, 'gen', 'dart-pkg', artifactFileName); return _fileSystem.path.join(_hostEngineOutPath, 'gen', 'dart-pkg', artifactFileName);
case Artifact.flutterMacOSPodspec: case Artifact.flutterMacOSPodspec:
return _fileSystem.path.join(_hostEngineOutPath, _artifactToFileName(artifact)); return _fileSystem.path.join(_hostEngineOutPath, _artifactToFileName(artifact));
case Artifact.webPlatformKernelDill:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _artifactToFileName(artifact));
case Artifact.webPlatformSoundKernelDill:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _artifactToFileName(artifact));
case Artifact.fuchsiaKernelCompiler: case Artifact.fuchsiaKernelCompiler:
final String hostPlatform = getNameForHostPlatform(getCurrentHostPlatform()); final String hostPlatform = getNameForHostPlatform(getCurrentHostPlatform());
final String modeName = mode.isRelease ? 'release' : mode.toString(); final String modeName = mode.isRelease ? 'release' : mode.toString();
...@@ -705,40 +807,15 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts { ...@@ -705,40 +807,15 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts {
return _fileSystem.path.join(_hostEngineOutPath, artifactFileName); return _fileSystem.path.join(_hostEngineOutPath, artifactFileName);
case Artifact.constFinder: case Artifact.constFinder:
return _fileSystem.path.join(_hostEngineOutPath, 'gen', artifactFileName); return _fileSystem.path.join(_hostEngineOutPath, 'gen', artifactFileName);
case Artifact.flutterWebLibrariesJson:
return _fileSystem.path.join(_getFlutterWebSdkPath(), artifactFileName);
case Artifact.webPrecompiledSdk:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd', artifactFileName);
case Artifact.webPrecompiledSdkSourcemaps:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd', artifactFileName);
case Artifact.webPrecompiledCanvaskitSdk:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit', artifactFileName);
case Artifact.webPrecompiledCanvaskitSdkSourcemaps:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit', artifactFileName);
case Artifact.webPrecompiledCanvaskitAndHtmlSdk:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html', artifactFileName);
case Artifact.webPrecompiledCanvaskitAndHtmlSdkSourcemaps:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html', artifactFileName);
case Artifact.webPrecompiledSoundSdk:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-sound', artifactFileName);
case Artifact.webPrecompiledSoundSdkSourcemaps:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-sound', artifactFileName);
case Artifact.webPrecompiledCanvaskitSoundSdk:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-sound', artifactFileName);
case Artifact.webPrecompiledCanvaskitSoundSdkSourcemaps:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-sound', artifactFileName);
case Artifact.webPrecompiledCanvaskitAndHtmlSoundSdk:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html-sound', artifactFileName);
case Artifact.webPrecompiledCanvaskitAndHtmlSoundSdkSourcemaps:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html-sound', artifactFileName);
case Artifact.pubExecutable:
return _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', _artifactToFileName(artifact, platform, mode));
case Artifact.windowsUwpDesktopPath: case Artifact.windowsUwpDesktopPath:
case Artifact.linuxDesktopPath: case Artifact.linuxDesktopPath:
case Artifact.linuxHeaders: case Artifact.linuxHeaders:
case Artifact.windowsDesktopPath: case Artifact.windowsDesktopPath:
case Artifact.windowsCppClientWrapper: case Artifact.windowsCppClientWrapper:
return _fileSystem.path.join(_hostEngineOutPath, artifactFileName); return _fileSystem.path.join(_hostEngineOutPath, artifactFileName);
case Artifact.frontendServerSnapshotForEngineDartSdk:
return _fileSystem.path.join(_hostEngineOutPath, 'gen', artifactFileName);
break;
} }
assert(false, 'Invalid artifact $artifact.'); assert(false, 'Invalid artifact $artifact.');
return null; return null;
...@@ -816,9 +893,6 @@ class OverrideArtifacts implements Artifacts { ...@@ -816,9 +893,6 @@ class OverrideArtifacts implements Artifacts {
if (artifact == Artifact.frontendServerSnapshotForEngineDartSdk && frontendServer != null) { if (artifact == Artifact.frontendServerSnapshotForEngineDartSdk && frontendServer != null) {
return frontendServer.path; return frontendServer.path;
} }
if (artifact == Artifact.engineDartBinary && engineDartBinary != null) {
return engineDartBinary.path;
}
if (artifact == Artifact.platformKernelDill && platformKernelDill != null) { if (artifact == Artifact.platformKernelDill && platformKernelDill != null) {
return platformKernelDill.path; return platformKernelDill.path;
} }
...@@ -838,6 +912,16 @@ class OverrideArtifacts implements Artifacts { ...@@ -838,6 +912,16 @@ class OverrideArtifacts implements Artifacts {
@override @override
bool get isLocalEngine => parent.isLocalEngine; bool get isLocalEngine => parent.isLocalEngine;
@override
FileSystemEntity getHostArtifact(HostArtifact artifact) {
if (artifact == HostArtifact.engineDartBinary && engineDartBinary != null) {
return engineDartBinary;
}
return parent.getHostArtifact(
artifact,
);
}
} }
/// Locate the Dart SDK. /// Locate the Dart SDK.
...@@ -846,6 +930,10 @@ String _dartSdkPath(FileSystem fileSystem) { ...@@ -846,6 +930,10 @@ String _dartSdkPath(FileSystem fileSystem) {
} }
class _TestArtifacts implements Artifacts { class _TestArtifacts implements Artifacts {
_TestArtifacts(this.fileSystem);
final FileSystem fileSystem;
@override @override
String getArtifactPath( String getArtifactPath(
Artifact artifact, { Artifact artifact, {
...@@ -874,10 +962,15 @@ class _TestArtifacts implements Artifacts { ...@@ -874,10 +962,15 @@ class _TestArtifacts implements Artifacts {
@override @override
bool get isLocalEngine => false; bool get isLocalEngine => false;
@override
FileSystemEntity getHostArtifact(HostArtifact artifact) {
return fileSystem.file(artifact.toString());
}
} }
class _TestLocalEngine extends _TestArtifacts implements LocalEngineArtifacts { class _TestLocalEngine extends _TestArtifacts implements LocalEngineArtifacts {
_TestLocalEngine(this.engineOutPath); _TestLocalEngine(this.engineOutPath, FileSystem fileSystem) : super(fileSystem);
@override @override
bool get isLocalEngine => true; bool get isLocalEngine => true;
......
...@@ -193,6 +193,34 @@ class SourceVisitor implements ResolvedFiles { ...@@ -193,6 +193,34 @@ class SourceVisitor implements ResolvedFiles {
} }
sources.add(environment.fileSystem.file(path)); sources.add(environment.fileSystem.file(path));
} }
/// Visit a [Source] which is defined by an [HostArtifact] from the flutter cache.
///
/// If the [Artifact] points to a directory then all child files are included.
/// To increase the performance of builds that use a known revision of Flutter,
/// these are updated to point towards the engine.version file instead of
/// the artifact itself.
void visitHostArtifact(HostArtifact artifact) {
// This is not a local engine.
if (environment.engineVersion != null) {
sources.add(environment.flutterRootDir
.childDirectory('bin')
.childDirectory('internal')
.childFile('engine.version'),
);
return;
}
final FileSystemEntity entity = environment.artifacts.getHostArtifact(artifact);
if (entity is Directory) {
sources.addAll(<File>[
for (FileSystemEntity entity in entity.listSync(recursive: true))
if (entity is File)
entity,
]);
return;
}
sources.add(entity as File);
}
} }
/// A description of an input or output of a [Target]. /// A description of an input or output of a [Target].
...@@ -200,11 +228,17 @@ abstract class Source { ...@@ -200,11 +228,17 @@ abstract class Source {
/// This source is a file URL which contains some references to magic /// This source is a file URL which contains some references to magic
/// environment variables. /// environment variables.
const factory Source.pattern(String pattern, { bool optional }) = _PatternSource; const factory Source.pattern(String pattern, { bool optional }) = _PatternSource;
/// The source is provided by an [Artifact]. /// The source is provided by an [Artifact].
/// ///
/// If [artifact] points to a directory then all child files are included. /// If [artifact] points to a directory then all child files are included.
const factory Source.artifact(Artifact artifact, {TargetPlatform platform, BuildMode mode}) = _ArtifactSource; const factory Source.artifact(Artifact artifact, {TargetPlatform platform, BuildMode mode}) = _ArtifactSource;
/// The source is provided by an [HostArtifact].
///
/// If [artifact] points to a directory then all child files are included.
const factory Source.hostArtifact(HostArtifact artifact) = _HostArtifactSource;
/// Visit the particular source type. /// Visit the particular source type.
void accept(SourceVisitor visitor); void accept(SourceVisitor visitor);
...@@ -244,3 +278,15 @@ class _ArtifactSource implements Source { ...@@ -244,3 +278,15 @@ class _ArtifactSource implements Source {
@override @override
bool get implicit => false; bool get implicit => false;
} }
class _HostArtifactSource implements Source {
const _HostArtifactSource(this.artifact);
final HostArtifact artifact;
@override
void accept(SourceVisitor visitor) => visitor.visitHostArtifact(artifact);
@override
bool get implicit => false;
}
...@@ -181,7 +181,7 @@ class AndroidAot extends AotElfBase { ...@@ -181,7 +181,7 @@ class AndroidAot extends AotElfBase {
List<Source> get inputs => <Source>[ List<Source> get inputs => <Source>[
const Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/android.dart'), const Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/android.dart'),
const Source.pattern('{BUILD_DIR}/app.dill'), const Source.pattern('{BUILD_DIR}/app.dill'),
const Source.artifact(Artifact.engineDartBinary), const Source.hostArtifact(HostArtifact.engineDartBinary),
const Source.artifact(Artifact.skyEnginePath), const Source.artifact(Artifact.skyEnginePath),
Source.artifact(Artifact.genSnapshot, Source.artifact(Artifact.genSnapshot,
mode: buildMode, mode: buildMode,
......
...@@ -194,7 +194,7 @@ class KernelSnapshot extends Target { ...@@ -194,7 +194,7 @@ class KernelSnapshot extends Target {
Source.pattern('{PROJECT_DIR}/.dart_tool/package_config_subset'), Source.pattern('{PROJECT_DIR}/.dart_tool/package_config_subset'),
Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/common.dart'), Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/common.dart'),
Source.artifact(Artifact.platformKernelDill), Source.artifact(Artifact.platformKernelDill),
Source.artifact(Artifact.engineDartBinary), Source.hostArtifact(HostArtifact.engineDartBinary),
Source.artifact(Artifact.frontendServerSnapshotForEngineDartSdk), Source.artifact(Artifact.frontendServerSnapshotForEngineDartSdk),
]; ];
...@@ -362,7 +362,7 @@ class AotElfProfile extends AotElfBase { ...@@ -362,7 +362,7 @@ class AotElfProfile extends AotElfBase {
List<Source> get inputs => <Source>[ List<Source> get inputs => <Source>[
const Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/common.dart'), const Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/common.dart'),
const Source.pattern('{BUILD_DIR}/app.dill'), const Source.pattern('{BUILD_DIR}/app.dill'),
const Source.artifact(Artifact.engineDartBinary), const Source.hostArtifact(HostArtifact.engineDartBinary),
const Source.artifact(Artifact.skyEnginePath), const Source.artifact(Artifact.skyEnginePath),
Source.artifact(Artifact.genSnapshot, Source.artifact(Artifact.genSnapshot,
platform: targetPlatform, platform: targetPlatform,
...@@ -394,7 +394,7 @@ class AotElfRelease extends AotElfBase { ...@@ -394,7 +394,7 @@ class AotElfRelease extends AotElfBase {
List<Source> get inputs => <Source>[ List<Source> get inputs => <Source>[
const Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/common.dart'), const Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/common.dart'),
const Source.pattern('{BUILD_DIR}/app.dill'), const Source.pattern('{BUILD_DIR}/app.dill'),
const Source.artifact(Artifact.engineDartBinary), const Source.hostArtifact(HostArtifact.engineDartBinary),
const Source.artifact(Artifact.skyEnginePath), const Source.artifact(Artifact.skyEnginePath),
Source.artifact(Artifact.genSnapshot, Source.artifact(Artifact.genSnapshot,
platform: targetPlatform, platform: targetPlatform,
......
...@@ -113,7 +113,7 @@ class IconTreeShaker { ...@@ -113,7 +113,7 @@ class IconTreeShaker {
_artifacts.getArtifactPath(Artifact.constFinder), _artifacts.getArtifactPath(Artifact.constFinder),
); );
final File dart = _fs.file( final File dart = _fs.file(
_artifacts.getArtifactPath(Artifact.engineDartBinary), _artifacts.getHostArtifact(HostArtifact.engineDartBinary),
); );
final Map<String, List<int>> iconData = await _findConstants( final Map<String, List<int>> iconData = await _findConstants(
......
...@@ -139,7 +139,7 @@ class AotAssemblyRelease extends AotAssemblyBase { ...@@ -139,7 +139,7 @@ class AotAssemblyRelease extends AotAssemblyBase {
List<Source> get inputs => const <Source>[ List<Source> get inputs => const <Source>[
Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/ios.dart'), Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/ios.dart'),
Source.pattern('{BUILD_DIR}/app.dill'), Source.pattern('{BUILD_DIR}/app.dill'),
Source.artifact(Artifact.engineDartBinary), Source.hostArtifact(HostArtifact.engineDartBinary),
Source.artifact(Artifact.skyEnginePath), Source.artifact(Artifact.skyEnginePath),
// TODO(jonahwilliams): cannot reference gen_snapshot with artifacts since // TODO(jonahwilliams): cannot reference gen_snapshot with artifacts since
// it resolves to a file (ios/gen_snapshot) that never exists. This was // it resolves to a file (ios/gen_snapshot) that never exists. This was
...@@ -174,7 +174,7 @@ class AotAssemblyProfile extends AotAssemblyBase { ...@@ -174,7 +174,7 @@ class AotAssemblyProfile extends AotAssemblyBase {
List<Source> get inputs => const <Source>[ List<Source> get inputs => const <Source>[
Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/ios.dart'), Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/ios.dart'),
Source.pattern('{BUILD_DIR}/app.dill'), Source.pattern('{BUILD_DIR}/app.dill'),
Source.artifact(Artifact.engineDartBinary), Source.hostArtifact(HostArtifact.engineDartBinary),
Source.artifact(Artifact.skyEnginePath), Source.artifact(Artifact.skyEnginePath),
// TODO(jonahwilliams): cannot reference gen_snapshot with artifacts since // TODO(jonahwilliams): cannot reference gen_snapshot with artifacts since
// it resolves to a file (ios/gen_snapshot) that never exists. This was // it resolves to a file (ios/gen_snapshot) that never exists. This was
......
...@@ -178,9 +178,9 @@ class Dart2JSTarget extends Target { ...@@ -178,9 +178,9 @@ class Dart2JSTarget extends Target {
@override @override
List<Source> get inputs => const <Source>[ List<Source> get inputs => const <Source>[
Source.artifact(Artifact.flutterWebSdk), Source.hostArtifact(HostArtifact.flutterWebSdk),
Source.artifact(Artifact.dart2jsSnapshot), Source.hostArtifact(HostArtifact.dart2jsSnapshot),
Source.artifact(Artifact.engineDartBinary), Source.hostArtifact(HostArtifact.engineDartBinary),
Source.pattern('{BUILD_DIR}/main.dart'), Source.pattern('{BUILD_DIR}/main.dart'),
Source.pattern('{PROJECT_DIR}/.dart_tool/package_config_subset'), Source.pattern('{PROJECT_DIR}/.dart_tool/package_config_subset'),
]; ];
...@@ -198,12 +198,12 @@ class Dart2JSTarget extends Target { ...@@ -198,12 +198,12 @@ class Dart2JSTarget extends Target {
final BuildMode buildMode = getBuildModeForName(environment.defines[kBuildMode]); final BuildMode buildMode = getBuildModeForName(environment.defines[kBuildMode]);
final bool sourceMapsEnabled = environment.defines[kSourceMapsEnabled] == 'true'; final bool sourceMapsEnabled = environment.defines[kSourceMapsEnabled] == 'true';
final bool nativeNullAssertions = environment.defines[kNativeNullAssertions] == 'true'; final bool nativeNullAssertions = environment.defines[kNativeNullAssertions] == 'true';
final String librariesSpec = (globals.artifacts.getHostArtifact(HostArtifact.flutterWebSdk) as Directory).childFile('libraries.json').path;
final List<String> sharedCommandOptions = <String>[ final List<String> sharedCommandOptions = <String>[
globals.artifacts.getArtifactPath(Artifact.engineDartBinary), globals.artifacts.getHostArtifact(HostArtifact.engineDartBinary).path,
'--disable-dart-dev', '--disable-dart-dev',
globals.artifacts.getArtifactPath(Artifact.dart2jsSnapshot), globals.artifacts.getHostArtifact(HostArtifact.dart2jsSnapshot).path,
'--libraries-spec=${globals.fs.path.join(globals.artifacts.getArtifactPath(Artifact.flutterWebSdk), 'libraries.json')}', '--libraries-spec=$librariesSpec',
...?decodeCommaSeparated(environment.defines, kExtraFrontEndOptions), ...?decodeCommaSeparated(environment.defines, kExtraFrontEndOptions),
if (nativeNullAssertions) if (nativeNullAssertions)
'--native-null-assertions', '--native-null-assertions',
......
...@@ -81,7 +81,7 @@ abstract class AnalyzeBase { ...@@ -81,7 +81,7 @@ abstract class AnalyzeBase {
} }
bool get isFlutterRepo => argResults['flutter-repo'] as bool; bool get isFlutterRepo => argResults['flutter-repo'] as bool;
String get sdkPath => argResults['dart-sdk'] as String ?? artifacts.getArtifactPath(Artifact.engineDartSdkPath); String get sdkPath => argResults['dart-sdk'] as String ?? artifacts.getHostArtifact(HostArtifact.engineDartSdkPath).path;
bool get isBenchmarking => argResults['benchmark'] as bool; bool get isBenchmarking => argResults['benchmark'] as bool;
String get protocolTrafficLog => argResults['protocol-traffic-log'] as String; String get protocolTrafficLog => argResults['protocol-traffic-log'] as String;
......
...@@ -214,7 +214,7 @@ class DriveCommand extends RunCommandBase { ...@@ -214,7 +214,7 @@ class DriveCommand extends RunCommandBase {
applicationPackageFactory: ApplicationPackageFactory.instance, applicationPackageFactory: ApplicationPackageFactory.instance,
logger: _logger, logger: _logger,
processUtils: globals.processUtils, processUtils: globals.processUtils,
dartSdkPath: globals.artifacts.getArtifactPath(Artifact.engineDartBinary), dartSdkPath: globals.artifacts.getHostArtifact(HostArtifact.engineDartBinary).path,
); );
final PackageConfig packageConfig = await loadPackageConfigWithLogging( final PackageConfig packageConfig = await loadPackageConfigWithLogging(
_fileSystem.file('.packages'), _fileSystem.file('.packages'),
......
...@@ -61,8 +61,8 @@ class FormatCommand extends FlutterCommand { ...@@ -61,8 +61,8 @@ class FormatCommand extends FlutterCommand {
); );
} }
final String dartSdk = globals.artifacts.getArtifactPath(Artifact.engineDartSdkPath); final String dartSdk = globals.artifacts.getHostArtifact(HostArtifact.engineDartSdkPath).path;
final String dartBinary = globals.artifacts.getArtifactPath(Artifact.engineDartBinary); final String dartBinary = globals.artifacts.getHostArtifact(HostArtifact.engineDartBinary).path;
final List<String> command = <String>[ final List<String> command = <String>[
dartBinary, dartBinary,
globals.fs.path.join(dartSdk, 'bin', 'snapshots', 'dartfmt.dart.snapshot'), globals.fs.path.join(dartSdk, 'bin', 'snapshots', 'dartfmt.dart.snapshot'),
......
...@@ -242,7 +242,7 @@ class KernelCompiler { ...@@ -242,7 +242,7 @@ class KernelCompiler {
if (!sdkRoot.endsWith('/')) { if (!sdkRoot.endsWith('/')) {
sdkRoot = '$sdkRoot/'; sdkRoot = '$sdkRoot/';
} }
final String engineDartPath = _artifacts.getArtifactPath(Artifact.engineDartBinary); final String engineDartPath = _artifacts.getHostArtifact(HostArtifact.engineDartBinary).path;
if (!_processManager.canRun(engineDartPath)) { if (!_processManager.canRun(engineDartPath)) {
throwToolExit('Unable to find Dart binary at $engineDartPath'); throwToolExit('Unable to find Dart binary at $engineDartPath');
} }
...@@ -666,7 +666,7 @@ class DefaultResidentCompiler implements ResidentCompiler { ...@@ -666,7 +666,7 @@ class DefaultResidentCompiler implements ResidentCompiler {
Artifact.frontendServerSnapshotForEngineDartSdk Artifact.frontendServerSnapshotForEngineDartSdk
); );
final List<String> command = <String>[ final List<String> command = <String>[
_artifacts.getArtifactPath(Artifact.engineDartBinary), _artifacts.getHostArtifact(HostArtifact.engineDartBinary).path,
'--disable-dart-dev', '--disable-dart-dev',
frontendServer, frontendServer,
'--sdk-root', '--sdk-root',
......
...@@ -27,7 +27,6 @@ import 'base/process.dart'; ...@@ -27,7 +27,6 @@ import 'base/process.dart';
import 'base/terminal.dart'; import 'base/terminal.dart';
import 'base/time.dart'; import 'base/time.dart';
import 'base/user_messages.dart'; import 'base/user_messages.dart';
import 'build_info.dart';
import 'build_system/build_system.dart'; import 'build_system/build_system.dart';
import 'cache.dart'; import 'cache.dart';
import 'custom_devices/custom_devices_config.dart'; import 'custom_devices/custom_devices_config.dart';
...@@ -210,7 +209,7 @@ Future<T> runInContext<T>( ...@@ -210,7 +209,7 @@ Future<T> runInContext<T>(
), ),
DevtoolsLauncher: () => DevtoolsServerLauncher( DevtoolsLauncher: () => DevtoolsServerLauncher(
processManager: globals.processManager, processManager: globals.processManager,
pubExecutable: globals.artifacts.getArtifactPath(Artifact.pubExecutable), pubExecutable: globals.artifacts.getHostArtifact(HostArtifact.pubExecutable).path,
logger: globals.logger, logger: globals.logger,
platform: globals.platform, platform: globals.platform,
persistentToolState: globals.persistentToolState, persistentToolState: globals.persistentToolState,
...@@ -355,10 +354,9 @@ Future<T> runInContext<T>( ...@@ -355,10 +354,9 @@ Future<T> runInContext<T>(
platform: globals.platform, platform: globals.platform,
xcode: globals.xcode, xcode: globals.xcode,
iproxy: IProxy( iproxy: IProxy(
iproxyPath: globals.artifacts.getArtifactPath( iproxyPath: globals.artifacts.getHostArtifact(
Artifact.iproxy, HostArtifact.iproxy,
platform: TargetPlatform.ios, ).path,
),
logger: globals.logger, logger: globals.logger,
processManager: globals.processManager, processManager: globals.processManager,
dyLdLibEntry: globals.cache.dyLdLibEntry, dyLdLibEntry: globals.cache.dyLdLibEntry,
......
...@@ -65,7 +65,7 @@ class FuchsiaKernelCompiler { ...@@ -65,7 +65,7 @@ class FuchsiaKernelCompiler {
]; ];
final List<String> command = <String>[ final List<String> command = <String>[
globals.artifacts.getArtifactPath(Artifact.engineDartBinary), globals.artifacts.getHostArtifact(HostArtifact.engineDartBinary).path,
'--disable-dart-dev', '--disable-dart-dev',
kernelCompiler, kernelCompiler,
...flags, ...flags,
......
...@@ -16,7 +16,6 @@ import '../base/io.dart'; ...@@ -16,7 +16,6 @@ import '../base/io.dart';
import '../base/logger.dart'; import '../base/logger.dart';
import '../base/platform.dart'; import '../base/platform.dart';
import '../base/process.dart'; import '../base/process.dart';
import '../build_info.dart';
import '../cache.dart'; import '../cache.dart';
import '../convert.dart'; import '../convert.dart';
import 'code_signing.dart'; import 'code_signing.dart';
...@@ -39,7 +38,7 @@ class IOSDeploy { ...@@ -39,7 +38,7 @@ class IOSDeploy {
_cache = cache, _cache = cache,
_processUtils = ProcessUtils(processManager: processManager, logger: logger), _processUtils = ProcessUtils(processManager: processManager, logger: logger),
_logger = logger, _logger = logger,
_binaryPath = artifacts.getArtifactPath(Artifact.iosDeploy, platform: TargetPlatform.ios); _binaryPath = artifacts.getHostArtifact(HostArtifact.iosDeploy).path;
final Cache _cache; final Cache _cache;
final String _binaryPath; final String _binaryPath;
......
...@@ -39,8 +39,8 @@ class IMobileDevice { ...@@ -39,8 +39,8 @@ class IMobileDevice {
@required Cache cache, @required Cache cache,
@required ProcessManager processManager, @required ProcessManager processManager,
@required Logger logger, @required Logger logger,
}) : _idevicesyslogPath = artifacts.getArtifactPath(Artifact.idevicesyslog, platform: TargetPlatform.ios), }) : _idevicesyslogPath = artifacts.getHostArtifact(HostArtifact.idevicesyslog).path,
_idevicescreenshotPath = artifacts.getArtifactPath(Artifact.idevicescreenshot, platform: TargetPlatform.ios), _idevicescreenshotPath = artifacts.getHostArtifact(HostArtifact.idevicescreenshot).path,
_dyLdLibEntry = cache.dyLdLibEntry, _dyLdLibEntry = cache.dyLdLibEntry,
_processUtils = ProcessUtils(logger: logger, processManager: processManager), _processUtils = ProcessUtils(logger: logger, processManager: processManager),
_processManager = processManager; _processManager = processManager;
......
...@@ -537,7 +537,7 @@ class WebAssetServer implements AssetReader { ...@@ -537,7 +537,7 @@ class WebAssetServer implements AssetReader {
// Otherwise it must be a Dart SDK source or a Flutter Web SDK source. // Otherwise it must be a Dart SDK source or a Flutter Web SDK source.
final Directory dartSdkParent = globals.fs final Directory dartSdkParent = globals.fs
.directory( .directory(
globals.artifacts.getArtifactPath(Artifact.engineDartSdkPath)) globals.artifacts.getHostArtifact(HostArtifact.engineDartSdkPath))
.parent; .parent;
final File dartSdkFile = globals.fs.file(dartSdkParent.uri.resolve(path)); final File dartSdkFile = globals.fs.file(dartSdkParent.uri.resolve(path));
if (dartSdkFile.existsSync()) { if (dartSdkFile.existsSync()) {
...@@ -545,19 +545,19 @@ class WebAssetServer implements AssetReader { ...@@ -545,19 +545,19 @@ class WebAssetServer implements AssetReader {
} }
final Directory flutterWebSdk = globals.fs final Directory flutterWebSdk = globals.fs
.directory(globals.artifacts.getArtifactPath(Artifact.flutterWebSdk)); .directory(globals.artifacts.getHostArtifact(HostArtifact.flutterWebSdk));
final File webSdkFile = globals.fs.file(flutterWebSdk.uri.resolve(path)); final File webSdkFile = globals.fs.file(flutterWebSdk.uri.resolve(path));
return webSdkFile; return webSdkFile;
} }
File get _resolveDartSdkJsFile => File get _resolveDartSdkJsFile =>
globals.fs.file(globals.artifacts.getArtifactPath( globals.fs.file(globals.artifacts.getHostArtifact(
kDartSdkJsArtifactMap[webRenderer][_nullSafetyMode] kDartSdkJsArtifactMap[webRenderer][_nullSafetyMode]
)); ));
File get _resolveDartSdkJsMapFile => File get _resolveDartSdkJsMapFile =>
globals.fs.file(globals.artifacts.getArtifactPath( globals.fs.file(globals.artifacts.getHostArtifact(
kDartSdkJsMapArtifactMap[webRenderer][_nullSafetyMode] kDartSdkJsMapArtifactMap[webRenderer][_nullSafetyMode]
)); ));
...@@ -869,7 +869,7 @@ class WebDevFS implements DevFS { ...@@ -869,7 +869,7 @@ class WebDevFS implements DevFS {
@visibleForTesting @visibleForTesting
final File requireJS = globals.fs.file(globals.fs.path.join( final File requireJS = globals.fs.file(globals.fs.path.join(
globals.artifacts.getArtifactPath(Artifact.engineDartSdkPath), globals.artifacts.getHostArtifact(HostArtifact.engineDartSdkPath).path,
'lib', 'lib',
'dev_compiler', 'dev_compiler',
'kernel', 'kernel',
...@@ -879,7 +879,7 @@ class WebDevFS implements DevFS { ...@@ -879,7 +879,7 @@ class WebDevFS implements DevFS {
@visibleForTesting @visibleForTesting
final File stackTraceMapper = globals.fs.file(globals.fs.path.join( final File stackTraceMapper = globals.fs.file(globals.fs.path.join(
globals.artifacts.getArtifactPath(Artifact.engineDartSdkPath), globals.artifacts.getHostArtifact(HostArtifact.engineDartSdkPath).path,
'lib', 'lib',
'dev_compiler', 'dev_compiler',
'web', 'web',
......
...@@ -100,15 +100,15 @@ class FlutterDevice { ...@@ -100,15 +100,15 @@ class FlutterDevice {
// used to file a bug, but the compiler will still start up correctly. // used to file a bug, but the compiler will still start up correctly.
if (targetPlatform == TargetPlatform.web_javascript) { if (targetPlatform == TargetPlatform.web_javascript) {
// TODO(jonahwilliams): consistently provide these flags across platforms. // TODO(jonahwilliams): consistently provide these flags across platforms.
Artifact platformDillArtifact; HostArtifact platformDillArtifact;
final List<String> extraFrontEndOptions = List<String>.of(buildInfo.extraFrontEndOptions ?? <String>[]); final List<String> extraFrontEndOptions = List<String>.of(buildInfo.extraFrontEndOptions ?? <String>[]);
if (buildInfo.nullSafetyMode == NullSafetyMode.unsound) { if (buildInfo.nullSafetyMode == NullSafetyMode.unsound) {
platformDillArtifact = Artifact.webPlatformKernelDill; platformDillArtifact = HostArtifact.webPlatformKernelDill;
if (!extraFrontEndOptions.contains('--no-sound-null-safety')) { if (!extraFrontEndOptions.contains('--no-sound-null-safety')) {
extraFrontEndOptions.add('--no-sound-null-safety'); extraFrontEndOptions.add('--no-sound-null-safety');
} }
} else if (buildInfo.nullSafetyMode == NullSafetyMode.sound) { } else if (buildInfo.nullSafetyMode == NullSafetyMode.sound) {
platformDillArtifact = Artifact.webPlatformSoundKernelDill; platformDillArtifact = HostArtifact.webPlatformSoundKernelDill;
if (!extraFrontEndOptions.contains('--sound-null-safety')) { if (!extraFrontEndOptions.contains('--sound-null-safety')) {
extraFrontEndOptions.add('--sound-null-safety'); extraFrontEndOptions.add('--sound-null-safety');
} }
...@@ -117,7 +117,7 @@ class FlutterDevice { ...@@ -117,7 +117,7 @@ class FlutterDevice {
} }
generator = ResidentCompiler( generator = ResidentCompiler(
globals.artifacts.getArtifactPath(Artifact.flutterWebSdk, mode: buildInfo.mode), globals.artifacts.getHostArtifact(HostArtifact.flutterWebSdk).path,
buildMode: buildInfo.mode, buildMode: buildInfo.mode,
trackWidgetCreation: buildInfo.trackWidgetCreation, trackWidgetCreation: buildInfo.trackWidgetCreation,
fileSystemRoots: fileSystemRoots ?? <String>[], fileSystemRoots: fileSystemRoots ?? <String>[],
...@@ -132,11 +132,11 @@ class FlutterDevice { ...@@ -132,11 +132,11 @@ class FlutterDevice {
targetModel: TargetModel.dartdevc, targetModel: TargetModel.dartdevc,
extraFrontEndOptions: extraFrontEndOptions, extraFrontEndOptions: extraFrontEndOptions,
platformDill: globals.fs.file(globals.artifacts platformDill: globals.fs.file(globals.artifacts
.getArtifactPath(platformDillArtifact, mode: buildInfo.mode)) .getHostArtifact(platformDillArtifact))
.absolute.uri.toString(), .absolute.uri.toString(),
dartDefines: buildInfo.dartDefines, dartDefines: buildInfo.dartDefines,
librariesSpec: globals.fs.file(globals.artifacts librariesSpec: globals.fs.file(globals.artifacts
.getArtifactPath(Artifact.flutterWebLibrariesJson)).uri.toString(), .getHostArtifact(HostArtifact.flutterWebLibrariesJson)).uri.toString(),
packagesPath: buildInfo.packagesPath, packagesPath: buildInfo.packagesPath,
artifacts: globals.artifacts, artifacts: globals.artifacts,
processManager: globals.processManager, processManager: globals.processManager,
...@@ -869,7 +869,7 @@ abstract class ResidentHandlers { ...@@ -869,7 +869,7 @@ abstract class ResidentHandlers {
return true; return true;
} }
/// Toggle the operating system brightness (light or dart). /// Toggle the operating system brightness (light or dark).
Future<bool> debugToggleBrightness() async { Future<bool> debugToggleBrightness() async {
if (!supportsServiceProtocol) { if (!supportsServiceProtocol) {
return false; return false;
......
...@@ -173,7 +173,7 @@ class FlutterWebPlatform extends PlatformPlugin { ...@@ -173,7 +173,7 @@ class FlutterWebPlatform extends PlatformPlugin {
/// The require js binary. /// The require js binary.
File get _requireJs => _fileSystem.file(_fileSystem.path.join( File get _requireJs => _fileSystem.file(_fileSystem.path.join(
_artifacts.getArtifactPath(Artifact.engineDartSdkPath), _artifacts.getHostArtifact(HostArtifact.engineDartSdkPath).path,
'lib', 'lib',
'dev_compiler', 'dev_compiler',
'kernel', 'kernel',
...@@ -183,7 +183,7 @@ class FlutterWebPlatform extends PlatformPlugin { ...@@ -183,7 +183,7 @@ class FlutterWebPlatform extends PlatformPlugin {
/// The ddc to dart stack trace mapper. /// The ddc to dart stack trace mapper.
File get _stackTraceMapper => _fileSystem.file(_fileSystem.path.join( File get _stackTraceMapper => _fileSystem.file(_fileSystem.path.join(
_artifacts.getArtifactPath(Artifact.engineDartSdkPath), _artifacts.getHostArtifact(HostArtifact.engineDartSdkPath).path,
'lib', 'lib',
'dev_compiler', 'dev_compiler',
'web', 'web',
...@@ -191,10 +191,10 @@ class FlutterWebPlatform extends PlatformPlugin { ...@@ -191,10 +191,10 @@ class FlutterWebPlatform extends PlatformPlugin {
)); ));
File get _dartSdk => _fileSystem.file( File get _dartSdk => _fileSystem.file(
_artifacts.getArtifactPath(kDartSdkJsArtifactMap[_rendererMode][_nullSafetyMode])); _artifacts.getHostArtifact(kDartSdkJsArtifactMap[_rendererMode][_nullSafetyMode]));
File get _dartSdkSourcemaps => _fileSystem.file( File get _dartSdkSourcemaps => _fileSystem.file(
_artifacts.getArtifactPath(kDartSdkJsMapArtifactMap[_rendererMode][_nullSafetyMode])); _artifacts.getHostArtifact(kDartSdkJsMapArtifactMap[_rendererMode][_nullSafetyMode]));
/// The precompiled test javascript. /// The precompiled test javascript.
File get _testDartJs => _fileSystem.file(_fileSystem.path.join( File get _testDartJs => _fileSystem.file(_fileSystem.path.join(
......
...@@ -53,17 +53,17 @@ class WebTestCompiler { ...@@ -53,17 +53,17 @@ class WebTestCompiler {
@required BuildInfo buildInfo, @required BuildInfo buildInfo,
}) async { }) async {
LanguageVersion languageVersion = LanguageVersion(2, 8); LanguageVersion languageVersion = LanguageVersion(2, 8);
Artifact platformDillArtifact; HostArtifact platformDillArtifact;
// TODO(jonahwilliams): to support autodetect this would need to partition the source code into a // TODO(jonahwilliams): to support autodetect this would need to partition the source code into a
// a sound and unsound set and perform separate compilations. // a sound and unsound set and perform separate compilations.
final List<String> extraFrontEndOptions = List<String>.of(buildInfo.extraFrontEndOptions ?? <String>[]); final List<String> extraFrontEndOptions = List<String>.of(buildInfo.extraFrontEndOptions ?? <String>[]);
if (buildInfo.nullSafetyMode == NullSafetyMode.unsound || buildInfo.nullSafetyMode == NullSafetyMode.autodetect) { if (buildInfo.nullSafetyMode == NullSafetyMode.unsound || buildInfo.nullSafetyMode == NullSafetyMode.autodetect) {
platformDillArtifact = Artifact.webPlatformKernelDill; platformDillArtifact = HostArtifact.webPlatformKernelDill;
if (!extraFrontEndOptions.contains('--no-sound-null-safety')) { if (!extraFrontEndOptions.contains('--no-sound-null-safety')) {
extraFrontEndOptions.add('--no-sound-null-safety'); extraFrontEndOptions.add('--no-sound-null-safety');
} }
} else if (buildInfo.nullSafetyMode == NullSafetyMode.sound) { } else if (buildInfo.nullSafetyMode == NullSafetyMode.sound) {
platformDillArtifact = Artifact.webPlatformSoundKernelDill; platformDillArtifact = HostArtifact.webPlatformSoundKernelDill;
languageVersion = currentLanguageVersion(_fileSystem, Cache.flutterRoot); languageVersion = currentLanguageVersion(_fileSystem, Cache.flutterRoot);
if (!extraFrontEndOptions.contains('--sound-null-safety')) { if (!extraFrontEndOptions.contains('--sound-null-safety')) {
extraFrontEndOptions.add('--sound-null-safety'); extraFrontEndOptions.add('--sound-null-safety');
...@@ -107,7 +107,7 @@ class WebTestCompiler { ...@@ -107,7 +107,7 @@ class WebTestCompiler {
config: _config, config: _config,
); );
final ResidentCompiler residentCompiler = ResidentCompiler( final ResidentCompiler residentCompiler = ResidentCompiler(
_artifacts.getArtifactPath(Artifact.flutterWebSdk, mode: buildInfo.mode), _artifacts.getHostArtifact(HostArtifact.flutterWebSdk).path,
buildMode: buildInfo.mode, buildMode: buildInfo.mode,
trackWidgetCreation: buildInfo.trackWidgetCreation, trackWidgetCreation: buildInfo.trackWidgetCreation,
fileSystemRoots: <String>[ fileSystemRoots: <String>[
...@@ -120,12 +120,11 @@ class WebTestCompiler { ...@@ -120,12 +120,11 @@ class WebTestCompiler {
initializeFromDill: cachedKernelPath, initializeFromDill: cachedKernelPath,
targetModel: TargetModel.dartdevc, targetModel: TargetModel.dartdevc,
extraFrontEndOptions: extraFrontEndOptions, extraFrontEndOptions: extraFrontEndOptions,
platformDill: _fileSystem.file(_artifacts platformDill: _artifacts
.getArtifactPath(platformDillArtifact, mode: buildInfo.mode)) .getHostArtifact(platformDillArtifact)
.absolute.uri.toString(), .absolute.uri.toString(),
dartDefines: buildInfo.dartDefines, dartDefines: buildInfo.dartDefines,
librariesSpec: _fileSystem.file(_artifacts librariesSpec: _artifacts.getHostArtifact(HostArtifact.flutterWebLibrariesJson).uri.toString(),
.getArtifactPath(Artifact.flutterWebLibrariesJson)).uri.toString(),
packagesPath: buildInfo.packagesPath, packagesPath: buildInfo.packagesPath,
artifacts: _artifacts, artifacts: _artifacts,
processManager: _processManager, processManager: _processManager,
......
...@@ -101,33 +101,33 @@ enum WebRendererMode { ...@@ -101,33 +101,33 @@ enum WebRendererMode {
} }
/// The correct precompiled artifact to use for each build and render mode. /// The correct precompiled artifact to use for each build and render mode.
const Map<WebRendererMode, Map<NullSafetyMode, Artifact>> kDartSdkJsArtifactMap = <WebRendererMode, Map<NullSafetyMode, Artifact>>{ const Map<WebRendererMode, Map<NullSafetyMode, HostArtifact>> kDartSdkJsArtifactMap = <WebRendererMode, Map<NullSafetyMode, HostArtifact>>{
WebRendererMode.autoDetect: <NullSafetyMode, Artifact> { WebRendererMode.autoDetect: <NullSafetyMode, HostArtifact> {
NullSafetyMode.sound: Artifact.webPrecompiledCanvaskitAndHtmlSoundSdk, NullSafetyMode.sound: HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdk,
NullSafetyMode.unsound: Artifact.webPrecompiledCanvaskitAndHtmlSdk, NullSafetyMode.unsound: HostArtifact.webPrecompiledCanvaskitAndHtmlSdk,
}, },
WebRendererMode.canvaskit: <NullSafetyMode, Artifact> { WebRendererMode.canvaskit: <NullSafetyMode, HostArtifact> {
NullSafetyMode.sound: Artifact.webPrecompiledCanvaskitSoundSdk, NullSafetyMode.sound: HostArtifact.webPrecompiledCanvaskitSoundSdk,
NullSafetyMode.unsound: Artifact.webPrecompiledCanvaskitSdk, NullSafetyMode.unsound: HostArtifact.webPrecompiledCanvaskitSdk,
}, },
WebRendererMode.html: <NullSafetyMode, Artifact> { WebRendererMode.html: <NullSafetyMode, HostArtifact> {
NullSafetyMode.sound: Artifact.webPrecompiledSoundSdk, NullSafetyMode.sound: HostArtifact.webPrecompiledSoundSdk,
NullSafetyMode.unsound: Artifact.webPrecompiledSdk, NullSafetyMode.unsound: HostArtifact.webPrecompiledSdk,
}, },
}; };
/// The correct source map artifact to use for each build and render mode. /// The correct source map artifact to use for each build and render mode.
const Map<WebRendererMode, Map<NullSafetyMode, Artifact>> kDartSdkJsMapArtifactMap = <WebRendererMode, Map<NullSafetyMode, Artifact>>{ const Map<WebRendererMode, Map<NullSafetyMode, HostArtifact>> kDartSdkJsMapArtifactMap = <WebRendererMode, Map<NullSafetyMode, HostArtifact>>{
WebRendererMode.autoDetect: <NullSafetyMode, Artifact> { WebRendererMode.autoDetect: <NullSafetyMode, HostArtifact> {
NullSafetyMode.sound: Artifact.webPrecompiledCanvaskitAndHtmlSoundSdkSourcemaps, NullSafetyMode.sound: HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdkSourcemaps,
NullSafetyMode.unsound: Artifact.webPrecompiledCanvaskitAndHtmlSdkSourcemaps, NullSafetyMode.unsound: HostArtifact.webPrecompiledCanvaskitAndHtmlSdkSourcemaps,
}, },
WebRendererMode.canvaskit: <NullSafetyMode, Artifact> { WebRendererMode.canvaskit: <NullSafetyMode, HostArtifact> {
NullSafetyMode.sound: Artifact.webPrecompiledCanvaskitSoundSdkSourcemaps, NullSafetyMode.sound: HostArtifact.webPrecompiledCanvaskitSoundSdkSourcemaps,
NullSafetyMode.unsound: Artifact.webPrecompiledCanvaskitSdkSourcemaps, NullSafetyMode.unsound: HostArtifact.webPrecompiledCanvaskitSdkSourcemaps,
}, },
WebRendererMode.html: <NullSafetyMode, Artifact> { WebRendererMode.html: <NullSafetyMode, HostArtifact> {
NullSafetyMode.sound: Artifact.webPrecompiledSoundSdkSourcemaps, NullSafetyMode.sound: HostArtifact.webPrecompiledSoundSdkSourcemaps,
NullSafetyMode.unsound: Artifact.webPrecompiledSdkSourcemaps, NullSafetyMode.unsound: HostArtifact.webPrecompiledSdkSourcemaps,
}, },
}; };
...@@ -91,7 +91,7 @@ void main() { ...@@ -91,7 +91,7 @@ void main() {
); );
server = AnalysisServer( server = AnalysisServer(
globals.artifacts.getArtifactPath(Artifact.engineDartSdkPath), globals.artifacts.getHostArtifact(HostArtifact.engineDartSdkPath).path,
<String>[tempDir.path], <String>[tempDir.path],
fileSystem: fileSystem, fileSystem: fileSystem,
platform: platform, platform: platform,
...@@ -129,7 +129,7 @@ void main() { ...@@ -129,7 +129,7 @@ void main() {
); );
server = AnalysisServer( server = AnalysisServer(
globals.artifacts.getArtifactPath(Artifact.engineDartSdkPath), globals.artifacts.getHostArtifact(HostArtifact.engineDartSdkPath).path,
<String>[tempDir.path], <String>[tempDir.path],
fileSystem: fileSystem, fileSystem: fileSystem,
platform: platform, platform: platform,
...@@ -154,7 +154,7 @@ void main() { ...@@ -154,7 +154,7 @@ void main() {
const String contents = "StringBuffer bar = StringBuffer('baz');"; const String contents = "StringBuffer bar = StringBuffer('baz');";
tempDir.childFile('main.dart').writeAsStringSync(contents); tempDir.childFile('main.dart').writeAsStringSync(contents);
server = AnalysisServer( server = AnalysisServer(
globals.artifacts.getArtifactPath(Artifact.engineDartSdkPath), globals.artifacts.getHostArtifact(HostArtifact.engineDartSdkPath).path,
<String>[tempDir.path], <String>[tempDir.path],
fileSystem: fileSystem, fileSystem: fileSystem,
platform: platform, platform: platform,
...@@ -180,13 +180,13 @@ void main() { ...@@ -180,13 +180,13 @@ void main() {
<FakeCommand>[ <FakeCommand>[
FakeCommand( FakeCommand(
command: const <String>[ command: const <String>[
'Artifact.engineDartSdkPath/bin/dart', 'HostArtifact.engineDartSdkPath/bin/dart',
'--disable-dart-dev', '--disable-dart-dev',
'Artifact.engineDartSdkPath/bin/snapshots/analysis_server.dart.snapshot', 'HostArtifact.engineDartSdkPath/bin/snapshots/analysis_server.dart.snapshot',
'--disable-server-feature-completion', '--disable-server-feature-completion',
'--disable-server-feature-search', '--disable-server-feature-search',
'--sdk', '--sdk',
'Artifact.engineDartSdkPath', 'HostArtifact.engineDartSdkPath',
], ],
completer: completer, completer: completer,
stdin: IOSink(stdin.sink), stdin: IOSink(stdin.sink),
...@@ -218,13 +218,13 @@ void main() { ...@@ -218,13 +218,13 @@ void main() {
<FakeCommand>[ <FakeCommand>[
FakeCommand( FakeCommand(
command: const <String>[ command: const <String>[
'Artifact.engineDartSdkPath/bin/dart', 'HostArtifact.engineDartSdkPath/bin/dart',
'--disable-dart-dev', '--disable-dart-dev',
'Artifact.engineDartSdkPath/bin/snapshots/analysis_server.dart.snapshot', 'HostArtifact.engineDartSdkPath/bin/snapshots/analysis_server.dart.snapshot',
'--disable-server-feature-completion', '--disable-server-feature-completion',
'--disable-server-feature-search', '--disable-server-feature-search',
'--sdk', '--sdk',
'Artifact.engineDartSdkPath', 'HostArtifact.engineDartSdkPath',
], ],
completer: completer, completer: completer,
stdin: IOSink(stdin.sink), stdin: IOSink(stdin.sink),
......
...@@ -1069,7 +1069,7 @@ void main() { ...@@ -1069,7 +1069,7 @@ void main() {
final Process process = await Process.start( final Process process = await Process.start(
globals.fs.path.join( globals.fs.path.join(
globals.artifacts.getArtifactPath(Artifact.engineDartSdkPath), globals.artifacts.getHostArtifact(HostArtifact.engineDartSdkPath).path,
'bin', 'bin',
globals.platform.isWindows ? 'dartfmt.bat' : 'dartfmt', globals.platform.isWindows ? 'dartfmt.bat' : 'dartfmt',
), ),
...@@ -1171,7 +1171,7 @@ void main() { ...@@ -1171,7 +1171,7 @@ void main() {
final Process process = await Process.start( final Process process = await Process.start(
globals.fs.path.join( globals.fs.path.join(
globals.artifacts.getArtifactPath(Artifact.engineDartSdkPath), globals.artifacts.getHostArtifact(HostArtifact.engineDartSdkPath).path,
'bin', 'bin',
globals.platform.isWindows ? 'dartfmt.bat' : 'dartfmt', globals.platform.isWindows ? 'dartfmt.bat' : 'dartfmt',
), ),
...@@ -2563,7 +2563,7 @@ Future<void> _analyzeProject(String workingDir) async { ...@@ -2563,7 +2563,7 @@ Future<void> _analyzeProject(String workingDir) async {
]; ];
final ProcessResult exec = await Process.run( final ProcessResult exec = await Process.run(
globals.artifacts.getArtifactPath(Artifact.engineDartBinary), globals.artifacts.getHostArtifact(HostArtifact.engineDartBinary).path,
args, args,
workingDirectory: workingDir, workingDirectory: workingDir,
); );
...@@ -2586,7 +2586,7 @@ Future<void> _runFlutterTest(Directory workingDir, { String target }) async { ...@@ -2586,7 +2586,7 @@ Future<void> _runFlutterTest(Directory workingDir, { String target }) async {
// While flutter test does get packages, it doesn't write version // While flutter test does get packages, it doesn't write version
// files anymore. // files anymore.
await Process.run( await Process.run(
globals.artifacts.getArtifactPath(Artifact.engineDartBinary), globals.artifacts.getHostArtifact(HostArtifact.engineDartBinary).path,
<String>[ <String>[
flutterToolsSnapshotPath, flutterToolsSnapshotPath,
'packages', 'packages',
...@@ -2603,7 +2603,7 @@ Future<void> _runFlutterTest(Directory workingDir, { String target }) async { ...@@ -2603,7 +2603,7 @@ Future<void> _runFlutterTest(Directory workingDir, { String target }) async {
]; ];
final ProcessResult exec = await Process.run( final ProcessResult exec = await Process.run(
globals.artifacts.getArtifactPath(Artifact.engineDartBinary), globals.artifacts.getHostArtifact(HostArtifact.engineDartBinary).path,
args, args,
workingDirectory: workingDir.path, workingDirectory: workingDir.path,
); );
......
...@@ -135,35 +135,35 @@ void main() { ...@@ -135,35 +135,35 @@ void main() {
testWithoutContext('precompiled web artifact paths are correct', () { testWithoutContext('precompiled web artifact paths are correct', () {
expect( expect(
artifacts.getArtifactPath(Artifact.webPrecompiledSdk), artifacts.getHostArtifact(HostArtifact.webPrecompiledSdk).path,
'root/bin/cache/flutter_web_sdk/kernel/amd/dart_sdk.js', 'root/bin/cache/flutter_web_sdk/kernel/amd/dart_sdk.js',
); );
expect( expect(
artifacts.getArtifactPath(Artifact.webPrecompiledSdkSourcemaps), artifacts.getHostArtifact(HostArtifact.webPrecompiledSdkSourcemaps).path,
'root/bin/cache/flutter_web_sdk/kernel/amd/dart_sdk.js.map', 'root/bin/cache/flutter_web_sdk/kernel/amd/dart_sdk.js.map',
); );
expect( expect(
artifacts.getArtifactPath(Artifact.webPrecompiledCanvaskitSdk), artifacts.getHostArtifact(HostArtifact.webPrecompiledCanvaskitSdk).path,
'root/bin/cache/flutter_web_sdk/kernel/amd-canvaskit/dart_sdk.js', 'root/bin/cache/flutter_web_sdk/kernel/amd-canvaskit/dart_sdk.js',
); );
expect( expect(
artifacts.getArtifactPath(Artifact.webPrecompiledCanvaskitSdkSourcemaps), artifacts.getHostArtifact(HostArtifact.webPrecompiledCanvaskitSdkSourcemaps).path,
'root/bin/cache/flutter_web_sdk/kernel/amd-canvaskit/dart_sdk.js.map', 'root/bin/cache/flutter_web_sdk/kernel/amd-canvaskit/dart_sdk.js.map',
); );
expect( expect(
artifacts.getArtifactPath(Artifact.webPrecompiledSoundSdk), artifacts.getHostArtifact(HostArtifact.webPrecompiledSoundSdk).path,
'root/bin/cache/flutter_web_sdk/kernel/amd-sound/dart_sdk.js', 'root/bin/cache/flutter_web_sdk/kernel/amd-sound/dart_sdk.js',
); );
expect( expect(
artifacts.getArtifactPath(Artifact.webPrecompiledSoundSdkSourcemaps), artifacts.getHostArtifact(HostArtifact.webPrecompiledSoundSdkSourcemaps).path,
'root/bin/cache/flutter_web_sdk/kernel/amd-sound/dart_sdk.js.map', 'root/bin/cache/flutter_web_sdk/kernel/amd-sound/dart_sdk.js.map',
); );
expect( expect(
artifacts.getArtifactPath(Artifact.webPrecompiledCanvaskitSoundSdk), artifacts.getHostArtifact(HostArtifact.webPrecompiledCanvaskitSoundSdk).path,
'root/bin/cache/flutter_web_sdk/kernel/amd-canvaskit-sound/dart_sdk.js', 'root/bin/cache/flutter_web_sdk/kernel/amd-canvaskit-sound/dart_sdk.js',
); );
expect( expect(
artifacts.getArtifactPath(Artifact.webPrecompiledCanvaskitSoundSdkSourcemaps), artifacts.getHostArtifact(HostArtifact.webPrecompiledCanvaskitSoundSdkSourcemaps).path,
'root/bin/cache/flutter_web_sdk/kernel/amd-canvaskit-sound/dart_sdk.js.map', 'root/bin/cache/flutter_web_sdk/kernel/amd-canvaskit-sound/dart_sdk.js.map',
); );
}); });
...@@ -293,7 +293,7 @@ void main() { ...@@ -293,7 +293,7 @@ void main() {
fileSystem.path.join('/out', 'android_debug_unopt', 'flutter_tester'), fileSystem.path.join('/out', 'android_debug_unopt', 'flutter_tester'),
); );
expect( expect(
artifacts.getArtifactPath(Artifact.engineDartSdkPath), artifacts.getHostArtifact(HostArtifact.engineDartSdkPath).path,
fileSystem.path.join('/out', 'host_debug_unopt', 'dart-sdk'), fileSystem.path.join('/out', 'host_debug_unopt', 'dart-sdk'),
); );
}); });
...@@ -324,7 +324,7 @@ void main() { ...@@ -324,7 +324,7 @@ void main() {
operatingSystemUtils: FakeOperatingSystemUtils(), operatingSystemUtils: FakeOperatingSystemUtils(),
); );
expect(artifacts.getArtifactPath(Artifact.engineDartBinary), contains('.exe')); expect(artifacts.getHostArtifact(HostArtifact.engineDartBinary).path, contains('.exe'));
}); });
testWithoutContext('Looks up windows UWP artifacts in host engine', () async { testWithoutContext('Looks up windows UWP artifacts in host engine', () async {
...@@ -342,7 +342,7 @@ void main() { ...@@ -342,7 +342,7 @@ void main() {
}); });
testWithoutContext('Looks up dart on linux platforms', () async { testWithoutContext('Looks up dart on linux platforms', () async {
expect(artifacts.getArtifactPath(Artifact.engineDartBinary), isNot(contains('.exe'))); expect(artifacts.getHostArtifact(HostArtifact.engineDartBinary).path, isNot(contains('.exe')));
}); });
}); });
} }
...@@ -80,7 +80,7 @@ void main() { ...@@ -80,7 +80,7 @@ void main() {
final String build = androidEnvironment.buildDir.path; final String build = androidEnvironment.buildDir.path;
processManager.addCommands(<FakeCommand>[ processManager.addCommands(<FakeCommand>[
FakeCommand(command: <String>[ FakeCommand(command: <String>[
artifacts.getArtifactPath(Artifact.engineDartBinary), artifacts.getHostArtifact(HostArtifact.engineDartBinary).path,
'--disable-dart-dev', '--disable-dart-dev',
artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk), artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk),
'--sdk-root', '--sdk-root',
...@@ -116,7 +116,7 @@ void main() { ...@@ -116,7 +116,7 @@ void main() {
final String build = androidEnvironment.buildDir.path; final String build = androidEnvironment.buildDir.path;
processManager.addCommands(<FakeCommand>[ processManager.addCommands(<FakeCommand>[
FakeCommand(command: <String>[ FakeCommand(command: <String>[
artifacts.getArtifactPath(Artifact.engineDartBinary), artifacts.getHostArtifact(HostArtifact.engineDartBinary).path,
'--disable-dart-dev', '--disable-dart-dev',
artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk), artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk),
'--sdk-root', '--sdk-root',
...@@ -152,7 +152,7 @@ void main() { ...@@ -152,7 +152,7 @@ void main() {
final String build = androidEnvironment.buildDir.path; final String build = androidEnvironment.buildDir.path;
processManager.addCommands(<FakeCommand>[ processManager.addCommands(<FakeCommand>[
FakeCommand(command: <String>[ FakeCommand(command: <String>[
artifacts.getArtifactPath(Artifact.engineDartBinary), artifacts.getHostArtifact(HostArtifact.engineDartBinary).path,
'--disable-dart-dev', '--disable-dart-dev',
artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk), artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk),
'--sdk-root', '--sdk-root',
...@@ -189,7 +189,7 @@ void main() { ...@@ -189,7 +189,7 @@ void main() {
final String build = androidEnvironment.buildDir.path; final String build = androidEnvironment.buildDir.path;
processManager.addCommands(<FakeCommand>[ processManager.addCommands(<FakeCommand>[
FakeCommand(command: <String>[ FakeCommand(command: <String>[
artifacts.getArtifactPath(Artifact.engineDartBinary), artifacts.getHostArtifact(HostArtifact.engineDartBinary).path,
'--disable-dart-dev', '--disable-dart-dev',
artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk), artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk),
'--sdk-root', '--sdk-root',
...@@ -228,7 +228,7 @@ void main() { ...@@ -228,7 +228,7 @@ void main() {
final String build = androidEnvironment.buildDir.path; final String build = androidEnvironment.buildDir.path;
processManager.addCommands(<FakeCommand>[ processManager.addCommands(<FakeCommand>[
FakeCommand(command: <String>[ FakeCommand(command: <String>[
artifacts.getArtifactPath(Artifact.engineDartBinary), artifacts.getHostArtifact(HostArtifact.engineDartBinary).path,
'--disable-dart-dev', '--disable-dart-dev',
artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk), artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk),
'--sdk-root', '--sdk-root',
...@@ -265,7 +265,7 @@ void main() { ...@@ -265,7 +265,7 @@ void main() {
final String build = androidEnvironment.buildDir.path; final String build = androidEnvironment.buildDir.path;
processManager.addCommands(<FakeCommand>[ processManager.addCommands(<FakeCommand>[
FakeCommand(command: <String>[ FakeCommand(command: <String>[
artifacts.getArtifactPath(Artifact.engineDartBinary), artifacts.getHostArtifact(HostArtifact.engineDartBinary).path,
'--disable-dart-dev', '--disable-dart-dev',
artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk), artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk),
'--sdk-root', '--sdk-root',
...@@ -314,7 +314,7 @@ void main() { ...@@ -314,7 +314,7 @@ void main() {
final String build = testEnvironment.buildDir.path; final String build = testEnvironment.buildDir.path;
processManager.addCommands(<FakeCommand>[ processManager.addCommands(<FakeCommand>[
FakeCommand(command: <String>[ FakeCommand(command: <String>[
artifacts.getArtifactPath(Artifact.engineDartBinary), artifacts.getHostArtifact(HostArtifact.engineDartBinary).path,
'--disable-dart-dev', '--disable-dart-dev',
artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk), artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk),
'--sdk-root', '--sdk-root',
......
...@@ -96,7 +96,7 @@ void main() { ...@@ -96,7 +96,7 @@ void main() {
outputPreferences: OutputPreferences.test(showColor: false), outputPreferences: OutputPreferences.test(showColor: false),
); );
dartPath = artifacts.getArtifactPath(Artifact.engineDartBinary); dartPath = artifacts.getHostArtifact(HostArtifact.engineDartBinary).path;
constFinderPath = artifacts.getArtifactPath(Artifact.constFinder); constFinderPath = artifacts.getArtifactPath(Artifact.constFinder);
fontSubsetPath = artifacts.getArtifactPath(Artifact.fontSubset); fontSubsetPath = artifacts.getArtifactPath(Artifact.fontSubset);
......
...@@ -54,7 +54,7 @@ void main() { ...@@ -54,7 +54,7 @@ void main() {
logger: logger, logger: logger,
processManager: FakeProcessManager.list(<FakeCommand>[ processManager: FakeProcessManager.list(<FakeCommand>[
FakeCommand(command: const <String>[ FakeCommand(command: const <String>[
'Artifact.engineDartBinary', 'HostArtifact.engineDartBinary',
'--disable-dart-dev', '--disable-dart-dev',
'Artifact.frontendServerSnapshotForEngineDartSdk', 'Artifact.frontendServerSnapshotForEngineDartSdk',
'--sdk-root', '--sdk-root',
...@@ -99,7 +99,7 @@ void main() { ...@@ -99,7 +99,7 @@ void main() {
logger: logger, logger: logger,
processManager: FakeProcessManager.list(<FakeCommand>[ processManager: FakeProcessManager.list(<FakeCommand>[
FakeCommand(command: const <String>[ FakeCommand(command: const <String>[
'Artifact.engineDartBinary', 'HostArtifact.engineDartBinary',
'--disable-dart-dev', '--disable-dart-dev',
'Artifact.frontendServerSnapshotForEngineDartSdk', 'Artifact.frontendServerSnapshotForEngineDartSdk',
'--sdk-root', '--sdk-root',
...@@ -144,7 +144,7 @@ void main() { ...@@ -144,7 +144,7 @@ void main() {
logger: logger, logger: logger,
processManager: FakeProcessManager.list(<FakeCommand>[ processManager: FakeProcessManager.list(<FakeCommand>[
FakeCommand(command: const <String>[ FakeCommand(command: const <String>[
'Artifact.engineDartBinary', 'HostArtifact.engineDartBinary',
'--disable-dart-dev', '--disable-dart-dev',
'Artifact.frontendServerSnapshotForEngineDartSdk', 'Artifact.frontendServerSnapshotForEngineDartSdk',
'--sdk-root', '--sdk-root',
...@@ -189,7 +189,7 @@ void main() { ...@@ -189,7 +189,7 @@ void main() {
logger: logger, logger: logger,
processManager: FakeProcessManager.list(<FakeCommand>[ processManager: FakeProcessManager.list(<FakeCommand>[
FakeCommand(command: const <String>[ FakeCommand(command: const <String>[
'Artifact.engineDartBinary', 'HostArtifact.engineDartBinary',
'--disable-dart-dev', '--disable-dart-dev',
'Artifact.frontendServerSnapshotForEngineDartSdk', 'Artifact.frontendServerSnapshotForEngineDartSdk',
'--sdk-root', '--sdk-root',
...@@ -236,7 +236,7 @@ void main() { ...@@ -236,7 +236,7 @@ void main() {
logger: logger, logger: logger,
processManager: FakeProcessManager.list(<FakeCommand>[ processManager: FakeProcessManager.list(<FakeCommand>[
FakeCommand(command: const <String>[ FakeCommand(command: const <String>[
'Artifact.engineDartBinary', 'HostArtifact.engineDartBinary',
'--disable-dart-dev', '--disable-dart-dev',
'Artifact.frontendServerSnapshotForEngineDartSdk', 'Artifact.frontendServerSnapshotForEngineDartSdk',
'--sdk-root', '--sdk-root',
...@@ -283,7 +283,7 @@ void main() { ...@@ -283,7 +283,7 @@ void main() {
logger: logger, logger: logger,
processManager: FakeProcessManager.list(<FakeCommand>[ processManager: FakeProcessManager.list(<FakeCommand>[
FakeCommand(command: const <String>[ FakeCommand(command: const <String>[
'Artifact.engineDartBinary', 'HostArtifact.engineDartBinary',
'--disable-dart-dev', '--disable-dart-dev',
'Artifact.frontendServerSnapshotForEngineDartSdk', 'Artifact.frontendServerSnapshotForEngineDartSdk',
'--sdk-root', '--sdk-root',
...@@ -334,7 +334,7 @@ void main() { ...@@ -334,7 +334,7 @@ void main() {
logger: logger, logger: logger,
processManager: FakeProcessManager.list(<FakeCommand>[ processManager: FakeProcessManager.list(<FakeCommand>[
FakeCommand(command: const <String>[ FakeCommand(command: const <String>[
'Artifact.engineDartBinary', 'HostArtifact.engineDartBinary',
'--disable-dart-dev', '--disable-dart-dev',
'Artifact.frontendServerSnapshotForEngineDartSdk', 'Artifact.frontendServerSnapshotForEngineDartSdk',
'--sdk-root', '--sdk-root',
......
...@@ -30,7 +30,7 @@ void main() { ...@@ -30,7 +30,7 @@ void main() {
FakeProcessManager fakeProcessManager; FakeProcessManager fakeProcessManager;
const List<String> frontendServerCommand = <String>[ const List<String> frontendServerCommand = <String>[
'Artifact.engineDartBinary', 'HostArtifact.engineDartBinary',
'--disable-dart-dev', '--disable-dart-dev',
'Artifact.frontendServerSnapshotForEngineDartSdk', 'Artifact.frontendServerSnapshotForEngineDartSdk',
'--sdk-root', '--sdk-root',
......
...@@ -13,7 +13,6 @@ import 'package:flutter_tools/src/artifacts.dart'; ...@@ -13,7 +13,6 @@ import 'package:flutter_tools/src/artifacts.dart';
import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/logger.dart';
import 'package:flutter_tools/src/base/platform.dart'; import 'package:flutter_tools/src/base/platform.dart';
import 'package:flutter_tools/src/build_info.dart';
import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/cache.dart';
import 'package:flutter_tools/src/ios/devices.dart'; import 'package:flutter_tools/src/ios/devices.dart';
import 'package:flutter_tools/src/ios/ios_deploy.dart'; import 'package:flutter_tools/src/ios/ios_deploy.dart';
...@@ -29,7 +28,7 @@ void main () { ...@@ -29,7 +28,7 @@ void main () {
setUp(() { setUp(() {
artifacts = Artifacts.test(); artifacts = Artifacts.test();
iosDeployPath = artifacts.getArtifactPath(Artifact.iosDeploy, platform: TargetPlatform.ios); iosDeployPath = artifacts.getHostArtifact(HostArtifact.iosDeploy).path;
fileSystem = MemoryFileSystem.test(); fileSystem = MemoryFileSystem.test();
}); });
......
...@@ -33,7 +33,7 @@ void main() { ...@@ -33,7 +33,7 @@ void main() {
setUp(() { setUp(() {
artifacts = Artifacts.test(); artifacts = Artifacts.test();
iosDeployPath = artifacts.getArtifactPath(Artifact.iosDeploy, platform: TargetPlatform.ios); iosDeployPath = artifacts.getHostArtifact(HostArtifact.iosDeploy).path;
}); });
testWithoutContext('IOSDevice.installApp calls ios-deploy correctly with USB', () async { testWithoutContext('IOSDevice.installApp calls ios-deploy correctly with USB', () async {
......
...@@ -8,7 +8,6 @@ import 'dart:async'; ...@@ -8,7 +8,6 @@ import 'dart:async';
import 'package:flutter_tools/src/artifacts.dart'; import 'package:flutter_tools/src/artifacts.dart';
import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/logger.dart';
import 'package:flutter_tools/src/build_info.dart';
import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/cache.dart';
import 'package:flutter_tools/src/convert.dart'; import 'package:flutter_tools/src/convert.dart';
import 'package:flutter_tools/src/device.dart'; import 'package:flutter_tools/src/device.dart';
...@@ -35,7 +34,7 @@ void main() { ...@@ -35,7 +34,7 @@ void main() {
fakeCache = Cache.test(processManager: FakeProcessManager.any()); fakeCache = Cache.test(processManager: FakeProcessManager.any());
artifacts = Artifacts.test(); artifacts = Artifacts.test();
logger = BufferLogger.test(); logger = BufferLogger.test();
ideviceSyslogPath = artifacts.getArtifactPath(Artifact.idevicesyslog, platform: TargetPlatform.ios); ideviceSyslogPath = artifacts.getHostArtifact(HostArtifact.idevicesyslog).path;
}); });
group('syslog stream', () { group('syslog stream', () {
......
...@@ -76,7 +76,7 @@ void main() { ...@@ -76,7 +76,7 @@ void main() {
setUp(() { setUp(() {
artifacts = Artifacts.test(); artifacts = Artifacts.test();
iosDeployPath = artifacts.getArtifactPath(Artifact.iosDeploy, platform: TargetPlatform.ios); iosDeployPath = artifacts.getHostArtifact(HostArtifact.iosDeploy).path;
}); });
group('IOSDevice.startApp succeeds in release mode', () { group('IOSDevice.startApp succeeds in release mode', () {
......
...@@ -30,7 +30,7 @@ import '../../src/fakes.dart'; ...@@ -30,7 +30,7 @@ import '../../src/fakes.dart';
// The command used to actually launch the app with args in release/profile. // The command used to actually launch the app with args in release/profile.
const FakeCommand kLaunchReleaseCommand = FakeCommand( const FakeCommand kLaunchReleaseCommand = FakeCommand(
command: <String>[ command: <String>[
'Artifact.iosDeploy.TargetPlatform.ios', 'HostArtifact.iosDeploy',
'--id', '--id',
'123', '123',
'--bundle', '--bundle',
...@@ -49,7 +49,7 @@ const FakeCommand kLaunchReleaseCommand = FakeCommand( ...@@ -49,7 +49,7 @@ const FakeCommand kLaunchReleaseCommand = FakeCommand(
// The command used to just launch the app with args in debug. // The command used to just launch the app with args in debug.
const FakeCommand kLaunchDebugCommand = FakeCommand(command: <String>[ const FakeCommand kLaunchDebugCommand = FakeCommand(command: <String>[
'Artifact.iosDeploy.TargetPlatform.ios', 'HostArtifact.iosDeploy',
'--id', '--id',
'123', '123',
'--bundle', '--bundle',
...@@ -69,7 +69,7 @@ const FakeCommand kAttachDebuggerCommand = FakeCommand(command: <String>[ ...@@ -69,7 +69,7 @@ const FakeCommand kAttachDebuggerCommand = FakeCommand(command: <String>[
'-t', '-t',
'0', '0',
'/dev/null', '/dev/null',
'Artifact.iosDeploy.TargetPlatform.ios', 'HostArtifact.iosDeploy',
'--id', '--id',
'123', '123',
'--bundle', '--bundle',
...@@ -214,7 +214,7 @@ void main() { ...@@ -214,7 +214,7 @@ void main() {
'-t', '-t',
'0', '0',
'/dev/null', '/dev/null',
'Artifact.iosDeploy.TargetPlatform.ios', 'HostArtifact.iosDeploy',
'--id', '--id',
'123', '123',
'--bundle', '--bundle',
......
...@@ -56,7 +56,7 @@ void main() { ...@@ -56,7 +56,7 @@ void main() {
// Let `idevicescreenshot` fail with exit code 1. // Let `idevicescreenshot` fail with exit code 1.
fakeProcessManager.addCommand(FakeCommand( fakeProcessManager.addCommand(FakeCommand(
command: <String>[ command: <String>[
'Artifact.idevicescreenshot.TargetPlatform.ios', 'HostArtifact.idevicescreenshot',
outputFile.path, outputFile.path,
'--udid', '--udid',
'1234', '1234',
...@@ -85,7 +85,7 @@ void main() { ...@@ -85,7 +85,7 @@ void main() {
testWithoutContext('idevicescreenshot captures and returns USB screenshot', () async { testWithoutContext('idevicescreenshot captures and returns USB screenshot', () async {
fakeProcessManager.addCommand(FakeCommand( fakeProcessManager.addCommand(FakeCommand(
command: <String>[ command: <String>[
'Artifact.idevicescreenshot.TargetPlatform.ios', outputFile.path, '--udid', '1234', 'HostArtifact.idevicescreenshot', outputFile.path, '--udid', '1234',
], ],
environment: const <String, String>{'DYLD_LIBRARY_PATH': '/path/to/libraries'}, environment: const <String, String>{'DYLD_LIBRARY_PATH': '/path/to/libraries'},
)); ));
...@@ -108,7 +108,7 @@ void main() { ...@@ -108,7 +108,7 @@ void main() {
testWithoutContext('idevicescreenshot captures and returns network screenshot', () async { testWithoutContext('idevicescreenshot captures and returns network screenshot', () async {
fakeProcessManager.addCommand(FakeCommand( fakeProcessManager.addCommand(FakeCommand(
command: <String>[ command: <String>[
'Artifact.idevicescreenshot.TargetPlatform.ios', outputFile.path, '--udid', '1234', '--network', 'HostArtifact.idevicescreenshot', outputFile.path, '--udid', '1234', '--network',
], ],
environment: const <String, String>{'DYLD_LIBRARY_PATH': '/path/to/libraries'}, environment: const <String, String>{'DYLD_LIBRARY_PATH': '/path/to/libraries'},
)); ));
......
...@@ -2105,12 +2105,12 @@ void main() { ...@@ -2105,12 +2105,12 @@ void main() {
expect(residentCompiler.initializeFromDill, expect(residentCompiler.initializeFromDill,
globals.fs.path.join(getBuildDirectory(), 'fbbe6a61fb7a1de317d381f8df4814e5.cache.dill')); globals.fs.path.join(getBuildDirectory(), 'fbbe6a61fb7a1de317d381f8df4814e5.cache.dill'));
expect(residentCompiler.librariesSpec, expect(residentCompiler.librariesSpec,
globals.fs.file(globals.artifacts.getArtifactPath(Artifact.flutterWebLibrariesJson)) globals.fs.file(globals.artifacts.getHostArtifact(HostArtifact.flutterWebLibrariesJson))
.uri.toString()); .uri.toString());
expect(residentCompiler.targetModel, TargetModel.dartdevc); expect(residentCompiler.targetModel, TargetModel.dartdevc);
expect(residentCompiler.sdkRoot, expect(residentCompiler.sdkRoot,
globals.artifacts.getArtifactPath(Artifact.flutterWebSdk, mode: BuildMode.debug) + '/'); globals.artifacts.getHostArtifact(HostArtifact.flutterWebSdk).path + '/');
expect(residentCompiler.platformDill, 'file:///Artifact.webPlatformKernelDill.debug'); expect(residentCompiler.platformDill, 'file:///HostArtifact.webPlatformKernelDill');
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Artifacts: () => Artifacts.test(), Artifacts: () => Artifacts.test(),
FileSystem: () => MemoryFileSystem.test(), FileSystem: () => MemoryFileSystem.test(),
...@@ -2136,12 +2136,12 @@ void main() { ...@@ -2136,12 +2136,12 @@ void main() {
expect(residentCompiler.initializeFromDill, expect(residentCompiler.initializeFromDill,
globals.fs.path.join(getBuildDirectory(), '825b8f791aa86c5057fff6f064542c54.cache.dill')); globals.fs.path.join(getBuildDirectory(), '825b8f791aa86c5057fff6f064542c54.cache.dill'));
expect(residentCompiler.librariesSpec, expect(residentCompiler.librariesSpec,
globals.fs.file(globals.artifacts.getArtifactPath(Artifact.flutterWebLibrariesJson)) globals.fs.file(globals.artifacts.getHostArtifact(HostArtifact.flutterWebLibrariesJson))
.uri.toString()); .uri.toString());
expect(residentCompiler.targetModel, TargetModel.dartdevc); expect(residentCompiler.targetModel, TargetModel.dartdevc);
expect(residentCompiler.sdkRoot, expect(residentCompiler.sdkRoot,
globals.artifacts.getArtifactPath(Artifact.flutterWebSdk, mode: BuildMode.debug) + '/'); globals.artifacts.getHostArtifact(HostArtifact.flutterWebSdk).path + '/');
expect(residentCompiler.platformDill, 'file:///Artifact.webPlatformSoundKernelDill.debug'); expect(residentCompiler.platformDill, 'file:///HostArtifact.webPlatformSoundKernelDill');
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Artifacts: () => Artifacts.test(), Artifacts: () => Artifacts.test(),
FileSystem: () => MemoryFileSystem.test(), FileSystem: () => MemoryFileSystem.test(),
......
...@@ -639,13 +639,13 @@ void main() { ...@@ -639,13 +639,13 @@ void main() {
final Uri uri = await webDevFS.create(); final Uri uri = await webDevFS.create();
webDevFS.webAssetServer.entrypointCacheDirectory = globals.fs.currentDirectory; webDevFS.webAssetServer.entrypointCacheDirectory = globals.fs.currentDirectory;
final String webPrecompiledSdk = globals.artifacts final String webPrecompiledSdk = globals.artifacts
.getArtifactPath(Artifact.webPrecompiledSdk); .getHostArtifact(HostArtifact.webPrecompiledSdk).path;
final String webPrecompiledSdkSourcemaps = globals.artifacts final String webPrecompiledSdkSourcemaps = globals.artifacts
.getArtifactPath(Artifact.webPrecompiledSdkSourcemaps); .getHostArtifact(HostArtifact.webPrecompiledSdkSourcemaps).path;
final String webPrecompiledCanvaskitSdk = globals.artifacts final String webPrecompiledCanvaskitSdk = globals.artifacts
.getArtifactPath(Artifact.webPrecompiledCanvaskitSdk); .getHostArtifact(HostArtifact.webPrecompiledCanvaskitSdk).path;
final String webPrecompiledCanvaskitSdkSourcemaps = globals.artifacts final String webPrecompiledCanvaskitSdkSourcemaps = globals.artifacts
.getArtifactPath(Artifact.webPrecompiledCanvaskitSdkSourcemaps); .getHostArtifact(HostArtifact.webPrecompiledCanvaskitSdkSourcemaps).path;
globals.fs.currentDirectory globals.fs.currentDirectory
.childDirectory('lib') .childDirectory('lib')
.childFile('web_entrypoint.dart') .childFile('web_entrypoint.dart')
...@@ -762,13 +762,13 @@ void main() { ...@@ -762,13 +762,13 @@ void main() {
..createSync(recursive: true) ..createSync(recursive: true)
..writeAsStringSync('GENERATED'); ..writeAsStringSync('GENERATED');
final String webPrecompiledSdk = globals.artifacts final String webPrecompiledSdk = globals.artifacts
.getArtifactPath(Artifact.webPrecompiledSoundSdk); .getHostArtifact(HostArtifact.webPrecompiledSoundSdk).path;
final String webPrecompiledSdkSourcemaps = globals.artifacts final String webPrecompiledSdkSourcemaps = globals.artifacts
.getArtifactPath(Artifact.webPrecompiledSoundSdkSourcemaps); .getHostArtifact(HostArtifact.webPrecompiledSoundSdkSourcemaps).path;
final String webPrecompiledCanvaskitSdk = globals.artifacts final String webPrecompiledCanvaskitSdk = globals.artifacts
.getArtifactPath(Artifact.webPrecompiledCanvaskitSoundSdk); .getHostArtifact(HostArtifact.webPrecompiledCanvaskitSoundSdk).path;
final String webPrecompiledCanvaskitSdkSourcemaps = globals.artifacts final String webPrecompiledCanvaskitSdkSourcemaps = globals.artifacts
.getArtifactPath(Artifact.webPrecompiledCanvaskitSoundSdkSourcemaps); .getHostArtifact(HostArtifact.webPrecompiledCanvaskitSoundSdkSourcemaps).path;
globals.fs.file(webPrecompiledSdk) globals.fs.file(webPrecompiledSdk)
..createSync(recursive: true) ..createSync(recursive: true)
..writeAsStringSync('HELLO'); ..writeAsStringSync('HELLO');
......
...@@ -233,7 +233,7 @@ Future<void> _analyzeProject(Directory workingDir) async { ...@@ -233,7 +233,7 @@ Future<void> _analyzeProject(Directory workingDir) async {
]; ];
final ProcessResult exec = await Process.run( final ProcessResult exec = await Process.run(
globals.artifacts.getArtifactPath(Artifact.engineDartBinary), globals.artifacts.getHostArtifact(HostArtifact.engineDartBinary).path,
args, args,
workingDirectory: workingDir.path, workingDirectory: workingDir.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