diff --git a/.vscode/settings.json b/.vscode/settings.json
index 3b8f7f7c5..ecd7b6613 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,4 +1,4 @@
{
- "dart.flutterSdkPath": "~/.asdf/installs/flutter/2.5.3-stable",
- "dart.sdkPath": "~/.asdf/installs/dart/2.14.4/dart-sdk"
+ "dart.flutterSdkPath": "~/.asdf/installs/flutter/3.0.1-stable",
+ "dart.sdkPath": "~/.asdf/installs/dart/2.17.1/dart-sdk"
}
diff --git a/example/pubspec.yaml b/example/pubspec.yaml
index 11106d6e1..6f8e614a3 100644
--- a/example/pubspec.yaml
+++ b/example/pubspec.yaml
@@ -17,6 +17,11 @@ dependencies:
flare_flutter: ^3.0.2
rive: ^0.8.1
+ # Dependency check
+ collection: ^1.15.0
+ crypto: ^3.0.0
+ glob: ^2.0.0
+
json_annotation: ^4.5.0
freezed_annotation: ^2.0.3
diff --git a/example_resources/assets/color/colors.xml b/example_resources/assets/color/colors.xml
new file mode 100644
index 000000000..506295538
--- /dev/null
+++ b/example_resources/assets/color/colors.xml
@@ -0,0 +1,7 @@
+
+
+ #FFFFFF
+ #000000
+ #EEEEEE
+ #979797
+
diff --git a/example_resources/lib/gen/colors.gen.dart b/example_resources/lib/gen/colors.gen.dart
new file mode 100644
index 000000000..e1632ca34
--- /dev/null
+++ b/example_resources/lib/gen/colors.gen.dart
@@ -0,0 +1,27 @@
+/// GENERATED CODE - DO NOT MODIFY BY HAND
+/// *****************************************************
+/// FlutterGen
+/// *****************************************************
+
+// coverage:ignore-file
+// ignore_for_file: type=lint
+// ignore_for_file: directives_ordering,unnecessary_import
+
+import 'package:flutter/painting.dart';
+import 'package:flutter/material.dart';
+
+class ColorName {
+ ColorName._();
+
+ /// Color: #000000
+ static const Color black = Color(0xFF000000);
+
+ /// Color: #979797
+ static const Color gray410 = Color(0xFF979797);
+
+ /// Color: #EEEEEE
+ static const Color gray70 = Color(0xFFEEEEEE);
+
+ /// Color: #FFFFFF
+ static const Color white = Color(0xFFFFFFFF);
+}
diff --git a/example_resources/pubspec.yaml b/example_resources/pubspec.yaml
index 02e8fed82..6ed913e7d 100644
--- a/example_resources/pubspec.yaml
+++ b/example_resources/pubspec.yaml
@@ -30,6 +30,15 @@ flutter_gen:
enabled: true
package_parameter_enabled: true
+ fonts:
+ enabled: true
+
+ colors:
+ enabled: true
+ inputs:
+ - assets/color/colors.xml
+
+
flutter:
assets:
- assets/images/
diff --git a/packages/core/lib/flutter_generator.dart b/packages/core/lib/flutter_generator.dart
index d57c4fe23..8ff32d5f5 100644
--- a/packages/core/lib/flutter_generator.dart
+++ b/packages/core/lib/flutter_generator.dart
@@ -1,7 +1,6 @@
import 'dart:io';
import 'package:dart_style/dart_style.dart';
-import 'package:flutter_gen_core/utils/version.dart';
import 'package:path/path.dart';
import 'generators/assets_generator.dart';
@@ -41,10 +40,7 @@ class FlutterGenerator {
}
Future build({Config? config}) async {
- stdout.writeln(flutterGenVersion);
-
config ??= await getConfig();
-
if (config == null) return;
final flutter = config.pubspec.flutter;
diff --git a/packages/core/lib/settings/config.dart b/packages/core/lib/settings/config.dart
index 9ceb92f54..1b5cb9cfc 100644
--- a/packages/core/lib/settings/config.dart
+++ b/packages/core/lib/settings/config.dart
@@ -1,5 +1,6 @@
import 'dart:io';
+import 'package:flutter_gen_core/utils/version.dart';
import 'package:path/path.dart';
import 'package:yaml/yaml.dart';
@@ -14,7 +15,7 @@ class Config {
}
Future loadPubspecConfig(File pubspecFile) async {
- stdout.writeln('FlutterGen Loading ... '
+ stdout.writeln('$flutterGenVersion Loading ... '
'${normalize(join(
basename(pubspecFile.parent.path),
basename(pubspecFile.path),
diff --git a/packages/runner/lib/flutter_gen_builder.dart b/packages/runner/lib/flutter_gen_builder.dart
deleted file mode 100644
index 1aa619cec..000000000
--- a/packages/runner/lib/flutter_gen_builder.dart
+++ /dev/null
@@ -1,83 +0,0 @@
-import 'dart:async';
-import 'dart:collection';
-import 'dart:io';
-
-import 'package:build/build.dart';
-import 'package:collection/collection.dart';
-import 'package:crypto/crypto.dart';
-import 'package:flutter_gen_core/flutter_generator.dart';
-import 'package:flutter_gen_core/settings/config.dart';
-import 'package:glob/glob.dart';
-
-class FlutterGenBuilder extends Builder {
- final FlutterGenerator generator = FlutterGenerator(File('pubspec.yaml'));
- _FlutterGenBuilderState? _currentState;
-
- @override
- Future build(BuildStep buildStep) async {
- var config = await generator.getConfig();
-
- if (config == null) return;
-
- var state = await _createState(config, buildStep);
-
- if (_currentState != null && _currentState!.equals(state)) return;
-
- _currentState = state;
-
- await generator.build(config: config);
- }
-
- @override
- Map> get buildExtensions => {
- "\$package\$": ['.gen.dart']
- };
-
- Future<_FlutterGenBuilderState> _createState(
- Config config, BuildStep buildStep) async {
- final pubspec = config.pubspec;
- final HashMap colors = HashMap();
- final HashSet assets = HashSet();
-
- if (pubspec.flutterGen.colors.enabled) {
- for (var colorInput in pubspec.flutterGen.colors.inputs) {
- if (colorInput.isEmpty) continue;
- await for (var assetId in buildStep.findAssets(Glob(colorInput))) {
- var digest = await buildStep.digest(assetId);
- colors[assetId.path] = digest;
- }
- }
- }
-
- if (pubspec.flutterGen.assets.enabled) {
- for (var assetInput in pubspec.flutter.assets) {
- if (assetInput.isEmpty) continue;
- if (assetInput.endsWith("/")) assetInput += "*";
- await for (var assetId in buildStep.findAssets(Glob(assetInput))) {
- assets.add(assetId.path);
- }
- }
- }
-
- final pubspecAsset =
- await buildStep.findAssets(Glob(config.pubspecFile.path)).single;
-
- final pubspecDigest = await buildStep.digest(pubspecAsset);
-
- return _FlutterGenBuilderState(pubspecDigest, colors, assets);
- }
-}
-
-class _FlutterGenBuilderState {
- final Digest pubspecDigest;
- final HashMap colors;
- final HashSet assets;
-
- _FlutterGenBuilderState(this.pubspecDigest, this.colors, this.assets);
-
- bool equals(_FlutterGenBuilderState state) {
- return pubspecDigest == state.pubspecDigest &&
- const MapEquality().equals(colors, state.colors) &&
- const SetEquality().equals(assets, state.assets);
- }
-}
diff --git a/packages/runner/lib/flutter_gen_runner.dart b/packages/runner/lib/flutter_gen_runner.dart
index d6cefc1f8..130054673 100644
--- a/packages/runner/lib/flutter_gen_runner.dart
+++ b/packages/runner/lib/flutter_gen_runner.dart
@@ -1,7 +1,82 @@
+import 'dart:collection';
+import 'dart:io';
+
import 'package:build/build.dart';
+import 'package:collection/collection.dart';
+import 'package:crypto/crypto.dart';
+import 'package:flutter_gen_core/flutter_generator.dart';
+import 'package:flutter_gen_core/settings/config.dart';
+
+import 'package:glob/glob.dart';
+
+Builder build(BuilderOptions options) => FlutterGenBuilder();
+
+class FlutterGenBuilder extends Builder {
+ final FlutterGenerator generator = FlutterGenerator(File('pubspec.yaml'));
+ _FlutterGenBuilderState? _currentState;
+
+ @override
+ Future build(BuildStep buildStep) async {
+ final config = await generator.getConfig();
+ if (config == null) return;
+
+ final state = await _createState(config, buildStep);
+ if (_currentState != null && _currentState!.equals(state)) return;
+ _currentState = state;
+
+ await generator.build(config: config);
+ }
+
+ @override
+ Map> get buildExtensions => {
+ "\$package\$": ['.gen.dart']
+ };
+
+ Future<_FlutterGenBuilderState> _createState(
+ Config config, BuildStep buildStep) async {
+ final pubspec = config.pubspec;
+
+ final HashSet assets = HashSet();
+ if (pubspec.flutterGen.assets.enabled) {
+ for (var assetInput in pubspec.flutter.assets) {
+ if (assetInput.isEmpty) continue;
+ if (assetInput.endsWith("/")) assetInput += "*";
+ await for (var assetId in buildStep.findAssets(Glob(assetInput))) {
+ assets.add(assetId.path);
+ }
+ }
+ }
+
+ final HashMap colors = HashMap();
+ if (pubspec.flutterGen.colors.enabled) {
+ for (var colorInput in pubspec.flutterGen.colors.inputs) {
+ if (colorInput.isEmpty) continue;
+ await for (var assetId in buildStep.findAssets(Glob(colorInput))) {
+ final digest = await buildStep.digest(assetId);
+ colors[assetId.path] = digest;
+ }
+ }
+ }
+
+ final pubspecAsset =
+ await buildStep.findAssets(Glob(config.pubspecFile.path)).single;
+
+ final pubspecDigest = await buildStep.digest(pubspecAsset);
+
+ return _FlutterGenBuilderState(pubspecDigest, assets, colors);
+ }
+}
+
+class _FlutterGenBuilderState {
+ final Digest pubspecDigest;
+ final HashSet assets;
+ final HashMap colors;
-import 'flutter_gen_builder.dart';
+ _FlutterGenBuilderState(this.pubspecDigest, this.assets, this.colors);
-Builder build(BuilderOptions options) {
- return FlutterGenBuilder();
+ bool equals(_FlutterGenBuilderState state) {
+ return pubspecDigest == state.pubspecDigest &&
+ const SetEquality().equals(assets, state.assets) &&
+ const MapEquality().equals(colors, state.colors);
+ }
}
diff --git a/packages/runner/pubspec.yaml b/packages/runner/pubspec.yaml
index deacb364e..263bf671c 100644
--- a/packages/runner/pubspec.yaml
+++ b/packages/runner/pubspec.yaml
@@ -13,11 +13,10 @@ environment:
dependencies:
flutter_gen_core: ^4.1.6
build: '>=2.0.0 <3.0.0'
- collection: ^1.15.0
+ collection: ^1.16.0
crypto: ^3.0.2
glob: ^2.0.2
dev_dependencies:
flutter_lints: ^2.0.1
build_test: '>=2.0.0 <3.0.0'
- flutter_lints: '>=1.0.4 <2.0.0'