From 59d78b4d963834a97a90a5e20237478d93a8f6b3 Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Thu, 6 Apr 2023 11:27:19 +0200 Subject: [PATCH] [Gradle] Create `commonize-kt-57796-twoCInteropCommonizerGroups` to cover KT-57796 --- .../jetbrains/kotlin/gradle/CommonizerIT.kt | 14 ++++++++++ .../app/build.gradle.kts | 24 +++++++++++++++++ .../app/libapp.h | 1 + .../app/src/nativeInterop/cinterop/libapp.def | 0 .../build.gradle.kts | 10 +++++++ .../gradle.properties | 1 + .../lib/build.gradle.kts | 27 +++++++++++++++++++ .../lib/liblinux.h | 1 + .../lib/libmacos.h | 1 + .../src/nativeInterop/cinterop/liblinux.def | 0 .../src/nativeInterop/cinterop/libmacos.def | 0 .../settings.gradle.kts | 2 ++ 12 files changed, 81 insertions(+) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/app/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/app/libapp.h create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/app/src/nativeInterop/cinterop/libapp.def create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/gradle.properties create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/liblinux.h create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/libmacos.h create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/src/nativeInterop/cinterop/liblinux.def create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/src/nativeInterop/cinterop/libmacos.def create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/settings.gradle.kts diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CommonizerIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CommonizerIT.kt index ec4c2bb164a..32ab803cb7c 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CommonizerIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CommonizerIT.kt @@ -700,6 +700,20 @@ open class CommonizerIT : BaseGradleIT() { } } + @Test + fun `test KT-57796 commonization with two cinterop commonizer groups`() { + with(Project("commonize-kt-57796-twoCInteropCommonizerGroups")) { + build(":app:commonizeCIntero") { + assertSuccessful() + assertTasksExecuted(":lib:transformCommonMainCInteropDependenciesMetadata") + assertTasksExecuted(":lib:commonizeCInterop") + assertTasksExecuted(":app:transformCommonMainCInteropDependenciesMetadata") + assertTasksExecuted(":app:commonizeCInterop") + } + } + } + + @Test fun `test KT-56729 commonization with library containing two roots`() { with(Project("commonize-kt-56729-consume-library-with-two-roots")) { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/app/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/app/build.gradle.kts new file mode 100644 index 00000000000..5bcdc66707e --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/app/build.gradle.kts @@ -0,0 +1,24 @@ +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget + +plugins { + kotlin("multiplatform") +} + +kotlin { + linuxX64() + linuxArm64() + macosX64() + macosArm64() + + targetHierarchy.default() + + targets.withType().all { + compilations.getByName("main").cinterops.create("libapp") { + headers(file("libapp.h")) + } + } + + sourceSets.commonMain.get().dependencies { + implementation(project(":lib")) + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/app/libapp.h b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/app/libapp.h new file mode 100644 index 00000000000..1967876d3e5 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/app/libapp.h @@ -0,0 +1 @@ +void libapp(); \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/app/src/nativeInterop/cinterop/libapp.def b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/app/src/nativeInterop/cinterop/libapp.def new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/build.gradle.kts new file mode 100644 index 00000000000..f556befce79 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/build.gradle.kts @@ -0,0 +1,10 @@ +plugins { + kotlin("multiplatform").apply(false) +} + +allprojects { + repositories { + mavenLocal() + mavenCentral() + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/gradle.properties new file mode 100644 index 00000000000..2db016ae4e4 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/gradle.properties @@ -0,0 +1 @@ +kotlin.mpp.enableCInteropCommonization=true \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/build.gradle.kts new file mode 100644 index 00000000000..419b9862a01 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/build.gradle.kts @@ -0,0 +1,27 @@ +plugins { + kotlin("multiplatform") +} + +kotlin { + linuxX64() + linuxArm64() + + macosX64() + macosArm64() + + targetHierarchy.default() + + /* first cinterop commonizer group */ + listOf(macosX64(), macosArm64()).forEach { target -> + target.compilations.getByName("main").cinterops.create("libmacos") { + headers(file("libmacos.h")) + } + } + + /* Second cinterop commonizer group */ + listOf(linuxX64(), linuxArm64()).forEach { target -> + target.compilations.getByName("main").cinterops.create("liblinux") { + headers(file("liblinux.h")) + } + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/liblinux.h b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/liblinux.h new file mode 100644 index 00000000000..3ac707a4b16 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/liblinux.h @@ -0,0 +1 @@ +void liblinux(); \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/libmacos.h b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/libmacos.h new file mode 100644 index 00000000000..bcad094c43b --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/libmacos.h @@ -0,0 +1 @@ +void libmacos(); \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/src/nativeInterop/cinterop/liblinux.def b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/src/nativeInterop/cinterop/liblinux.def new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/src/nativeInterop/cinterop/libmacos.def b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/lib/src/nativeInterop/cinterop/libmacos.def new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/settings.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/settings.gradle.kts new file mode 100644 index 00000000000..87b1985caaf --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-57796-twoCInteropCommonizerGroups/settings.gradle.kts @@ -0,0 +1,2 @@ +include(":app") +include(":lib") \ No newline at end of file