// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // This file is included from `/.android/include_flutter.groovy`, // so it can be versioned with the Flutter SDK. import groovy.json.JsonSlurper def moduleProjectRoot = project(':flutter').projectDir.parentFile.parentFile // Note: if this logic is changed, also change the logic in app_plugin_loader.gradle. def pluginsFile = new File(moduleProjectRoot, '.flutter-plugins-dependencies') if (pluginsFile.exists()) { def object = new JsonSlurper().parseText(pluginsFile.text) assert object instanceof Map assert object.plugins instanceof Map assert object.plugins.android instanceof List // Includes the Flutter plugins that support the Android platform. object.plugins.android.each { androidPlugin -> assert androidPlugin.name instanceof String assert androidPlugin.path instanceof String def pluginDirectory = new File(androidPlugin.path, 'android') assert pluginDirectory.exists() include ":${androidPlugin.name}" project(":${androidPlugin.name}").projectDir = pluginDirectory } } gradle.getGradle().projectsLoaded { g -> g.rootProject.beforeEvaluate { p -> def _mainModuleName = binding.variables['mainModuleName'] if (_mainModuleName != null && !_mainModuleName.empty) { p.ext.mainModuleName = _mainModuleName } } g.rootProject.afterEvaluate { p -> p.subprojects { sp -> if (sp.name != 'flutter') { sp.evaluationDependsOn(':flutter') } } } }