From e35e2eaa483ffa80072883f6587b1280b7a83dec Mon Sep 17 00:00:00 2001 From: Timofey Solonin Date: Mon, 19 Feb 2024 02:50:08 +0100 Subject: [PATCH] Add an IT for publication of multiplatform resources in a native target ^KT-65540 --- .../MultiplatformResourcesPublicationIT.kt | 16 ++++++++++++++++ .../android/projectDependency/build.gradle.kts | 1 + .../embed/{published => publication}/fonts/font | 0 .../embed/{published => publication}/inCommon | 0 .../inner/innerInCommon | 0 .../inner/platformOverride | 0 .../{published => publication}/onlyInAndroidMain | 0 .../publication/build.gradle.kts | 7 +++++-- .../embed/{published => publication}/fonts/font | 0 .../embed/{published => publication}/inCommon | 0 .../inner/innerInCommon | 0 .../inner/platformOverride | 0 .../{published => publication}/onlyInAndroidMain | 0 .../embed/{published => publication}/inCommon | 0 .../inner/innerInCommon | 0 .../inner/platformOverride | 0 .../embed/{published => publication}/onlyInJvm | 0 .../linuxX64/embed/publication/inCommon | 1 + .../embed/publication/inner/innerInCommon | 1 + .../embed/publication/inner/platformOverride | 1 + .../linuxX64/embed/publication/onlyInLinuxX64 | 1 + .../inner/platformOverride | 1 + .../multiplatformResources/onlyInLinuxX64 | 1 + 23 files changed, 28 insertions(+), 2 deletions(-) rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/assets/assets/embed/{published => publication}/fonts/font (100%) rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/{published => publication}/inCommon (100%) rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/{published => publication}/inner/innerInCommon (100%) rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/{published => publication}/inner/platformOverride (100%) rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/{published => publication}/onlyInAndroidMain (100%) rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidFonts/assets/embed/{published => publication}/fonts/font (100%) rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/{published => publication}/inCommon (100%) rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/{published => publication}/inner/innerInCommon (100%) rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/{published => publication}/inner/platformOverride (100%) rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/{published => publication}/onlyInAndroidMain (100%) rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/{published => publication}/inCommon (100%) rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/{published => publication}/inner/innerInCommon (100%) rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/{published => publication}/inner/platformOverride (100%) rename libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/{published => publication}/onlyInJvm (100%) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64/embed/publication/inCommon create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64/embed/publication/inner/innerInCommon create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64/embed/publication/inner/platformOverride create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64/embed/publication/onlyInLinuxX64 create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/linuxX64Main/multiplatformResources/inner/platformOverride create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/linuxX64Main/multiplatformResources/onlyInLinuxX64 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 f9aef568231..a64139366e3 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 @@ -77,6 +77,22 @@ class MultiplatformResourcesPublicationIT : KGPBaseTest() { ) } + @DisplayName("Multiplatform resources publication for Native target") + @GradleAndroidTest + fun testNativeTargetResourcesPublication( + gradleVersion: GradleVersion, + androidVersion: String, + providedJdk: JdkVersions.ProvidedJdk, + ) { + testEmbeddedResources( + gradleVersion, + androidVersion, + providedJdk, + publicationTask = ":publishLinuxX64PublicationToMavenRepository", + publishedArchive = "build/repo/test/publication-linuxx64/1.0/publication-linuxx64-1.0-kotlin_resources.kotlin_resources.zip", + referenceName = "linuxX64", + ) + } private fun testEmbeddedResources( gradleVersion: GradleVersion, androidVersion: String, 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 index 0d504d9ba71..5c77730e2c1 100644 --- 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 @@ -35,6 +35,7 @@ kotlin { } }, jvm(), + linuxX64(), ).forEach { target -> val fontsFilter = if (target is KotlinAndroidTarget) listOf("fonts/*") else emptyList() val relativeResourcePlacement = provider { File("embed/subproject") } 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/publication/fonts/font similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/assets/assets/embed/published/fonts/font rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/assets/assets/embed/publication/fonts/font diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/inCommon b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/publication/inCommon similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/inCommon rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/publication/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/publication/inner/innerInCommon similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/inner/innerInCommon rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/publication/inner/innerInCommon 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/publication/inner/platformOverride similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/inner/platformOverride rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/publication/inner/platformOverride 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/publication/onlyInAndroidMain similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/published/onlyInAndroidMain rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/android/reference/resources/embed/publication/onlyInAndroidMain 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 5ca25d07381..285e13c7002 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 @@ -35,9 +35,12 @@ kotlin { } }, jvm(), + linuxX64(), + iosArm64(), + iosSimulatorArm64(), ).forEach { target -> val fontsFilter = if (target is KotlinAndroidTarget) listOf("fonts/*") else emptyList() - val relativeResourcePlacement = provider { File("embed/published") } + val relativeResourcePlacement = provider { File("embed/${project.name}") } val sourceSetPathProvider: (KotlinSourceSet) -> (Provider) = { sourceSet -> project.provider { project.file("src/${sourceSet.name}/multiplatformResources") } } @@ -76,7 +79,7 @@ publishing { } android { - namespace = "test.publication" + namespace = "test.${project.name}" 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/publication/fonts/font similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidFonts/assets/embed/published/fonts/font rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidFonts/assets/embed/publication/fonts/font 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/publication/inCommon similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/inCommon rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/publication/inCommon 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/publication/inner/innerInCommon similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/inner/innerInCommon rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/publication/inner/innerInCommon 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/publication/inner/platformOverride similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/inner/platformOverride rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/publication/inner/platformOverride 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/publication/onlyInAndroidMain similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/published/onlyInAndroidMain rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/androidMain/embed/publication/onlyInAndroidMain 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/publication/inCommon similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/inCommon rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/publication/inCommon 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/publication/inner/innerInCommon similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/inner/innerInCommon rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/publication/inner/innerInCommon diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/inner/platformOverride b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/publication/inner/platformOverride similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/inner/platformOverride rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/publication/inner/platformOverride diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/onlyInJvm b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/publication/onlyInJvm similarity index 100% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/published/onlyInJvm rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/jvm/embed/publication/onlyInJvm diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64/embed/publication/inCommon b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64/embed/publication/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/linuxX64/embed/publication/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/linuxX64/embed/publication/inner/innerInCommon b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64/embed/publication/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/linuxX64/embed/publication/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/linuxX64/embed/publication/inner/platformOverride b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64/embed/publication/inner/platformOverride new file mode 100644 index 00000000000..0f94db7a779 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64/embed/publication/inner/platformOverride @@ -0,0 +1 @@ +linuxX64Override \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64/embed/publication/onlyInLinuxX64 b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64/embed/publication/onlyInLinuxX64 new file mode 100644 index 00000000000..881c2658365 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64/embed/publication/onlyInLinuxX64 @@ -0,0 +1 @@ +onlyInLinuxX64 \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/linuxX64Main/multiplatformResources/inner/platformOverride b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/linuxX64Main/multiplatformResources/inner/platformOverride new file mode 100644 index 00000000000..0f94db7a779 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/linuxX64Main/multiplatformResources/inner/platformOverride @@ -0,0 +1 @@ +linuxX64Override \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/linuxX64Main/multiplatformResources/onlyInLinuxX64 b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/linuxX64Main/multiplatformResources/onlyInLinuxX64 new file mode 100644 index 00000000000..881c2658365 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/src/linuxX64Main/multiplatformResources/onlyInLinuxX64 @@ -0,0 +1 @@ +onlyInLinuxX64 \ No newline at end of file