From bba39dd4fe4c8667fe26acb9b0fa2855886ebf38 Mon Sep 17 00:00:00 2001 From: Timofey Solonin Date: Thu, 15 Feb 2024 19:05:01 +0100 Subject: [PATCH] Add an IT for publication of multiplatform resources in Android target ^KT-65540 --- .../testingUtils/classFilesComparison.kt | 12 ++ .../AndroidMultiplatformResourcesIT.kt | 110 ++++++++++++++++++ .../MultiplatformResourcesPublicationIT.kt | 106 ++++++++++------- .../multiplatformResourcesITUtils.kt | 44 +++++++ .../android/build.gradle.kts | 4 + .../android/consumer/build.gradle.kts | 85 ++++++++++++++ .../src/androidMain/AndroidManifest.xml | 16 +++ .../consumer/src/commonMain/kotlin/stub.kt | 1 + .../multiplatformResources/fonts/selfFont | 1 + .../multiplatformResources/selfResources | 1 + .../projectDependency/build.gradle.kts | 84 +++++++++++++ .../src/commonMain/kotlin/stub.kt | 1 + .../fonts/fontsFromProject | 1 + .../multiplatformResources/fromProject | 1 + .../assets/assets/embed/published/fonts/font | 1 + .../assets/assets/embed/self/fonts/selfFont | 1 + .../embed/subproject/fonts/fontsFromProject | 1 + .../resources/embed/published}/inCommon | 0 .../embed/published/inner/innerInCommon | 1 + .../embed/published/inner/platformOverride | 1 + .../embed/published/onlyInAndroidMain | 1 + .../resources/embed/self/selfResources | 1 + .../resources/embed/subproject/fromProject | 1 + .../publication/build.gradle.kts | 54 ++++++++- .../assets/embed/published/fonts/font | 1 + .../androidMain/embed/published/inCommon | 1 + .../embed/published/inner/innerInCommon | 1 + .../embed/published/inner/platformOverride | 1 + .../embed/published/onlyInAndroidMain | 1 + .../jvm/embed/inside/inner/innerInCommon | 0 .../reference/jvm/embed/published/inCommon | 1 + .../jvm/embed/published/inner/innerInCommon | 1 + .../inner/platformOverride | 0 .../jvm/embed/{inside => published}/onlyInJvm | 0 .../multiplatformResources/fonts/font | 1 + .../inner/platformOverride | 1 + .../multiplatformResources/onlyInAndroidMain | 1 + .../inner/innerInCommon | 1 + 38 files changed, 492 insertions(+), 48 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/resources/AndroidMultiplatformResourcesIT.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/resources/multiplatformResourcesITUtils.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/src/androidMain/AndroidManifest.xml create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/src/commonMain/kotlin/stub.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/src/commonMain/multiplatformResources/fonts/selfFont create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/src/commonMain/multiplatformResources/selfResources create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/projectDependency/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/projectDependency/src/commonMain/kotlin/stub.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/projectDependency/src/commonMain/multiplatformResources/fonts/fontsFromProject create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/projectDependency/src/commonMain/multiplatformResources/fromProject create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/assets/assets/embed/published/fonts/font create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/assets/assets/embed/self/fonts/selfFont create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/assets/assets/embed/subproject/fonts/fontsFromProject rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/{publication/reference/jvm/embed/inside => android/reference/resources/embed/published}/inCommon (100%) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/inner/innerInCommon create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/inner/platformOverride create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/onlyInAndroidMain create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/self/selfResources create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/subproject/fromProject create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidFonts/assets/embed/published/fonts/font create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/inCommon create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/inner/innerInCommon create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/inner/platformOverride create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/onlyInAndroidMain delete mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/inside/inner/innerInCommon create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/inCommon create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/inner/innerInCommon rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/{inside => published}/inner/platformOverride (100%) rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/{inside => published}/onlyInJvm (100%) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/androidMain/multiplatformResources/fonts/font create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/androidMain/multiplatformResources/inner/platformOverride create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/androidMain/multiplatformResources/onlyInAndroidMain diff --git a/build-common/test/org/jetbrains/kotlin/incremental/testingUtils/classFilesComparison.kt b/build-common/test/org/jetbrains/kotlin/incremental/testingUtils/classFilesComparison.kt index a9483569db3..acd85f2bbb7 100644 --- a/build-common/test/org/jetbrains/kotlin/incremental/testingUtils/classFilesComparison.kt +++ b/build-common/test/org/jetbrains/kotlin/incremental/testingUtils/classFilesComparison.kt @@ -46,6 +46,18 @@ import java.util.zip.GZIPInputStream // Set this to true if you want to dump all bytecode (test will fail in this case) private val DUMP_ALL = System.getProperty("comparison.dump.all") == "true" +fun assertEqualDirectoriesIgnoringDotFiles( + expected: File, + actual: File, + forgiveOtherExtraFiles: Boolean, +) = assertEqualDirectories( + expected, + actual, + forgiveExtraFiles = forgiveOtherExtraFiles, + // e.g. ignore .DS_Store on macOS + filter = { !it.name.startsWith(".") }, +) + fun assertEqualDirectories( expected: File, actual: File, diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/resources/AndroidMultiplatformResourcesIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/resources/AndroidMultiplatformResourcesIT.kt new file mode 100644 index 00000000000..c4cb1bb65e6 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/resources/AndroidMultiplatformResourcesIT.kt @@ -0,0 +1,110 @@ +/* + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.mpp.resources + +import org.gradle.util.GradleVersion +import org.jetbrains.kotlin.gradle.testbase.* +import org.jetbrains.kotlin.incremental.testingUtils.assertEqualDirectoriesIgnoringDotFiles +import org.junit.jupiter.api.DisplayName +import java.nio.file.Path + +@MppGradlePluginTests +@AndroidTestVersions(minVersion = TestVersions.AGP.AGP_73) +@DisplayName("Test multiplatform resources consumption and publication in androidTarget()") +class AndroidMultiplatformResourcesIT : KGPBaseTest() { + + @DisplayName("Multiplatform resources consumption from self, published and project dependencies for Android target") + @GradleAndroidTest + fun testConsumption( + gradleVersion: GradleVersion, + androidVersion: String, + providedJdk: JdkVersions.ProvidedJdk, + ) { + publishDependencyProject( + gradleVersion, + providedJdk, + androidVersion + ) { repositoryRoot -> + project( + "multiplatformResources/android", + gradleVersion, + buildJdk = providedJdk.location, + localRepoDir = repositoryRoot, + ) { + settingsGradleKts.append( + """ + include(":consumer") + include(":projectDependency") + """.trimIndent() + ) + + buildWithAGPVersion( + ":consumer:zipApksForDebug", + androidVersion, + defaultBuildOptions, + ) + val apkPath = projectPath.resolve("consumer/build/outputs/apk/debug/consumer-debug.apk") + assertAssetsMatchReference(apkPath) + assertEmbeddedResourcesMatchReference(apkPath) + } + } + } + + private fun TestProject.assertAssetsMatchReference( + apkPath: Path, + ) { + val assetsPath = projectPath.resolve("assetsInApk") + unzip( + apkPath, + outputDir = assetsPath, + filesStartingWith = "assets", + ) + val referenceAssets = projectPath.resolve("reference/assets").toFile() + assertEqualDirectoriesIgnoringDotFiles( + expected = referenceAssets, + actual = assetsPath.toFile(), + forgiveOtherExtraFiles = false, + ) + } + + private fun TestProject.assertEmbeddedResourcesMatchReference( + apkPath: Path, + ) { + val resourcesPath = projectPath.resolve("resourcesInApk") + unzip( + apkPath, + outputDir = resourcesPath, + filesStartingWith = "embed", + ) + val referenceResources = projectPath.resolve("reference/resources").toFile() + assertEqualDirectoriesIgnoringDotFiles( + expected = referenceResources, + actual = resourcesPath.toFile(), + forgiveOtherExtraFiles = false, + ) + } + + private fun publishDependencyProject( + gradleVersion: GradleVersion, + providedJdk: JdkVersions.ProvidedJdk, + androidVersion: String, + withRepositoryRoot: (Path) -> (Unit), + ) { + project( + "multiplatformResources/publication", + gradleVersion, + buildJdk = providedJdk.location, + ) { + buildWithAGPVersion( + ":publishAllPublicationsToMavenRepository", + androidVersion, + defaultBuildOptions, + ) + withRepositoryRoot(projectPath.resolve("build/repo")) + } + } + +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/resources/MultiplatformResourcesPublicationIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/resources/MultiplatformResourcesPublicationIT.kt index e81db934186..f9aef568231 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/resources/MultiplatformResourcesPublicationIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/resources/MultiplatformResourcesPublicationIT.kt @@ -5,16 +5,61 @@ import java.nio.file.Paths import java.nio.file.StandardCopyOption import org.gradle.util.GradleVersion import org.jetbrains.kotlin.gradle.testbase.* -import org.jetbrains.kotlin.gradle.util.capitalize -import org.jetbrains.kotlin.incremental.testingUtils.assertEqualDirectories +import org.jetbrains.kotlin.incremental.testingUtils.assertEqualDirectoriesIgnoringDotFiles import org.junit.jupiter.api.DisplayName import java.nio.file.Path import java.util.zip.ZipFile +import kotlin.io.path.name @MppGradlePluginTests +@AndroidTestVersions(minVersion = TestVersions.AGP.AGP_73) @DisplayName("Test multiplatform resources publication") class MultiplatformResourcesPublicationIT : KGPBaseTest() { + @DisplayName("Multiplatform resources publication for Android target with release build type") + @GradleAndroidTest + fun testAndroidReleaseResourcesPublication( + gradleVersion: GradleVersion, + androidVersion: String, + providedJdk: JdkVersions.ProvidedJdk, + ) { + project( + "multiplatformResources/publication", + gradleVersion, + buildJdk = providedJdk.location, + ) { + buildWithAGPVersion( + ":publishAndroidReleasePublicationToMavenRepository", + androidVersion, + defaultBuildOptions, + ) + val publishedAarPath = "build/repo/test/publication-android/1.0/publication-android-1.0.aar" + val classesInAar = projectPath.resolve("classesInAar") + val classesJar = "classes.jar" + unzip( + projectPath.resolve(publishedAarPath), + classesInAar, + filesStartingWith = classesJar + ) + compareEmbeddedResources( + inputZip = classesInAar.resolve(classesJar), + reference = reference("androidMain") + ) + + val assetsInAar = projectPath.resolve("assetsInAar") + unzip( + projectPath.resolve(publishedAarPath), + assetsInAar, + filesStartingWith = "assets" + ) + assertEqualDirectoriesIgnoringDotFiles( + assetsInAar.toFile(), + reference("androidFonts").toFile(), + forgiveOtherExtraFiles = false, + ) + } + } + @DisplayName("Multiplatform resources publication for jvm target") @GradleAndroidTest fun testJvmResourcesPublication( @@ -28,7 +73,7 @@ class MultiplatformResourcesPublicationIT : KGPBaseTest() { providedJdk, publicationTask = ":publishJvmPublicationToMavenRepository", publishedArchive = "build/repo/test/publication-jvm/1.0/publication-jvm-1.0.jar", - reference = "jvm", + referenceName = "jvm", ) } @@ -38,7 +83,7 @@ class MultiplatformResourcesPublicationIT : KGPBaseTest() { providedJdk: JdkVersions.ProvidedJdk, publicationTask: String, publishedArchive: String, - reference: String, + referenceName: String, ) { project( "multiplatformResources/publication", @@ -48,61 +93,36 @@ class MultiplatformResourcesPublicationIT : KGPBaseTest() { buildWithAGPVersion( publicationTask, androidVersion, + defaultBuildOptions, ) compareEmbeddedResources( - publishedArchive, - reference + projectPath.resolve(publishedArchive), + reference(referenceName) ) } } - private fun TestProject.buildWithAGPVersion( - task: String, - androidVersion: String, - ) { - build( - task, - buildOptions = defaultBuildOptions.copy(androidVersion = androidVersion) - ) - } + private fun TestProject.reference( + named: String + ): Path = projectPath.resolve("reference/$named") private fun TestProject.compareEmbeddedResources( - inputZip: String, - reference: String, + inputZip: Path, + reference: Path, ) { - val publishedResources = projectPath.resolve("published/${reference}") + val publishedResources = projectPath.resolve("published/${reference.name}") unzip( inputZip = inputZip, outputDir = publishedResources, filesStartingWith = "embed", ) - val referenceResources = projectPath.resolve("reference/$reference") assertDirectoryExists(publishedResources) - assertDirectoryExists(referenceResources) - assertEqualDirectories( + assertDirectoryExists(reference) + assertEqualDirectoriesIgnoringDotFiles( publishedResources.toFile(), - referenceResources.toFile(), - forgiveExtraFiles = false, - filter = { !it.name.startsWith(".") } + reference.toFile(), + forgiveOtherExtraFiles = false, ) } - private fun TestProject.unzip( - inputZip: String, - outputDir: Path, - filesStartingWith: String, - ) { - ZipFile(projectPath.resolve(inputZip).toFile()).use { - it.entries().asSequence().filter { it.name.startsWith(filesStartingWith) && !it.isDirectory }.forEach { entry -> - val outputFile = outputDir.resolve(Paths.get(entry.name)) - if (!outputFile.parent.toFile().exists()) - Files.createDirectories(outputFile.parent) - - it.getInputStream(entry).use { input -> - Files.copy(input, outputFile, StandardCopyOption.REPLACE_EXISTING) - } - } - } - } - -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/resources/multiplatformResourcesITUtils.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/resources/multiplatformResourcesITUtils.kt new file mode 100644 index 00000000000..27a5eb672f4 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/resources/multiplatformResourcesITUtils.kt @@ -0,0 +1,44 @@ +/* + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.mpp.resources + +import org.jetbrains.kotlin.gradle.testbase.BuildOptions +import org.jetbrains.kotlin.gradle.testbase.TestProject +import org.jetbrains.kotlin.gradle.testbase.build +import java.nio.file.Files +import java.nio.file.Path +import java.nio.file.Paths +import java.nio.file.StandardCopyOption +import java.util.zip.ZipFile + +fun TestProject.buildWithAGPVersion( + task: String, + androidVersion: String, + defaultBuildOptions: BuildOptions, +) { + build( + task, + buildOptions = defaultBuildOptions.copy(androidVersion = androidVersion) + ) +} + +fun unzip( + inputZip: Path, + outputDir: Path, + filesStartingWith: String, +) { + ZipFile(inputZip.toFile()).use { + it.entries().asSequence().filter { it.name.startsWith(filesStartingWith) && !it.isDirectory }.forEach { entry -> + val outputFile = outputDir.resolve(Paths.get(entry.name)) + if (!outputFile.parent.toFile().exists()) + Files.createDirectories(outputFile.parent) + + it.getInputStream(entry).use { input -> + Files.copy(input, outputFile, StandardCopyOption.REPLACE_EXISTING) + } + } + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/build.gradle.kts new file mode 100644 index 00000000000..b4e0f278a58 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/build.gradle.kts @@ -0,0 +1,4 @@ +plugins { + kotlin("multiplatform") apply false + id("com.android.application") apply false +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/build.gradle.kts new file mode 100644 index 00000000000..45c08689963 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/build.gradle.kts @@ -0,0 +1,85 @@ +@file:OptIn(ComposeKotlinGradlePluginApi::class) + +import org.gradle.api.provider.Provider +import org.jetbrains.kotlin.gradle.ComposeKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.resources.KotlinTargetResourcesPublication +import java.io.File + +group = "test" +version = "1.0" + +plugins { + kotlin("multiplatform") + id("com.android.application") +} + +repositories { + google() + mavenCentral() + mavenLocal() +} + +kotlin { + sourceSets { + commonMain { + dependencies { + api(project(":projectDependency")) + api("test:publication:+") + } + } + } + + val publication = project.ext.get( + KotlinTargetResourcesPublication.EXTENSION_NAME + ) as KotlinTargetResourcesPublication + + listOf( + androidTarget { + publishAllLibraryVariants() + compilations.all { + kotlinOptions.jvmTarget = "1.8" + } + } + ).forEach { target -> + val fontsFilter = if (target is KotlinAndroidTarget) listOf("fonts/*") else emptyList() + val relativeResourcePlacement = provider { File("embed/self") } + val sourceSetPathProvider: (KotlinSourceSet) -> (Provider) = { sourceSet -> + project.provider { project.file("src/${sourceSet.name}/multiplatformResources") } + } + + publication.publishResourcesAsKotlinComponent( + target = target, + resourcePathForSourceSet = { sourceSet -> + KotlinTargetResourcesPublication.ResourceRoot( + resourcesBaseDirectory = sourceSetPathProvider(sourceSet), + includes = emptyList(), + excludes = fontsFilter, + ) + }, + relativeResourcePlacement = relativeResourcePlacement, + ) + if (target is KotlinAndroidTarget) { + publication.publishInAndroidAssets( + target = target, + resourcePathForSourceSet = { sourceSet -> + KotlinTargetResourcesPublication.ResourceRoot( + resourcesBaseDirectory = sourceSetPathProvider(sourceSet), + includes = fontsFilter, + excludes = emptyList(), + ) + }, + relativeResourcePlacement = relativeResourcePlacement, + ) + } + } +} + +android { + namespace = "test.consumer" + compileSdk = 34 + defaultConfig { + minSdk = 24 + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/src/androidMain/AndroidManifest.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/src/androidMain/AndroidManifest.xml new file mode 100644 index 00000000000..56637a1035c --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/src/androidMain/AndroidManifest.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/src/commonMain/kotlin/stub.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/src/commonMain/kotlin/stub.kt new file mode 100644 index 00000000000..fc0472f9238 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/src/commonMain/kotlin/stub.kt @@ -0,0 +1 @@ +package project \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/src/commonMain/multiplatformResources/fonts/selfFont b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/src/commonMain/multiplatformResources/fonts/selfFont new file mode 100644 index 00000000000..1b68150feaa --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/src/commonMain/multiplatformResources/fonts/selfFont @@ -0,0 +1 @@ +fontsFromProject \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/src/commonMain/multiplatformResources/selfResources b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/src/commonMain/multiplatformResources/selfResources new file mode 100644 index 00000000000..601e057c8b7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/consumer/src/commonMain/multiplatformResources/selfResources @@ -0,0 +1 @@ +selfResources \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/projectDependency/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/projectDependency/build.gradle.kts new file mode 100644 index 00000000000..0d504d9ba71 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/projectDependency/build.gradle.kts @@ -0,0 +1,84 @@ +@file:OptIn(ComposeKotlinGradlePluginApi::class) + +import org.gradle.api.provider.Provider +import org.jetbrains.kotlin.gradle.ComposeKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.resources.KotlinTargetResourcesPublication +import java.io.File + +group = "test" +version = "1.0" + +plugins { + kotlin("multiplatform") + id("com.android.library") + `maven-publish` +} + +repositories { + google() + mavenCentral() + mavenLocal() +} + +kotlin { + val publication = project.ext.get( + KotlinTargetResourcesPublication.EXTENSION_NAME + ) as KotlinTargetResourcesPublication + + listOf( + androidTarget { + publishAllLibraryVariants() + compilations.all { + kotlinOptions.jvmTarget = "1.8" + } + }, + jvm(), + ).forEach { target -> + val fontsFilter = if (target is KotlinAndroidTarget) listOf("fonts/*") else emptyList() + val relativeResourcePlacement = provider { File("embed/subproject") } + val sourceSetPathProvider: (KotlinSourceSet) -> (Provider) = { sourceSet -> + project.provider { project.file("src/${sourceSet.name}/multiplatformResources") } + } + + publication.publishResourcesAsKotlinComponent( + target = target, + resourcePathForSourceSet = { sourceSet -> + KotlinTargetResourcesPublication.ResourceRoot( + resourcesBaseDirectory = sourceSetPathProvider(sourceSet), + includes = emptyList(), + excludes = fontsFilter, + ) + }, + relativeResourcePlacement = relativeResourcePlacement, + ) + if (target is KotlinAndroidTarget) { + publication.publishInAndroidAssets( + target = target, + resourcePathForSourceSet = { sourceSet -> + KotlinTargetResourcesPublication.ResourceRoot( + resourcesBaseDirectory = sourceSetPathProvider(sourceSet), + includes = fontsFilter, + excludes = emptyList(), + ) + }, + relativeResourcePlacement = relativeResourcePlacement, + ) + } + } +} + +publishing { + repositories { + maven("${buildDir}/repo") + } +} + +android { + namespace = "test.projectDependency" + compileSdk = 34 + defaultConfig { + minSdk = 24 + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/projectDependency/src/commonMain/kotlin/stub.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/projectDependency/src/commonMain/kotlin/stub.kt new file mode 100644 index 00000000000..fc0472f9238 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/projectDependency/src/commonMain/kotlin/stub.kt @@ -0,0 +1 @@ +package project \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/projectDependency/src/commonMain/multiplatformResources/fonts/fontsFromProject b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/projectDependency/src/commonMain/multiplatformResources/fonts/fontsFromProject new file mode 100644 index 00000000000..a8094e20f0e --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/projectDependency/src/commonMain/multiplatformResources/fonts/fontsFromProject @@ -0,0 +1 @@ +selfFont \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/projectDependency/src/commonMain/multiplatformResources/fromProject b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/projectDependency/src/commonMain/multiplatformResources/fromProject new file mode 100644 index 00000000000..b2a9bcd41f7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/projectDependency/src/commonMain/multiplatformResources/fromProject @@ -0,0 +1 @@ +fromProject \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/assets/assets/embed/published/fonts/font b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/assets/assets/embed/published/fonts/font new file mode 100644 index 00000000000..333252721d7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/assets/assets/embed/published/fonts/font @@ -0,0 +1 @@ +font \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/assets/assets/embed/self/fonts/selfFont b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/assets/assets/embed/self/fonts/selfFont new file mode 100644 index 00000000000..1b68150feaa --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/assets/assets/embed/self/fonts/selfFont @@ -0,0 +1 @@ +fontsFromProject \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/assets/assets/embed/subproject/fonts/fontsFromProject b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/assets/assets/embed/subproject/fonts/fontsFromProject new file mode 100644 index 00000000000..a8094e20f0e --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/assets/assets/embed/subproject/fonts/fontsFromProject @@ -0,0 +1 @@ +selfFont \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/inside/inCommon b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/inCommon similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/inside/inCommon rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/inCommon diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/inner/innerInCommon b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/inner/innerInCommon new file mode 100644 index 00000000000..17f24c06452 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/inner/innerInCommon @@ -0,0 +1 @@ +innerInCommon \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/inner/platformOverride b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/inner/platformOverride new file mode 100644 index 00000000000..cb2b6da6a30 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/inner/platformOverride @@ -0,0 +1 @@ +androidMain \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/onlyInAndroidMain b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/onlyInAndroidMain new file mode 100644 index 00000000000..6d8df5117df --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/onlyInAndroidMain @@ -0,0 +1 @@ +onlyInAndroidMain \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/self/selfResources b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/self/selfResources new file mode 100644 index 00000000000..601e057c8b7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/self/selfResources @@ -0,0 +1 @@ +selfResources \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/subproject/fromProject b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/subproject/fromProject new file mode 100644 index 00000000000..b2a9bcd41f7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/subproject/fromProject @@ -0,0 +1 @@ +fromProject \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/build.gradle.kts index d759e7b9127..5ca25d07381 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/build.gradle.kts @@ -1,35 +1,71 @@ @file:OptIn(ComposeKotlinGradlePluginApi::class) +import org.gradle.api.provider.Provider import org.jetbrains.kotlin.gradle.ComposeKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget import org.jetbrains.kotlin.gradle.plugin.mpp.resources.KotlinTargetResourcesPublication +import java.io.File group = "test" version = "1.0" plugins { kotlin("multiplatform") + id("com.android.library") `maven-publish` } +repositories { + google() + mavenCentral() + mavenLocal() +} + kotlin { val publication = project.ext.get( KotlinTargetResourcesPublication.EXTENSION_NAME ) as KotlinTargetResourcesPublication listOf( + androidTarget { + publishAllLibraryVariants() + compilations.all { + kotlinOptions.jvmTarget = "1.8" + } + }, jvm(), ).forEach { target -> + val fontsFilter = if (target is KotlinAndroidTarget) listOf("fonts/*") else emptyList() + val relativeResourcePlacement = provider { File("embed/published") } + val sourceSetPathProvider: (KotlinSourceSet) -> (Provider) = { sourceSet -> + project.provider { project.file("src/${sourceSet.name}/multiplatformResources") } + } + publication.publishResourcesAsKotlinComponent( - target, - { sourceSet -> + target = target, + resourcePathForSourceSet = { sourceSet -> KotlinTargetResourcesPublication.ResourceRoot( - resourcesBaseDirectory = project.provider { project.file("src/${sourceSet.name}/multiplatformResources") }, + resourcesBaseDirectory = sourceSetPathProvider(sourceSet), includes = emptyList(), - excludes = emptyList() + excludes = fontsFilter, ) }, - provider { File("embed/inside") } + relativeResourcePlacement = relativeResourcePlacement, ) + if (target is KotlinAndroidTarget) { + publication.publishInAndroidAssets( + target = target, + resourcePathForSourceSet = { sourceSet -> + KotlinTargetResourcesPublication.ResourceRoot( + resourcesBaseDirectory = sourceSetPathProvider(sourceSet), + includes = fontsFilter, + excludes = emptyList(), + ) + }, + relativeResourcePlacement = relativeResourcePlacement, + ) + } } } @@ -38,3 +74,11 @@ publishing { maven("${buildDir}/repo") } } + +android { + namespace = "test.publication" + compileSdk = 34 + defaultConfig { + minSdk = 24 + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidFonts/assets/embed/published/fonts/font b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidFonts/assets/embed/published/fonts/font new file mode 100644 index 00000000000..333252721d7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidFonts/assets/embed/published/fonts/font @@ -0,0 +1 @@ +font \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/inCommon b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/inCommon new file mode 100644 index 00000000000..7cbcb793c05 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/inCommon @@ -0,0 +1 @@ +inCommon \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/inner/innerInCommon b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/inner/innerInCommon new file mode 100644 index 00000000000..17f24c06452 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/inner/innerInCommon @@ -0,0 +1 @@ +innerInCommon \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/inner/platformOverride b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/inner/platformOverride new file mode 100644 index 00000000000..cb2b6da6a30 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/inner/platformOverride @@ -0,0 +1 @@ +androidMain \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/onlyInAndroidMain b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/onlyInAndroidMain new file mode 100644 index 00000000000..6d8df5117df --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/onlyInAndroidMain @@ -0,0 +1 @@ +onlyInAndroidMain \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/inside/inner/innerInCommon b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/inside/inner/innerInCommon deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/inCommon b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/inCommon new file mode 100644 index 00000000000..7cbcb793c05 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/inCommon @@ -0,0 +1 @@ +inCommon \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/inner/innerInCommon b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/inner/innerInCommon new file mode 100644 index 00000000000..17f24c06452 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/inner/innerInCommon @@ -0,0 +1 @@ +innerInCommon \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/inside/inner/platformOverride b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/inner/platformOverride similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/inside/inner/platformOverride rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/inner/platformOverride diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/inside/onlyInJvm b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/onlyInJvm similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/inside/onlyInJvm rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/onlyInJvm diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/androidMain/multiplatformResources/fonts/font b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/androidMain/multiplatformResources/fonts/font new file mode 100644 index 00000000000..333252721d7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/androidMain/multiplatformResources/fonts/font @@ -0,0 +1 @@ +font \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/androidMain/multiplatformResources/inner/platformOverride b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/androidMain/multiplatformResources/inner/platformOverride new file mode 100644 index 00000000000..cb2b6da6a30 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/androidMain/multiplatformResources/inner/platformOverride @@ -0,0 +1 @@ +androidMain \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/androidMain/multiplatformResources/onlyInAndroidMain b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/androidMain/multiplatformResources/onlyInAndroidMain new file mode 100644 index 00000000000..6d8df5117df --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/androidMain/multiplatformResources/onlyInAndroidMain @@ -0,0 +1 @@ +onlyInAndroidMain \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/commonMain/multiplatformResources/inner/innerInCommon b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/commonMain/multiplatformResources/inner/innerInCommon index e69de29bb2d..17f24c06452 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/commonMain/multiplatformResources/inner/innerInCommon +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/commonMain/multiplatformResources/inner/innerInCommon @@ -0,0 +1 @@ +innerInCommon \ No newline at end of file