diff --git a/web_sdk/BUILD.gn b/web_sdk/BUILD.gn index 78d8b290825..f7d9267a237 100644 --- a/web_sdk/BUILD.gn +++ b/web_sdk/BUILD.gn @@ -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) { diff --git a/web_sdk/sdk_rewriter.dart b/web_sdk/sdk_rewriter.dart index ad49a3d4afa..dad61012a05 100644 --- a/web_sdk/sdk_rewriter.dart +++ b/web_sdk/sdk_rewriter.dart @@ -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> uiPatterns = >[ ['library ui;', 'library dart.ui;'], ['part of ui;', 'part of dart.ui;'], [ -r''' + r''' import 'src/engine.dart' as engine; ''', -r''' + r''' import 'dart:_engine' as engine; ''' ], [ -r''' + r''' export 'src/engine.dart' ''', -r''' + r''' export 'dart:_engine' ''', ] @@ -39,17 +40,17 @@ const List> enginePatterns = >[ ['library engine;', 'library dart._engine;'], ['part of engine;', 'part of dart._engine;'], [ -r''' + r''' import '../ui.dart' as ui; ''', -r''' + r''' import 'dart:ui' as ui; ''' ] ]; const List> sharedPatterns = >[ - ["import 'package:meta/meta.dart';" ,''], + ["import 'package:meta/meta.dart';", ''], ['@required', ''], ['@protected', ''], ['@mustCallSuper', ''], @@ -65,7 +66,8 @@ void main(List 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> replacementPatterns = >[]; @@ -79,5 +81,8 @@ void main(List arguments) { source = source.replaceAll(patterns.first, patterns.last); } outputFile.writeAsStringSync(source); + if (results['stamp'] != null) { + File(results['stamp']).writeAsStringSync("stamp"); + } } }