From fc33892e7004db4ae81ccca43f8749bea08e1953 Mon Sep 17 00:00:00 2001 From: Anton Lakotka Date: Fri, 19 May 2023 13:49:39 +0200 Subject: [PATCH] [Gradle] Test cinterop dependency from composite build KT-58471 Verification Pending --- .../gradle/MppIdeDependencyResolutionIT.kt | 19 ++++++++ .../build.gradle.kts | 28 ++++++++++++ .../gradle.properties | 1 + .../includedLib/build.gradle.kts | 45 +++++++++++++++++++ .../includedLib/gradle.properties | 1 + .../includedLib/settings.gradle.kts | 1 + .../src/commonMain/kotlin/CommonMain.kt | 4 ++ .../src/linuxArm64Main/kotlin/LinuxArm64.kt | 8 ++++ .../src/linuxMain/kotlin/LinuxMain.kt | 13 ++++++ .../src/linuxX64Main/kotlin/LinuxX64.kt | 8 ++++ .../src/nativeInterop/cinterop/a.def | 11 +++++ .../src/nativeInterop/cinterop/b.def | 7 +++ .../src/nativeInterop/cinterop/c.def | 7 +++ .../lib/build.gradle.kts | 38 ++++++++++++++++ .../lib/src/commonMain/kotlin/CommonMain.kt | 4 ++ .../src/linuxArm64Main/kotlin/LinuxArm64.kt | 8 ++++ .../lib/src/linuxMain/kotlin/LinuxMain.kt | 13 ++++++ .../lib/src/linuxX64Main/kotlin/LinuxX64.kt | 8 ++++ .../lib/src/nativeInterop/cinterop/a.def | 11 +++++ .../lib/src/nativeInterop/cinterop/b.def | 7 +++ .../lib/src/nativeInterop/cinterop/c.def | 7 +++ .../settings.gradle.kts | 2 + .../src/commonMain/kotlin/common.kt | 6 +++ .../src/linuxMain/kotlin/linux.kt | 8 ++++ 24 files changed, 265 insertions(+) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/gradle.properties create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/gradle.properties create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/settings.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/commonMain/kotlin/CommonMain.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/linuxArm64Main/kotlin/LinuxArm64.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/linuxMain/kotlin/LinuxMain.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/linuxX64Main/kotlin/LinuxX64.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/nativeInterop/cinterop/a.def create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/nativeInterop/cinterop/b.def create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/nativeInterop/cinterop/c.def create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/commonMain/kotlin/CommonMain.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/linuxArm64Main/kotlin/LinuxArm64.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/linuxMain/kotlin/LinuxMain.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/linuxX64Main/kotlin/LinuxX64.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/nativeInterop/cinterop/a.def create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/nativeInterop/cinterop/b.def create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/nativeInterop/cinterop/c.def create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/settings.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/src/commonMain/kotlin/common.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/src/linuxMain/kotlin/linux.kt diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/MppIdeDependencyResolutionIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/MppIdeDependencyResolutionIT.kt index 3bf038b6a74..e7e0d53d7e9 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/MppIdeDependencyResolutionIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/MppIdeDependencyResolutionIT.kt @@ -18,12 +18,15 @@ import org.jetbrains.kotlin.gradle.idea.testFixtures.tcs.assertMatches import org.jetbrains.kotlin.gradle.idea.testFixtures.tcs.binaryCoordinates import org.jetbrains.kotlin.gradle.testbase.* import org.jetbrains.kotlin.gradle.util.kotlinNativeDistributionDependencies +import org.jetbrains.kotlin.gradle.util.replaceText import org.jetbrains.kotlin.gradle.util.resolveIdeDependencies import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.target.KonanTarget.* import org.junit.AssumptionViolatedException import org.junit.jupiter.api.DisplayName +import org.junit.jupiter.api.io.TempDir import java.nio.ByteBuffer +import java.nio.file.Path import java.util.* import java.util.zip.CRC32 import kotlin.test.assertEquals @@ -258,6 +261,22 @@ class MppIdeDependencyResolutionIT : KGPBaseTest() { } } + @GradleTest + fun `test dependency on composite build with commonized cinterops`(gradleVersion: GradleVersion, @TempDir tempDir: Path) { + val includedLib = project("composite-build-with-cinterop-commonization/includedLib", gradleVersion, localRepoDir = tempDir) + project("composite-build-with-cinterop-commonization", gradleVersion, localRepoDir = tempDir) { + settingsGradleKts.replaceText("", includedLib.projectPath.toUri().toString()) + // Quick fix for: KT-58815 + build(":lib:copyCommonizeCInteropForIde") + resolveIdeDependencies { dependencies -> + dependencies["linuxMain"].cinteropDependencies().assertMatches( + binaryCoordinates("org.example:included-lib-cinterop-a:null:(linux_arm64, linux_x64)"), + binaryCoordinates("org.example:lib-cinterop-a:null:(linux_arm64, linux_x64)"), + ) + } + } + } + private fun Iterable.cinteropDependencies() = this.filterIsInstance().filter { it.klibExtra?.isInterop == true && !it.isNativeStdlib && !it.isNativeDistribution diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/build.gradle.kts new file mode 100644 index 00000000000..7f04c7967cd --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/build.gradle.kts @@ -0,0 +1,28 @@ +plugins { + kotlin("multiplatform") +} + +group = "org.example" +version = "1.0" + +repositories { + mavenLocal() + mavenCentral() + maven("") +} + +kotlin { + targetHierarchy.default() + jvm() + linuxX64() + linuxArm64() + + sourceSets { + commonMain { + dependencies { + api("org.example:included-lib:1.0") + api(project(":lib")) + } + } + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/gradle.properties new file mode 100644 index 00000000000..8c16cf3d552 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/gradle.properties @@ -0,0 +1 @@ +kotlin.mpp.enableCInteropCommonization=true diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/build.gradle.kts new file mode 100644 index 00000000000..5e73624b852 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/build.gradle.kts @@ -0,0 +1,45 @@ +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget + +plugins { + kotlin("multiplatform") + `maven-publish` +} + +repositories { + mavenLocal() + mavenCentral() +} + +group = "org.example" +version = "1.0" + +fun KotlinNativeTarget.cinterop(name: String = "a") { + compilations + .getByName("main") + .cinterops + .create(name) +} + +kotlin { + targetHierarchy.default() + + jvm() + + linuxX64 { + cinterop() + cinterop("b") + } + linuxArm64 { + cinterop() + cinterop("c") + } + + sourceSets { + } +} + +publishing { + repositories { + maven(rootDir.resolve("")) + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/gradle.properties new file mode 100644 index 00000000000..2db016ae4e4 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/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/composite-build-with-cinterop-commonization/includedLib/settings.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/settings.gradle.kts new file mode 100644 index 00000000000..1e161e1697c --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "included-lib" \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/commonMain/kotlin/CommonMain.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/commonMain/kotlin/CommonMain.kt new file mode 100644 index 00000000000..bdea7d28a43 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/commonMain/kotlin/CommonMain.kt @@ -0,0 +1,4 @@ +package includedLib + +class CommonMain { +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/linuxArm64Main/kotlin/LinuxArm64.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/linuxArm64Main/kotlin/LinuxArm64.kt new file mode 100644 index 00000000000..d5c90bf91b4 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/linuxArm64Main/kotlin/LinuxArm64.kt @@ -0,0 +1,8 @@ +package includedLib + +fun linuxArm64( + a: cinterop.a.StructA +) { + cinterop.a.a() + cinterop.c.c() +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/linuxMain/kotlin/LinuxMain.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/linuxMain/kotlin/LinuxMain.kt new file mode 100644 index 00000000000..54d99c5561c --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/linuxMain/kotlin/LinuxMain.kt @@ -0,0 +1,13 @@ +package includedLib + +import kotlinx.cinterop.ExperimentalForeignApi +import kotlinx.cinterop.alloc +import kotlinx.cinterop.memScoped + +fun linuxMain() { + cinterop.a.a() + @OptIn(ExperimentalForeignApi::class) + memScoped { + alloc() + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/linuxX64Main/kotlin/LinuxX64.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/linuxX64Main/kotlin/LinuxX64.kt new file mode 100644 index 00000000000..77dde3e175d --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/linuxX64Main/kotlin/LinuxX64.kt @@ -0,0 +1,8 @@ +package includedLib + +fun linuxX64( + a: cinterop.a.StructA +) { + cinterop.a.a() + cinterop.b.b() +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/nativeInterop/cinterop/a.def b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/nativeInterop/cinterop/a.def new file mode 100644 index 00000000000..57c631a782f --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/nativeInterop/cinterop/a.def @@ -0,0 +1,11 @@ +package=cinterop.a +--- + +static int a() { + return 1; +} + +struct StructA { + int a; + int b; +}; diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/nativeInterop/cinterop/b.def b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/nativeInterop/cinterop/b.def new file mode 100644 index 00000000000..a87fcf4917b --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/nativeInterop/cinterop/b.def @@ -0,0 +1,7 @@ +package=cinterop.b +--- + +static int b() { + return 1; +} + diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/nativeInterop/cinterop/c.def b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/nativeInterop/cinterop/c.def new file mode 100644 index 00000000000..b403c00c7d6 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/includedLib/src/nativeInterop/cinterop/c.def @@ -0,0 +1,7 @@ +package=cinterop.c +--- + +static int c() { + return 1; +} + diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/build.gradle.kts new file mode 100644 index 00000000000..ef1a83d2275 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/build.gradle.kts @@ -0,0 +1,38 @@ +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget + +plugins { + kotlin("multiplatform") +} + +repositories { + mavenLocal() + mavenCentral() +} + +group = "org.example" +version = "1.0" + +fun KotlinNativeTarget.cinterop(name: String = "a") { + compilations + .getByName("main") + .cinterops + .create(name) +} + +kotlin { + targetHierarchy.default() + + jvm() + + linuxX64 { + cinterop() + cinterop("b") + } + linuxArm64 { + cinterop() + cinterop("c") + } + + sourceSets { + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/commonMain/kotlin/CommonMain.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/commonMain/kotlin/CommonMain.kt new file mode 100644 index 00000000000..3442dbad04c --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/commonMain/kotlin/CommonMain.kt @@ -0,0 +1,4 @@ +package lib + +class CommonMain { +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/linuxArm64Main/kotlin/LinuxArm64.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/linuxArm64Main/kotlin/LinuxArm64.kt new file mode 100644 index 00000000000..19fccb66a0b --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/linuxArm64Main/kotlin/LinuxArm64.kt @@ -0,0 +1,8 @@ +package lib + +fun linuxArm64( + a: cinterop.lib.a.StructA +) { + cinterop.lib.a.a() + cinterop.lib.c.c() +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/linuxMain/kotlin/LinuxMain.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/linuxMain/kotlin/LinuxMain.kt new file mode 100644 index 00000000000..819fc9e10fc --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/linuxMain/kotlin/LinuxMain.kt @@ -0,0 +1,13 @@ +package lib + +import kotlinx.cinterop.ExperimentalForeignApi +import kotlinx.cinterop.alloc +import kotlinx.cinterop.memScoped + +fun linuxMain() { + cinterop.lib.a.a() + @OptIn(ExperimentalForeignApi::class) + memScoped { + alloc() + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/linuxX64Main/kotlin/LinuxX64.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/linuxX64Main/kotlin/LinuxX64.kt new file mode 100644 index 00000000000..e7c2a144745 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/linuxX64Main/kotlin/LinuxX64.kt @@ -0,0 +1,8 @@ +package lib + +fun linuxX64( + a: cinterop.lib.a.StructA +) { + cinterop.lib.a.a() + cinterop.lib.b.b() +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/nativeInterop/cinterop/a.def b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/nativeInterop/cinterop/a.def new file mode 100644 index 00000000000..e142f242cbb --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/nativeInterop/cinterop/a.def @@ -0,0 +1,11 @@ +package=cinterop.lib.a +--- + +static int a() { + return 1; +} + +struct StructA { + int a; + int b; +}; diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/nativeInterop/cinterop/b.def b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/nativeInterop/cinterop/b.def new file mode 100644 index 00000000000..237f05ccc56 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/nativeInterop/cinterop/b.def @@ -0,0 +1,7 @@ +package=cinterop.lib.b +--- + +static int b() { + return 1; +} + diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/nativeInterop/cinterop/c.def b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/nativeInterop/cinterop/c.def new file mode 100644 index 00000000000..8ccf267a718 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/lib/src/nativeInterop/cinterop/c.def @@ -0,0 +1,7 @@ +package=cinterop.lib.c +--- + +static int c() { + return 1; +} + diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/settings.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/settings.gradle.kts new file mode 100644 index 00000000000..92e6a9f9d6e --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/settings.gradle.kts @@ -0,0 +1,2 @@ +includeBuild("") +include(":lib") \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/src/commonMain/kotlin/common.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/src/commonMain/kotlin/common.kt new file mode 100644 index 00000000000..5455472ff54 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/src/commonMain/kotlin/common.kt @@ -0,0 +1,6 @@ +package app + +fun common() { + +} + diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/src/linuxMain/kotlin/linux.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/src/linuxMain/kotlin/linux.kt new file mode 100644 index 00000000000..54eb90b5336 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/composite-build-with-cinterop-commonization/src/linuxMain/kotlin/linux.kt @@ -0,0 +1,8 @@ +package app + +fun linux() { + common() + + includedLib.linuxMain() + cinterop.a.a() +} \ No newline at end of file