@@ -7,6 +7,7 @@ import 'dart:io';
7
7
8
8
import 'package:logging/logging.dart' ;
9
9
import 'package:native_assets_cli/native_assets_cli.dart' ;
10
+ import 'package:package_config/package_config.dart' ;
10
11
11
12
import '../package_layout/package_layout.dart' ;
12
13
import '../utils/run_process.dart' ;
@@ -47,27 +48,38 @@ class NativeAssetsBuildRunner {
47
48
packageLayout ?? = await PackageLayout .fromRootPackageRoot (workingDirectory);
48
49
final packagesWithNativeAssets =
49
50
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,
62
64
);
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;
63
75
}
64
76
final assets = < Asset > [];
65
77
final dependencies = < Uri > [];
66
78
final metadata = < String , Metadata > {};
67
79
var success = true ;
68
- for (final package in plan ) {
80
+ for (final package in buildPlan ) {
69
81
final dependencyMetadata = _metadataForPackage (
70
- packageGraph: planner. packageGraph,
82
+ packageGraph: packageGraph,
71
83
packageName: package.name,
72
84
targetMetadata: metadata,
73
85
);
@@ -123,22 +135,28 @@ class NativeAssetsBuildRunner {
123
135
packageLayout ?? = await PackageLayout .fromRootPackageRoot (workingDirectory);
124
136
final packagesWithNativeAssets =
125
137
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,
137
147
);
148
+ final (plan, planSuccess) = planner.plan ();
149
+ if (! planSuccess) {
150
+ return _DryRunResultImpl (
151
+ assets: [],
152
+ success: false ,
153
+ );
154
+ }
155
+ buildPlan = plan;
138
156
}
139
157
final assets = < Asset > [];
140
158
var success = true ;
141
- for (final package in plan ) {
159
+ for (final package in buildPlan ) {
142
160
final config = await _cliConfigDryRun (
143
161
packageName: package.name,
144
162
packageRoot: packageLayout.packageRoot (package.name),
0 commit comments