55package dev.icerock.gradle
66
77import com.android.build.gradle.LibraryExtension
8- import dev.icerock.gradle.generator.*
8+ import dev.icerock.gradle.generator.AndroidMRGenerator
9+ import dev.icerock.gradle.generator.CommonMRGenerator
10+ import dev.icerock.gradle.generator.IosMRGenerator
11+ import dev.icerock.gradle.generator.MRGenerator
12+ import dev.icerock.gradle.generator.ResourceGeneratorFeature
13+ import dev.icerock.gradle.generator.SourceInfo
914import dev.icerock.gradle.generator.fonts.FontsGeneratorFeature
1015import dev.icerock.gradle.generator.image.ImagesGeneratorFeature
1116import dev.icerock.gradle.generator.plurals.PluralsGeneratorFeature
@@ -44,8 +49,18 @@ class MultiplatformResourcesPlugin : Plugin<Project> {
4449 val multiplatformExtension =
4550 target.extensions.getByType(KotlinMultiplatformExtension ::class )
4651
47- val sourceSets = multiplatformExtension.sourceSets
48- val commonSourceSet = sourceSets.getByName(mrExtension.sourceSetName)
52+ val sourceSets = multiplatformExtension.targets
53+ .flatMap { it.compilations }
54+ .filter { it.associateWith.isEmpty() } // filter all tests source sets
55+ .map { compilation ->
56+ if (compilation.target is KotlinAndroidTarget ) {
57+ compilation.kotlinSourceSets.first { it.name == " androidMain" }
58+ } else {
59+ compilation.defaultSourceSet
60+ }
61+ }
62+ .distinct()
63+ val commonSourceSet = multiplatformExtension.sourceSets.getByName(mrExtension.sourceSetName)
4964 val commonResources = commonSourceSet.resources
5065
5166 val androidExtension = target.extensions.getByType(LibraryExtension ::class )
@@ -57,7 +72,7 @@ class MultiplatformResourcesPlugin : Plugin<Project> {
5772 generateMultiplatformResources(
5873 project = target,
5974 commonResources = commonResources,
60- sourceSets = sourceSets.filter { it.name.endsWith( " Main " ) } ,
75+ sourceSets = sourceSets,
6176 extension = mrExtension,
6277 multiplatformExtension = multiplatformExtension,
6378 androidPackage = androidPackage
@@ -139,7 +154,7 @@ class MultiplatformResourcesPlugin : Plugin<Project> {
139154 info.generatedDir,
140155 info.sourceSet,
141156 info.mrClassPackage,
142- generators = features.map{ it.createAndroidGenerator() }
157+ generators = features.map { it.createAndroidGenerator() }
143158 )
144159 }
145160 is KotlinNativeTarget -> {
@@ -149,7 +164,7 @@ class MultiplatformResourcesPlugin : Plugin<Project> {
149164 info.generatedDir,
150165 info.sourceSet,
151166 info.mrClassPackage,
152- generators = features.map{ it.createiOSGenerator() }
167+ generators = features.map { it.createiOSGenerator() }
153168 )
154169 } else {
155170 println (" unsupported native family $family " )
0 commit comments