51 lines
1.9 KiB
Dart
51 lines
1.9 KiB
Dart
// Copyright 2014 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import '../asset.dart';
|
|
import '../base/common.dart';
|
|
import '../base/file_system.dart';
|
|
import '../base/logger.dart';
|
|
import '../base/platform.dart';
|
|
import '../build_info.dart';
|
|
import '../cmake_project.dart';
|
|
|
|
/// Generate an install manifest that is required for CMAKE on UWP projects.
|
|
Future<void> createManifest({
|
|
required Logger logger,
|
|
required FileSystem fileSystem,
|
|
required Platform platform,
|
|
required WindowsUwpProject project,
|
|
required BuildInfo buildInfo,
|
|
required Directory buildDirectory,
|
|
}) async {
|
|
final List<File> outputs = <File>[];
|
|
final AssetBundle assetBundle = AssetBundleFactory.defaultInstance(
|
|
logger: logger,
|
|
fileSystem: fileSystem,
|
|
platform: platform,
|
|
).createBundle();
|
|
final int resultCode = await assetBundle.build(
|
|
packagesPath: buildInfo.packagesPath,
|
|
assetDirPath: buildDirectory.childDirectory('flutter_assets').path,
|
|
);
|
|
if (resultCode != 0) {
|
|
throwToolExit('Failed to build assets.');
|
|
}
|
|
|
|
if (buildInfo.mode.isPrecompiled) {
|
|
outputs.add(buildDirectory.childFile('app.so'));
|
|
} else {
|
|
outputs.add(buildDirectory.parent.childDirectory('flutter_assets').childFile('kernel_blob.bin'));
|
|
}
|
|
for (final String key in assetBundle.entries.keys) {
|
|
outputs.add(buildDirectory.parent.childDirectory('flutter_assets').childFile(key));
|
|
}
|
|
outputs.add(project.ephemeralDirectory.childFile('flutter_windows_winuwp.dll'));
|
|
outputs.add(project.ephemeralDirectory.childFile('flutter_windows_winuwp.dll.pdb'));
|
|
outputs.add(project.ephemeralDirectory.childFile('icudtl.dat'));
|
|
project.ephemeralDirectory.childFile('install_manifest')
|
|
..createSync(recursive: true)
|
|
..writeAsStringSync(outputs.map((File file) => file.absolute.uri.path.substring(1)).join('\n'));
|
|
}
|