Skip to content

Commit

Permalink
Merge pull request #5 from 2BAB/dev
Browse files Browse the repository at this point in the history
Fix: ALL_JAVA_RES dependencies are incomplete
  • Loading branch information
2BAB committed Mar 28, 2022
2 parents 64bc55c + c8b0031 commit 0ed773a
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 27 deletions.
Expand Up @@ -12,7 +12,7 @@ object BuildConfig {
}

object Versions {
const val polyfillDevVersion = "0.6.0"
const val polyfillDevVersion = "0.6.1"

val polyfillSourceCompatibilityVersion = JavaVersion.VERSION_1_8
val polyfillTargetCompatibilityVersion = JavaVersion.VERSION_1_8
Expand Down
Expand Up @@ -20,7 +20,7 @@ abstract class ArtifactContainer<CreationDataT, AdapterT : PropertyAdapter<Creat
) {

private val headTaskProvider: TaskProvider<*> = project.tasks.register(
"dummyHeadWith${artifactType::class.simpleName}For${variant.getCapitalizedName()}"
"virtualHeadOf${artifactType::class.simpleName}For${variant.getCapitalizedName()}"
)
private var latestTaskProvider: TaskProvider<*> = headTaskProvider
private val pincerTaskConfig: PincerTaskConfiguration<CreationDataT>
Expand Down
Expand Up @@ -3,8 +3,8 @@ package me.xx2bab.polyfill.jar
import com.android.build.api.variant.ApplicationVariant
import com.android.build.gradle.internal.scope.getRegularFiles
import com.android.build.gradle.internal.tasks.MergeJavaResourceTask
import com.android.build.gradle.internal.tasks.ProcessJavaResTask
import me.xx2bab.polyfill.getCapitalizedName
import me.xx2bab.polyfill.getTaskContainer
import me.xx2bab.polyfill.task.MultipleArtifactPincerTaskConfiguration
import org.gradle.api.Project
import org.gradle.api.file.RegularFile
Expand All @@ -28,22 +28,14 @@ class JavaResourceMergePreHookConfigureAction(
override val data: Provider<List<RegularFile>> = project.objects.listProperty<RegularFile>() // A placeholder

override fun orchestrate() {
val variantCapitalizedName = variant.getCapitalizedName()
project.afterEvaluate {
val variantCapitalizedName = variant.getCapitalizedName()
val mergeTask = project.tasks.withType<MergeJavaResourceTask>().first {
it.name.contains(variantCapitalizedName)
&& !it.name.contains("test", true)
}


// Setup Data
// val subProjectsJavaResList = appVariant.getApplicationVariantImpl().variantDependencies
// .getArtifactFileCollection(
// AndroidArtifacts.ConsumedConfigType.RUNTIME_CLASSPATH,
// AndroidArtifacts.ArtifactScope.PROJECT,
// AndroidArtifacts.ArtifactType.JAVA_RES
// )
// .getRegularFiles(project.rootProject.layout.projectDirectory)
val subProjectsJavaResList = mergeTask.subProjectJavaRes
?.getRegularFiles(project.rootProject.layout.projectDirectory)
?: project.objects.listProperty()
Expand All @@ -56,26 +48,19 @@ class JavaResourceMergePreHookConfigureAction(

// Setup dependencies
// Left flank
project.rootProject.subprojects {
val subProject = this
if (subProject !== project) {
subProject.tasks.whenTaskAdded {
val targetTask = this
if (targetTask is ProcessJavaResTask
&& targetTask.name.contains(variantCapitalizedName)
&& !targetTask.name.contains("test", true)
) {
headTaskProvider.configure {
dependsOn(targetTask)
}
}
}
}
headTaskProvider.configure {
dependsOn(appVariant.getTaskContainer().preBuildTask) // For current module
// Initially it should use the Provider as the dependency directly,
// however some dependencies were lost during the transformation from `FileCollection` to `Provider`.
// dependsOn(data)
dependsOn(mergeTask.subProjectJavaRes)
dependsOn(mergeTask.externalLibJavaRes)
}

// Right flank
mergeTask.dependsOn(lazyTailTaskProvider())
}

}


Expand Down

0 comments on commit 0ed773a

Please sign in to comment.