mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
49 lines
1.9 KiB
Groovy
49 lines
1.9 KiB
Groovy
// 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 `<module>/.android/include_flutter.groovy`,
|
|
// so it can be versioned with the Flutter SDK.
|
|
|
|
import java.nio.file.Paths
|
|
|
|
File pathToThisDirectory = buildscript.sourceFile.parentFile
|
|
apply from: Paths.get(pathToThisDirectory.absolutePath, "src", "main", "groovy", "native_plugin_loader.groovy")
|
|
|
|
def moduleProjectRoot = project(':flutter').projectDir.parentFile.parentFile
|
|
|
|
List<Map<String, Object>> nativePlugins = nativePluginLoader.getPlugins(moduleProjectRoot)
|
|
nativePlugins.each { androidPlugin ->
|
|
def pluginDirectory = new File(androidPlugin.path as String, 'android')
|
|
assert pluginDirectory.exists()
|
|
include ":${androidPlugin.name}"
|
|
project(":${androidPlugin.name}").projectDir = pluginDirectory
|
|
}
|
|
|
|
String flutterModulePath = project(':flutter').projectDir.parentFile.getAbsolutePath()
|
|
gradle.getGradle().projectsLoaded { g ->
|
|
g.rootProject.beforeEvaluate { p ->
|
|
p.subprojects { subproject ->
|
|
if (nativePlugins.name.contains(subproject.name)) {
|
|
File androidPluginBuildOutputDir = new File(flutterModulePath + File.separator
|
|
+ "plugins_build_output" + File.separator + subproject.name);
|
|
if (!androidPluginBuildOutputDir.exists()) {
|
|
androidPluginBuildOutputDir.mkdirs()
|
|
}
|
|
subproject.buildDir = androidPluginBuildOutputDir
|
|
}
|
|
}
|
|
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')
|
|
}
|
|
}
|
|
}
|
|
}
|