@@ -328,7 +328,7 @@ class KernelCompiler {
328328 dartPluginRegistrant.path,
329329 '--source' ,
330330 'package:flutter/src/dart_plugin_registrant.dart' ,
331- '-Dflutter.dart_plugin_registrant=${dartPluginRegistrant .uri }' ,
331+ '-Dflutter.dart_plugin_registrant=${toMultiRootPath ( dartPluginRegistrant .uri , _fileSystemScheme , _fileSystemRoots , _fileSystem . path . separator == r'\' ) }' ,
332332 ],
333333 // See: https://github.com/flutter/flutter/issues/103994
334334 '--verbosity=error' ,
@@ -375,15 +375,15 @@ class _RecompileRequest extends _CompilationRequest {
375375 this .outputPath,
376376 this .packageConfig,
377377 this .suppressErrors,
378- {this .additionalSource }
378+ {this .additionalSourceUri }
379379 );
380380
381381 Uri mainUri;
382382 List <Uri >? invalidatedFiles;
383383 String outputPath;
384384 PackageConfig packageConfig;
385385 bool suppressErrors;
386- final String ? additionalSource ;
386+ final Uri ? additionalSourceUri ;
387387
388388 @override
389389 Future <CompilerOutput ?> _run (DefaultResidentCompiler compiler) async =>
@@ -499,6 +499,7 @@ abstract class ResidentCompiler {
499499 String ? projectRootPath,
500500 bool suppressErrors = false ,
501501 bool checkDartPluginRegistry = false ,
502+ File ? dartPluginRegistrant,
502503 });
503504
504505 Future <CompilerOutput ?> compileExpression (
@@ -642,27 +643,18 @@ class DefaultResidentCompiler implements ResidentCompiler {
642643 required PackageConfig packageConfig,
643644 bool suppressErrors = false ,
644645 bool checkDartPluginRegistry = false ,
646+ File ? dartPluginRegistrant,
645647 String ? projectRootPath,
646648 FileSystem ? fs,
647649 }) async {
648650 assert (outputPath != null );
649651 if (! _controller.hasListener) {
650652 _controller.stream.listen (_handleCompilationRequest);
651653 }
652- String ? additionalSource ;
654+ Uri ? additionalSourceUri ;
653655 // `dart_plugin_registrant.dart` contains the Dart plugin registry.
654- if (checkDartPluginRegistry && projectRootPath != null && fs != null ) {
655- final File dartPluginRegistrantDart = fs.file (
656- fs.path.join (
657- projectRootPath,
658- '.dart_tool' ,
659- 'flutter_build' ,
660- 'dart_plugin_registrant.dart' ,
661- ),
662- );
663- if (dartPluginRegistrantDart != null && dartPluginRegistrantDart.existsSync ()) {
664- additionalSource = dartPluginRegistrantDart.path;
665- }
656+ if (checkDartPluginRegistry && dartPluginRegistrant != null && dartPluginRegistrant.existsSync ()) {
657+ additionalSourceUri = dartPluginRegistrant.uri;
666658 }
667659 final Completer <CompilerOutput ?> completer = Completer <CompilerOutput ?>();
668660 _controller.add (_RecompileRequest (
@@ -672,7 +664,7 @@ class DefaultResidentCompiler implements ResidentCompiler {
672664 outputPath,
673665 packageConfig,
674666 suppressErrors,
675- additionalSource : additionalSource ,
667+ additionalSourceUri : additionalSourceUri ,
676668 ));
677669 return completer.future;
678670 }
@@ -685,9 +677,15 @@ class DefaultResidentCompiler implements ResidentCompiler {
685677 final String mainUri = request.packageConfig.toPackageUri (request.mainUri)? .toString () ??
686678 toMultiRootPath (request.mainUri, fileSystemScheme, fileSystemRoots, _platform.isWindows);
687679
680+ String ? additionalSourceUri;
681+ if (request.additionalSourceUri != null ) {
682+ additionalSourceUri = request.packageConfig.toPackageUri (request.additionalSourceUri! )? .toString () ??
683+ toMultiRootPath (request.additionalSourceUri! , fileSystemScheme, fileSystemRoots, _platform.isWindows);
684+ }
685+
688686 final Process ? server = _server;
689687 if (server == null ) {
690- return _compile (mainUri, request.outputPath, additionalSource : request.additionalSource );
688+ return _compile (mainUri, request.outputPath, additionalSourceUri : additionalSourceUri );
691689 }
692690 final String inputKey = Uuid ().generateV4 ();
693691
@@ -733,7 +731,7 @@ class DefaultResidentCompiler implements ResidentCompiler {
733731 Future <CompilerOutput ?> _compile (
734732 String scriptUri,
735733 String ? outputPath,
736- {String ? additionalSource }
734+ {String ? additionalSourceUri }
737735 ) async {
738736 final String frontendServer = _artifacts.getArtifactPath (
739737 Artifact .frontendServerSnapshotForEngineDartSdk
@@ -786,12 +784,12 @@ class DefaultResidentCompiler implements ResidentCompiler {
786784 initializeFromDill! ,
787785 ],
788786 if (assumeInitializeFromDillUpToDate) '--assume-initialize-from-dill-up-to-date' ,
789- if (additionalSource != null ) ...< String > [
787+ if (additionalSourceUri != null ) ...< String > [
790788 '--source' ,
791- additionalSource ,
789+ additionalSourceUri ,
792790 '--source' ,
793791 'package:flutter/src/dart_plugin_registrant.dart' ,
794- '-Dflutter.dart_plugin_registrant=${ Uri . file ( additionalSource )} ' ,
792+ '-Dflutter.dart_plugin_registrant=$additionalSourceUri ' ,
795793 ],
796794 if (platformDill != null ) ...< String > [
797795 '--platform' ,
0 commit comments