Teach web_sdk/sdk_rewritter.dart how to write a stamp file. (#19114)

This commit is contained in:
Eric Seidel 2020-06-18 19:53:03 -07:00 committed by GitHub
parent 46b0a90f1b
commit f5a4ea7d83
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 17 deletions

View File

@ -45,14 +45,16 @@ prebuilt_dart_action("web_ui_sources") {
output_dir = rebase_path("$root_out_dir/flutter_web_sdk/lib/ui/")
input_dir = rebase_path("//flutter/lib/web_ui/lib/")
outputs = [
"$target_gen_dir/$target_name.stamp",
]
args = [
"--output-dir=$output_dir",
"--input-dir=$input_dir",
"--ui",
]
outputs = [
"$root_out_dir/flutter_web_engine_sdk_stamp",
"--stamp",
rebase_path(outputs[0], root_build_dir),
]
foreach(source_file, web_ui_sources) {
@ -69,14 +71,16 @@ prebuilt_dart_action("web_engine_sources") {
output_dir = rebase_path("$root_out_dir/flutter_web_sdk/lib/_engine/")
input_dir = rebase_path("//flutter/lib/web_ui/lib/src/")
outputs = [
"$target_gen_dir/$target_name.stamp",
]
args = [
"--output-dir=$output_dir",
"--input-dir=$input_dir",
"--engine",
]
outputs = [
"$root_out_dir/flutter_web_sdk_stamp",
"--stamp",
rebase_path(outputs[0], root_build_dir),
]
foreach(source_file, web_engine_sources) {

View File

@ -12,24 +12,25 @@ final ArgParser argParser = ArgParser()
..addOption('input-dir')
..addFlag('ui', defaultsTo: false)
..addFlag('engine', defaultsTo: false)
..addMultiOption('input');
..addMultiOption('input')
..addOption('stamp');
const List<List<String>> uiPatterns = <List<String>>[
<String>['library ui;', 'library dart.ui;'],
<String>['part of ui;', 'part of dart.ui;'],
<String>[
r'''
r'''
import 'src/engine.dart' as engine;
''',
r'''
r'''
import 'dart:_engine' as engine;
'''
],
<String>[
r'''
r'''
export 'src/engine.dart'
''',
r'''
r'''
export 'dart:_engine'
''',
]
@ -39,17 +40,17 @@ const List<List<String>> enginePatterns = <List<String>>[
<String>['library engine;', 'library dart._engine;'],
<String>['part of engine;', 'part of dart._engine;'],
<String>[
r'''
r'''
import '../ui.dart' as ui;
''',
r'''
r'''
import 'dart:ui' as ui;
'''
]
];
const List<List<String>> sharedPatterns = <List<String>>[
<String>["import 'package:meta/meta.dart';" ,''],
<String>["import 'package:meta/meta.dart';", ''],
<String>['@required', ''],
<String>['@protected', ''],
<String>['@mustCallSuper', ''],
@ -65,7 +66,8 @@ void main(List<String> arguments) {
final String inputDirectoryPath = results['input-dir'];
for (String inputFilePath in results['input']) {
final File inputFile = File(inputFilePath);
final File outputFile = File(path.join(directory.path, inputFile.path.substring(inputDirectoryPath.length)))
final File outputFile = File(path.join(
directory.path, inputFile.path.substring(inputDirectoryPath.length)))
..createSync(recursive: true);
String source = inputFile.readAsStringSync();
final List<List<String>> replacementPatterns = <List<String>>[];
@ -79,5 +81,8 @@ void main(List<String> arguments) {
source = source.replaceAll(patterns.first, patterns.last);
}
outputFile.writeAsStringSync(source);
if (results['stamp'] != null) {
File(results['stamp']).writeAsStringSync("stamp");
}
}
}