Commit f3f2747a authored by Michael Goderbauer's avatar Michael Goderbauer Committed by GitHub

Unify engineDirs and toolsDir in Cache of Flutter Tools. (#7644)

The zip files downloaded from cloud storage are not clearly separated
into engine artifacts and tools anyways.

Also, because of this unclear separation, we were downloading
`linux-x64/artifacts.zip` twice before.
parent 7c40446a
......@@ -254,51 +254,55 @@ class FlutterEngine {
List<String> _getPackageDirs() => const <String>[kSkyEngine];
List<String> _getEngineDirs() {
List<String> dirs = <String>[
'android-arm',
'android-arm-profile',
'android-arm-release',
'android-x64',
'android-x86',
];
// Return a list of (cache directory path, download URL path) tuples.
List<List<String>> _getBinaryDirs() {
List<List<String>> binaryDirs = <List<String>>[];
if (cache.includeAllPlatforms)
dirs.addAll(<String>['ios', 'ios-profile', 'ios-release', 'linux-x64']);
else if (platform.isMacOS)
dirs.addAll(<String>['ios', 'ios-profile', 'ios-release']);
binaryDirs
..addAll(_osxBinaryDirs)
..addAll(_linuxBinaryDirs)
..addAll(_androidBinaryDirs)
..addAll(_iosBinaryDirs);
else if (platform.isLinux)
dirs.add('linux-x64');
return dirs;
}
// Return a list of (cache directory path, download URL path) tuples.
List<List<String>> _getToolsDirs() {
if (cache.includeAllPlatforms)
return <List<String>>[]
..addAll(_osxToolsDirs)
..addAll(_linuxToolsDirs);
binaryDirs
..addAll(_linuxBinaryDirs)
..addAll(_androidBinaryDirs);
else if (platform.isMacOS)
return _osxToolsDirs;
else if (platform.isLinux)
return _linuxToolsDirs;
else
return <List<String>>[];
binaryDirs
..addAll(_osxBinaryDirs)
..addAll(_androidBinaryDirs)
..addAll(_iosBinaryDirs);
return binaryDirs;
}
List<List<String>> get _osxToolsDirs => <List<String>>[
List<List<String>> get _osxBinaryDirs => <List<String>>[
<String>['darwin-x64', 'darwin-x64/artifacts.zip'],
<String>['android-arm-profile/darwin-x64', 'android-arm-profile/darwin-x64.zip'],
<String>['android-arm-release/darwin-x64', 'android-arm-release/darwin-x64.zip'],
];
List<List<String>> get _linuxToolsDirs => <List<String>>[
List<List<String>> get _linuxBinaryDirs => <List<String>>[
<String>['linux-x64', 'linux-x64/artifacts.zip'],
<String>['android-arm-profile/linux-x64', 'android-arm-profile/linux-x64.zip'],
<String>['android-arm-release/linux-x64', 'android-arm-release/linux-x64.zip'],
];
List<List<String>> get _androidBinaryDirs => <List<String>>[
<String>['android-x86', 'android-x86/artifacts.zip'],
<String>['android-x64', 'android-x64/artifacts.zip'],
<String>['android-arm', 'android-arm/artifacts.zip'],
<String>['android-arm-profile', 'android-arm-profile/artifacts.zip'],
<String>['android-arm-release', 'android-arm-release/artifacts.zip'],
];
List<List<String>> get _iosBinaryDirs => <List<String>>[
<String>['ios', 'ios/artifacts.zip'],
<String>['ios-profile', 'ios-profile/artifacts.zip'],
<String>['ios-release', 'ios-release/artifacts.zip'],
];
bool isUpToDate() {
Directory pkgDir = cache.getCacheDir('pkg');
for (String pkgName in _getPackageDirs()) {
......@@ -317,13 +321,7 @@ class FlutterEngine {
return false;
Directory engineDir = cache.getArtifactDirectory(kName);
for (String dirName in _getEngineDirs()) {
Directory dir = fs.directory(path.join(engineDir.path, dirName));
if (!dir.existsSync())
return false;
}
for (List<String> toolsDir in _getToolsDirs()) {
for (List<String> toolsDir in _getBinaryDirs()) {
Directory dir = fs.directory(path.join(engineDir.path, toolsDir[0]));
if (!dir.existsSync())
return false;
......@@ -366,10 +364,14 @@ class FlutterEngine {
if (engineDir.existsSync())
engineDir.deleteSync(recursive: true);
for (String dirName in _getEngineDirs()) {
Directory dir = fs.directory(path.join(engineDir.path, dirName));
await _downloadItem('Downloading engine artifacts $dirName...',
url + dirName + '/artifacts.zip', dir);
for (List<String> toolsDir in _getBinaryDirs()) {
String cacheDir = toolsDir[0];
String urlPath = toolsDir[1];
Directory dir = fs.directory(path.join(engineDir.path, cacheDir));
await _downloadItem('Downloading $cacheDir tools...', url + urlPath, dir);
_makeFilesExecutable(dir);
File frameworkZip = fs.file(path.join(dir.path, 'Flutter.framework.zip'));
if (frameworkZip.existsSync()) {
Directory framework = fs.directory(path.join(dir.path, 'Flutter.framework'));
......@@ -378,14 +380,6 @@ class FlutterEngine {
}
}
for (List<String> toolsDir in _getToolsDirs()) {
String cacheDir = toolsDir[0];
String urlPath = toolsDir[1];
Directory dir = fs.directory(path.join(engineDir.path, cacheDir));
await _downloadItem('Downloading $cacheDir tools...', url + urlPath, dir);
_makeFilesExecutable(dir);
}
cache.setStampFor(kName, cache.getVersionFor(kName));
}
......
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