pass --skip-build-script-checks and remove module usage (#28343)
This commit is contained in:
parent
e5ceabfd47
commit
60730a979b
@ -1,20 +1,5 @@
|
||||
# Read about `build.yaml` at https://pub.dartlang.org/packages/build_config
|
||||
builders:
|
||||
flutter:
|
||||
import: "package:build_modules/builders.dart"
|
||||
builder_factories:
|
||||
- metaModuleBuilderFactoryForPlatform('flutter')
|
||||
- metaModuleCleanBuilderFactoryForPlatform('flutter')
|
||||
- moduleBuilderFactoryForPlatform('flutter')
|
||||
applies_builders: ["build_modules|module_cleanup"]
|
||||
build_extensions:
|
||||
$lib$:
|
||||
- .flutter.meta_module.raw
|
||||
- .flutter.meta_module.clean
|
||||
.dart:
|
||||
- .flutter.module
|
||||
auto_apply: all_packages
|
||||
required_inputs: [".dart", ".module.library"]
|
||||
kernel:
|
||||
import: "package:flutter_build/flutter_build.dart"
|
||||
builder_factories:
|
||||
|
@ -7,8 +7,6 @@
|
||||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:build_modules/build_modules.dart';
|
||||
import 'package:build/build.dart';
|
||||
import 'package:package_config/packages_file.dart' as packages_file;
|
||||
import 'package:meta/meta.dart';
|
||||
@ -16,6 +14,7 @@ import 'package:path/path.dart' as path;
|
||||
|
||||
const String _kFlutterDillOutputExtension = '.app.dill';
|
||||
const String _kPackagesExtension = '.packages';
|
||||
const String _kMultirootScheme = 'org-dartlang-app';
|
||||
|
||||
/// A builder which creates a kernel and packages file for a Flutter app.
|
||||
///
|
||||
@ -85,28 +84,13 @@ class FlutterKernelBuilder implements Builder {
|
||||
@override
|
||||
Future<void> build(BuildStep buildStep) async {
|
||||
// Do not resolve dependencies if this does not correspond to the main
|
||||
// entrypoint.
|
||||
if (!mainPath.contains(buildStep.inputId.path)) {
|
||||
// entrypoint. Do not generate kernel if it has been disabled.
|
||||
if (!mainPath.contains(buildStep.inputId.path) || disabled) {
|
||||
return;
|
||||
}
|
||||
final AssetId outputId = buildStep.inputId.changeExtension(_kFlutterDillOutputExtension);
|
||||
final AssetId packagesOutputId = buildStep.inputId.changeExtension(_kPackagesExtension);
|
||||
|
||||
// Use modules to verify dependencies are sound.
|
||||
final AssetId moduleId = buildStep.inputId.changeExtension(moduleExtension(DartPlatform.flutter));
|
||||
final Module module = Module.fromJson(json.decode(await buildStep.readAsString(moduleId)));
|
||||
try {
|
||||
await module.computeTransitiveDependencies(buildStep);
|
||||
} on MissingModulesException catch (err) {
|
||||
log.shout(err);
|
||||
return;
|
||||
}
|
||||
|
||||
// Do not generate kernel if it has been disabled.
|
||||
if (disabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Create a scratch space file that can be read/written by the frontend server.
|
||||
// It is okay to hard-code these file names because we will copy them back
|
||||
// from the temp directory at the end of the build step.
|
||||
@ -122,7 +106,7 @@ class FlutterKernelBuilder implements Builder {
|
||||
// Note: currently we only replace the root package with a multiroot
|
||||
// scheme. To support codegen on arbitrary packages we will need to do
|
||||
// this for each dependency.
|
||||
final String newPackagesContents = oldPackagesContents.replaceFirst('$packageName:lib/', '$packageName:$multiRootScheme:/');
|
||||
final String newPackagesContents = oldPackagesContents.replaceFirst('$packageName:lib/', '$packageName:$_kMultirootScheme:/');
|
||||
await packagesFile.writeAsString(newPackagesContents);
|
||||
String absoluteMainPath;
|
||||
if (path.isAbsolute(mainPath)) {
|
||||
@ -167,7 +151,7 @@ class FlutterKernelBuilder implements Builder {
|
||||
'--filesystem-root',
|
||||
generatedRoot,
|
||||
'--filesystem-scheme',
|
||||
multiRootScheme,
|
||||
_kMultirootScheme,
|
||||
]);
|
||||
if (extraFrontEndOptions != null) {
|
||||
arguments.addAll(extraFrontEndOptions);
|
||||
@ -175,7 +159,7 @@ class FlutterKernelBuilder implements Builder {
|
||||
final Uri mainUri = _PackageUriMapper.findUri(
|
||||
absoluteMainPath,
|
||||
packagesFile.path,
|
||||
multiRootScheme,
|
||||
_kMultirootScheme,
|
||||
<String>[normalRoot, generatedRoot],
|
||||
);
|
||||
arguments.add(mainUri?.toString() ?? absoluteMainPath);
|
||||
|
@ -7,38 +7,26 @@ environment:
|
||||
dependencies:
|
||||
# To update these, use "flutter update-packages --force-upgrade".
|
||||
build: 1.1.1
|
||||
build_modules: 1.0.8
|
||||
package_config: 1.0.5
|
||||
path: 1.6.2
|
||||
|
||||
analyzer: 0.35.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
async: 2.0.8 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
bazel_worker: 0.1.20 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
build_config: 0.3.1+4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
collection: 1.14.11 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
convert: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
crypto: 2.0.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
csslib: 0.14.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
fixnum: 0.10.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
front_end: 0.1.12 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
glob: 1.1.7 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
graphs: 0.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
html: 0.13.3+3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
json_annotation: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
kernel: 0.3.12 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
logging: 0.11.3+2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
meta: 1.1.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
pedantic: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
plugin: 0.2.0+3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
pool: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
protobuf: 0.13.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
pub_semver: 1.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
pubspec_parse: 0.1.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
scratch_space: 0.0.3+2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
source_span: 1.5.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
stack_trace: 1.9.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
string_scanner: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
term_glyph: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
typed_data: 1.1.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
@ -50,4 +38,4 @@ dartdoc:
|
||||
# Exclude this package from the hosted API docs.
|
||||
nodoc: true
|
||||
|
||||
# PUBSPEC CHECKSUM: 3267
|
||||
# PUBSPEC CHECKSUM: 6ccf
|
||||
|
@ -72,6 +72,7 @@ class BuildRunner extends CodeGenerator {
|
||||
'--packages=$scriptPackagesPath',
|
||||
buildScript,
|
||||
'build',
|
||||
'--skip-build-script-check',
|
||||
'--define', 'flutter_build|kernel=disabled=$disableKernelGeneration',
|
||||
'--define', 'flutter_build|kernel=aot=$aot',
|
||||
'--define', 'flutter_build|kernel=linkPlatformKernelIn=$linkPlatformKernelIn',
|
||||
@ -157,9 +158,11 @@ class BuildRunner extends CodeGenerator {
|
||||
stringBuffer.writeln('name: flutter_tool');
|
||||
stringBuffer.writeln('dependencies:');
|
||||
final YamlMap builders = await flutterProject.builders;
|
||||
for (String name in builders.keys) {
|
||||
final YamlNode node = builders[name];
|
||||
stringBuffer.writeln(' $name: $node');
|
||||
if (builders != null) {
|
||||
for (String name in builders.keys) {
|
||||
final YamlNode node = builders[name];
|
||||
stringBuffer.writeln(' $name: $node');
|
||||
}
|
||||
}
|
||||
stringBuffer.writeln(' build_runner: any');
|
||||
stringBuffer.writeln(' flutter_build:');
|
||||
@ -217,6 +220,7 @@ class BuildRunner extends CodeGenerator {
|
||||
'--packages=$scriptPackagesPath',
|
||||
buildScript,
|
||||
'daemon',
|
||||
'--skip-build-script-check',
|
||||
'--define', 'flutter_build|kernel=disabled=false',
|
||||
'--define', 'flutter_build|kernel=aot=false',
|
||||
'--define', 'flutter_build|kernel=linkPlatformKernelIn=$linkPlatformKernelIn',
|
||||
@ -251,18 +255,22 @@ class _BuildRunnerCodegenDaemon implements CodegenDaemon {
|
||||
final File packagesFile;
|
||||
@override
|
||||
final File dillFile;
|
||||
@override
|
||||
CodegenStatus get lastStatus => _lastStatus;
|
||||
CodegenStatus _lastStatus;
|
||||
|
||||
@override
|
||||
Stream<CodegenStatus> get buildResults => buildDaemonClient.buildResults.map((build.BuildResults results) {
|
||||
if (results.results.first.status == BuildStatus.failed) {
|
||||
return CodegenStatus.Failed;
|
||||
return _lastStatus = CodegenStatus.Failed;
|
||||
}
|
||||
if (results.results.first.status == BuildStatus.started) {
|
||||
return CodegenStatus.Started;
|
||||
return _lastStatus = CodegenStatus.Started;
|
||||
}
|
||||
if (results.results.first.status == BuildStatus.succeeded) {
|
||||
return CodegenStatus.Succeeded;
|
||||
return _lastStatus = CodegenStatus.Succeeded;
|
||||
}
|
||||
_lastStatus = null;
|
||||
return null;
|
||||
});
|
||||
|
||||
|
@ -134,6 +134,8 @@ abstract class CodegenDaemon {
|
||||
/// Whether the previously enqueued build was successful.
|
||||
Stream<CodegenStatus> get buildResults;
|
||||
|
||||
CodegenStatus get lastStatus;
|
||||
|
||||
/// Starts a new build.
|
||||
void startBuild();
|
||||
|
||||
@ -265,11 +267,12 @@ class CodeGeneratingResidentCompiler implements ResidentCompiler {
|
||||
|
||||
@override
|
||||
Future<CompilerOutput> recompile(String mainPath, List<String> invalidatedFiles, {String outputPath, String packagesFilePath}) async {
|
||||
_codegenDaemon.startBuild();
|
||||
final CodegenStatus status = await _codegenDaemon.buildResults.firstWhere((CodegenStatus status) {
|
||||
return status ==CodegenStatus.Succeeded || status == CodegenStatus.Failed;
|
||||
});
|
||||
if (status == CodegenStatus.Failed) {
|
||||
if (_codegenDaemon.lastStatus != CodegenStatus.Succeeded && _codegenDaemon.lastStatus != CodegenStatus.Failed) {
|
||||
await _codegenDaemon.buildResults.firstWhere((CodegenStatus status) {
|
||||
return status ==CodegenStatus.Succeeded || status == CodegenStatus.Failed;
|
||||
});
|
||||
}
|
||||
if (_codegenDaemon.lastStatus == CodegenStatus.Failed) {
|
||||
printError('Codegeneration failed, halting build.');
|
||||
}
|
||||
// Delete this file so that the frontend_server can handle multi-root.
|
||||
|
@ -51,7 +51,7 @@ dependencies:
|
||||
code_builder: 3.2.0
|
||||
build: 1.1.1
|
||||
build_modules: 1.0.8
|
||||
build_daemon: 0.4.0
|
||||
build_daemon: 0.4.1
|
||||
|
||||
async: 2.0.8 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
bazel_worker: 0.1.20 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||
@ -115,4 +115,4 @@ dartdoc:
|
||||
# Exclude this package from the hosted API docs.
|
||||
nodoc: true
|
||||
|
||||
# PUBSPEC CHECKSUM: 43e3
|
||||
# PUBSPEC CHECKSUM: e6e4
|
||||
|
Loading…
x
Reference in New Issue
Block a user