mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Add support for type-safe plugin apply (#150958)
The Gradle Kotlin DSL also allows for type-safe application of the Flutter Gradle plugin, which is currently undetected by the CLI ```kotlin plugins { dev.flutter.`flutter-gradle-plugin` } ``` Please note that the added test case isn't ideal, since the example gradle isn't actually valid kotlin DSL, however the `kotlin host app language with Gradle Kotlin DSL` is identical Fixes #149859
This commit is contained in:
parent
47e65e806f
commit
3a97a38c41
@ -544,7 +544,9 @@ class AndroidProject extends FlutterProjectPlatform {
|
||||
// pluginManagement block of the settings.gradle file.
|
||||
// See https://docs.gradle.org/current/userguide/composite_builds.html#included_plugin_builds,
|
||||
// as well as the settings.gradle and build.gradle templates.
|
||||
final bool declarativeApply = line.contains('dev.flutter.flutter-gradle-plugin');
|
||||
final bool declarativeApply = line.contains(
|
||||
RegExp(r'dev\.flutter\.(?:(?:flutter-gradle-plugin)|(?:`flutter-gradle-plugin`))'),
|
||||
);
|
||||
|
||||
// This case allows for flutter run/build to work for modules. It does
|
||||
// not guarantee the Flutter Gradle Plugin is applied.
|
||||
|
@ -805,6 +805,28 @@ plugins {
|
||||
id "kotlin-android"
|
||||
id "dev.flutter.flutter-gradle-plugin"
|
||||
}
|
||||
''';
|
||||
});
|
||||
expect(project.android.isKotlin, isTrue);
|
||||
}, overrides: <Type, Generator>{
|
||||
FileSystem: () => fs,
|
||||
ProcessManager: () => FakeProcessManager.any(),
|
||||
XcodeProjectInterpreter: () => xcodeProjectInterpreter,
|
||||
FlutterProjectFactory: () => flutterProjectFactory,
|
||||
});
|
||||
|
||||
testUsingContext('kotlin host app language with Gradle Kotlin DSL and typesafe plugin id', () async {
|
||||
final FlutterProject project = await someProject();
|
||||
|
||||
addAndroidGradleFile(project.directory,
|
||||
kotlinDsl: true,
|
||||
gradleFileContent: () {
|
||||
return '''
|
||||
plugins {
|
||||
id "com.android.application"
|
||||
id "kotlin-android"
|
||||
dev.flutter.`flutter-gradle-plugin`
|
||||
}
|
||||
''';
|
||||
});
|
||||
expect(project.android.isKotlin, isTrue);
|
||||
|
Loading…
Reference in New Issue
Block a user