[flutter_tools] include depfile outputs in gradle outputs (#50877)

This commit is contained in:
Jonah Williams 2020-02-20 13:24:36 -08:00 committed by GitHub
parent 2f09d601b5
commit 3cee8e0eb0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -891,13 +891,13 @@ class FlutterTask extends BaseFlutterTask {
}
}
FileCollection readDependencies(File dependenciesFile) {
FileCollection readDependencies(File dependenciesFile, Boolean inputs) {
if (dependenciesFile.exists()) {
// Dependencies file has Makefile syntax:
// <target> <files>: <source> <files> <separated> <by> <non-escaped space>
String depText = dependenciesFile.text
// So we split list of files by non-escaped(by backslash) space,
def matcher = depText.split(': ')[1] =~ /(\\ |[^\s])+/
def matcher = depText.split(': ')[inputs ? 1 : 0] =~ /(\\ |[^\s])+/
// then we replace all escaped spaces with regular spaces
def depList = matcher.collect{it[0].replaceAll("\\\\ ", " ")}
return project.files(depList)
@ -909,11 +909,20 @@ class FlutterTask extends BaseFlutterTask {
FileCollection getSourceFiles() {
FileCollection sources = project.files()
for (File depfile in getDependenciesFiles()) {
sources += readDependencies(depfile)
sources += readDependencies(depfile, true)
}
return sources + project.files('pubspec.yaml')
}
@OutputFiles
FileCollection getOutputFiles() {
FileCollection sources = project.files()
for (File depfile in getDependenciesFiles()) {
sources += readDependencies(depfile, false)
}
return sources
}
@TaskAction
void build() {
buildBundle()