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