diff --git a/gradle/build-logic/src/main/kotlin/mihon/gradle/tasks/GenerateLocalesConfigTask.kt b/gradle/build-logic/src/main/kotlin/mihon/gradle/tasks/GenerateLocalesConfigTask.kt index 736cb7f91..2797904fb 100644 --- a/gradle/build-logic/src/main/kotlin/mihon/gradle/tasks/GenerateLocalesConfigTask.kt +++ b/gradle/build-logic/src/main/kotlin/mihon/gradle/tasks/GenerateLocalesConfigTask.kt @@ -1,26 +1,26 @@ package mihon.gradle.tasks import org.gradle.api.DefaultTask +import org.gradle.api.file.ConfigurableFileCollection import org.gradle.api.file.DirectoryProperty -import org.gradle.api.model.ObjectFactory +import org.gradle.api.tasks.InputFiles import org.gradle.api.tasks.OutputDirectory +import org.gradle.api.tasks.PathSensitive +import org.gradle.api.tasks.PathSensitivity import org.gradle.api.tasks.TaskAction -import javax.inject.Inject abstract class GenerateLocalesConfigTask : DefaultTask() { - @get:Inject - abstract val objectFactory: ObjectFactory + @get:InputFiles + @get:PathSensitive(PathSensitivity.RELATIVE) + abstract val localeFiles: ConfigurableFileCollection @get:OutputDirectory abstract val outputDir: DirectoryProperty @TaskAction fun action() { - val locales = objectFactory.fileTree() - .from("src/commonMain/moko-resources") - .matching { include("**/strings.xml") } - .asSequence() + val locales = localeFiles.asSequence() .filterNot { it.readText().contains(emptyResourcesElement) } .map { it.parentFile.name diff --git a/i18n/build.gradle.kts b/i18n/build.gradle.kts index 808068734..3d2d007f8 100644 --- a/i18n/build.gradle.kts +++ b/i18n/build.gradle.kts @@ -32,7 +32,13 @@ androidComponents { val resSource = variant.sources.res ?: return@onVariants val variantName = variant.name.replaceFirstChar { it.uppercase() } - val task = tasks.register("generate${variantName}LocalesConfig") + val task = tasks.register("generate${variantName}LocalesConfig") { + localeFiles.from( + layout.projectDirectory.dir("src/commonMain/moko-resources").asFileTree.matching { + include("**/strings.xml", "**/plurals.xml") + }, + ) + } resSource.addGeneratedSourceDirectory(task) { it.outputDir } } }