@@ -7,6 +7,7 @@ import 'dart:io';
77
88import 'package:logging/logging.dart' ;
99import 'package:native_assets_cli/native_assets_cli.dart' ;
10+ import 'package:package_config/package_config.dart' ;
1011
1112import '../package_layout/package_layout.dart' ;
1213import '../utils/run_process.dart' ;
@@ -47,27 +48,38 @@ class NativeAssetsBuildRunner {
4748 packageLayout ?? = await PackageLayout .fromRootPackageRoot (workingDirectory);
4849 final packagesWithNativeAssets =
4950 await packageLayout.packagesWithNativeAssets;
50- final planner = await NativeAssetsBuildPlanner .fromRootPackageRoot (
51- rootPackageRoot: packageLayout.rootPackageRoot,
52- packagesWithNativeAssets: packagesWithNativeAssets,
53- dartExecutable: Uri .file (Platform .resolvedExecutable),
54- logger: logger,
55- );
56- final (plan, planSuccess) = planner.plan ();
57- if (! planSuccess) {
58- return _BuildResultImpl (
59- assets: [],
60- dependencies: [],
61- success: false ,
51+ final List <Package > buildPlan;
52+ final PackageGraph packageGraph;
53+ if (packagesWithNativeAssets.length <= 1 ) {
54+ buildPlan = packagesWithNativeAssets;
55+ packageGraph = PackageGraph ({
56+ for (final p in packagesWithNativeAssets) p.name: [],
57+ });
58+ } else {
59+ final planner = await NativeAssetsBuildPlanner .fromRootPackageRoot (
60+ rootPackageRoot: packageLayout.rootPackageRoot,
61+ packagesWithNativeAssets: packagesWithNativeAssets,
62+ dartExecutable: Uri .file (Platform .resolvedExecutable),
63+ logger: logger,
6264 );
65+ final (plan, planSuccess) = planner.plan ();
66+ if (! planSuccess) {
67+ return _BuildResultImpl (
68+ assets: [],
69+ dependencies: [],
70+ success: false ,
71+ );
72+ }
73+ buildPlan = plan;
74+ packageGraph = planner.packageGraph;
6375 }
6476 final assets = < Asset > [];
6577 final dependencies = < Uri > [];
6678 final metadata = < String , Metadata > {};
6779 var success = true ;
68- for (final package in plan ) {
80+ for (final package in buildPlan ) {
6981 final dependencyMetadata = _metadataForPackage (
70- packageGraph: planner. packageGraph,
82+ packageGraph: packageGraph,
7183 packageName: package.name,
7284 targetMetadata: metadata,
7385 );
@@ -123,22 +135,28 @@ class NativeAssetsBuildRunner {
123135 packageLayout ?? = await PackageLayout .fromRootPackageRoot (workingDirectory);
124136 final packagesWithNativeAssets =
125137 await packageLayout.packagesWithNativeAssets;
126- final planner = await NativeAssetsBuildPlanner .fromRootPackageRoot (
127- rootPackageRoot: packageLayout.rootPackageRoot,
128- packagesWithNativeAssets: packagesWithNativeAssets,
129- dartExecutable: Uri .file (Platform .resolvedExecutable),
130- logger: logger,
131- );
132- final (plan, planSuccess) = planner.plan ();
133- if (! planSuccess) {
134- return _DryRunResultImpl (
135- assets: [],
136- success: false ,
138+ final List <Package > buildPlan;
139+ if (packagesWithNativeAssets.length <= 1 ) {
140+ buildPlan = packagesWithNativeAssets;
141+ } else {
142+ final planner = await NativeAssetsBuildPlanner .fromRootPackageRoot (
143+ rootPackageRoot: packageLayout.rootPackageRoot,
144+ packagesWithNativeAssets: packagesWithNativeAssets,
145+ dartExecutable: Uri .file (Platform .resolvedExecutable),
146+ logger: logger,
137147 );
148+ final (plan, planSuccess) = planner.plan ();
149+ if (! planSuccess) {
150+ return _DryRunResultImpl (
151+ assets: [],
152+ success: false ,
153+ );
154+ }
155+ buildPlan = plan;
138156 }
139157 final assets = < Asset > [];
140158 var success = true ;
141- for (final package in plan ) {
159+ for (final package in buildPlan ) {
142160 final config = await _cliConfigDryRun (
143161 packageName: package.name,
144162 packageRoot: packageLayout.packageRoot (package.name),
0 commit comments