diff --git a/.github/workflows/gradle-plugin.yml b/.github/workflows/gradle-plugin.yml index d5d688cc4aa..53a51f71963 100644 --- a/.github/workflows/gradle-plugin.yml +++ b/.github/workflows/gradle-plugin.yml @@ -17,8 +17,8 @@ jobs: fail-fast: false matrix: os: [ubuntu-20.04, macos-14, windows-2022] - gradle: [7.4, 8.7] - agp: [8.1.0, 8.4.0] + gradle: [7.4, 8.8] + agp: [8.1.0, 8.5.0] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 diff --git a/gradle-plugins/compose/build.gradle.kts b/gradle-plugins/compose/build.gradle.kts index b49fe5f0e61..de5b015a58f 100644 --- a/gradle-plugins/compose/build.gradle.kts +++ b/gradle-plugins/compose/build.gradle.kts @@ -43,12 +43,6 @@ val embeddedDependencies by configurations.creating { isTransitive = false } -val kgpResourcesDevVersion = "2.0.0-dev-17632" -//KMP resources API available since ^kgpResourcesDevVersion -repositories { - maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/") -} - dependencies { // By default, Gradle resolves plugins only via Gradle Plugin Portal. // To avoid declaring an additional repo, all dependencies must: @@ -63,7 +57,7 @@ dependencies { compileOnly(gradleApi()) compileOnly(localGroovy()) - compileOnly(kotlin("gradle-plugin", kgpResourcesDevVersion)) + compileOnly(kotlin("gradle-plugin")) compileOnly(kotlin("native-utils")) compileOnly(libs.plugin.android) compileOnly(libs.plugin.android.api) diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResources.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResources.kt index 1a05e615e89..ae31edbafbb 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResources.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResources.kt @@ -1,18 +1,20 @@ package org.jetbrains.compose.resources -import org.gradle.api.DefaultTask import org.gradle.api.Project import org.gradle.api.file.Directory import org.gradle.api.plugins.ExtensionAware -import org.gradle.api.provider.Property import org.gradle.api.provider.Provider import org.gradle.api.tasks.Copy -import org.gradle.api.tasks.TaskAction import org.jetbrains.compose.desktop.application.internal.ComposeProperties -import org.jetbrains.compose.internal.utils.* +import org.jetbrains.compose.internal.utils.dependsOn +import org.jetbrains.compose.internal.utils.joinLowerCamelCase +import org.jetbrains.compose.internal.utils.registerOrConfigure +import org.jetbrains.compose.internal.utils.uppercaseFirstChar import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jetbrains.kotlin.gradle.plugin.cocoapods.CocoapodsExtension -import org.jetbrains.kotlin.gradle.plugin.mpp.* +import org.jetbrains.kotlin.gradle.plugin.mpp.Framework +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.TestExecutable import org.jetbrains.kotlin.konan.target.KonanTarget import java.io.File @@ -137,7 +139,7 @@ private fun KotlinNativeTarget.isIosSimulatorTarget(): Boolean = konanTarget === KonanTarget.IOS_X64 || konanTarget === KonanTarget.IOS_SIMULATOR_ARM64 private fun KotlinNativeTarget.isIosDeviceTarget(): Boolean = - konanTarget === KonanTarget.IOS_ARM64 || konanTarget === KonanTarget.IOS_ARM32 + konanTarget === KonanTarget.IOS_ARM64 private fun KotlinNativeTarget.isIosTarget(): Boolean = isIosSimulatorTarget() || isIosDeviceTarget() \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResourcesTasks.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResourcesTasks.kt index 90681d3166d..b024e9412b9 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResourcesTasks.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResourcesTasks.kt @@ -4,8 +4,16 @@ import org.gradle.api.DefaultTask import org.gradle.api.file.DirectoryProperty import org.gradle.api.file.FileCollection import org.gradle.api.model.ObjectFactory -import org.gradle.api.provider.* -import org.gradle.api.tasks.* +import org.gradle.api.provider.MapProperty +import org.gradle.api.provider.Provider +import org.gradle.api.provider.ProviderFactory +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.InputFiles +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.OutputDirectory +import org.gradle.api.tasks.PathSensitive +import org.gradle.api.tasks.PathSensitivity +import org.gradle.api.tasks.TaskAction import org.jetbrains.kotlin.konan.target.KonanTarget import javax.inject.Inject @@ -95,7 +103,6 @@ private fun getRequestedKonanTargetsByXcode(platform: String, archs: List when (arch) { "arm64", "arm64e" -> KonanTarget.IOS_ARM64 - "armv7", "armv7s" -> KonanTarget.IOS_ARM32 else -> error("Unknown iOS device arch: '$arch'") } }) diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/DesktopApplicationTest.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/DesktopApplicationTest.kt index 0653807888a..1eeb113f8b0 100644 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/DesktopApplicationTest.kt +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/DesktopApplicationTest.kt @@ -12,20 +12,31 @@ import org.jetbrains.compose.internal.utils.currentArch import org.jetbrains.compose.internal.utils.currentOS import org.jetbrains.compose.internal.utils.currentTarget import org.jetbrains.compose.internal.utils.uppercaseFirstChar -import org.jetbrains.compose.test.utils.* - -import java.io.File -import java.util.* +import org.jetbrains.compose.test.utils.GradlePluginTestBase +import org.jetbrains.compose.test.utils.JDK_11_BYTECODE_VERSION +import org.jetbrains.compose.test.utils.ProcessRunResult +import org.jetbrains.compose.test.utils.TestProject +import org.jetbrains.compose.test.utils.assertEqualTextFiles +import org.jetbrains.compose.test.utils.assertNotEqualTextFiles +import org.jetbrains.compose.test.utils.checkContains +import org.jetbrains.compose.test.utils.checkExists +import org.jetbrains.compose.test.utils.checkNotExists +import org.jetbrains.compose.test.utils.checks +import org.jetbrains.compose.test.utils.modify +import org.jetbrains.compose.test.utils.readClassFileVersion +import org.jetbrains.compose.test.utils.runProcess import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertFalse import org.junit.jupiter.api.Assumptions import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test +import java.io.File +import java.util.* import java.util.jar.JarFile class DesktopApplicationTest : GradlePluginTestBase() { @Test - fun smokeTestRunTask() = with(testProject(TestProjects.jvm)) { + fun smokeTestRunTask() = with(testProject("application/jvm")) { file("build.gradle").modify { it + """ afterEvaluate { @@ -62,7 +73,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun testRunMpp() = with(testProject(TestProjects.mpp)) { + fun testRunMpp() = with(testProject("application/mpp")) { val logLine = "Kotlin MPP app is running!" gradle("run").checks { check.taskSuccessful(":run") @@ -84,60 +95,8 @@ class DesktopApplicationTest : GradlePluginTestBase() { } } - /** - * Test the version of Compose Compiler published by Google. - * See https://developer.android.com/jetpack/androidx/releases/compose-kotlin - */ - @Test - fun testAndroidxCompiler() = testProject( - TestProjects.customCompiler, defaultTestEnvironment.copy( - kotlinVersion = "1.8.0", - composeCompilerPlugin = "\"androidx.compose.compiler:compiler:1.4.0\"" - ) - ).checkCustomComposeCompiler() - - @Test - fun testSettingLatestCompiler() = testProject( - TestProjects.customCompiler, defaultTestEnvironment.copy( - kotlinVersion = "1.8.20", - composeCompilerPlugin = "dependencies.compiler.forKotlin(\"1.8.20\")", - ) - ).checkCustomComposeCompiler() - - @Test - fun testSettingAutoCompiler() = testProject( - TestProjects.customCompiler, defaultTestEnvironment.copy( - kotlinVersion = "1.8.10", - composeCompilerPlugin = "dependencies.compiler.auto", - ) - ).checkCustomComposeCompiler() - - @Test - fun testKotlinCheckDisabled() = testProject( - TestProjects.customCompilerArgs, defaultTestEnvironment.copy( - kotlinVersion = "1.9.21", - composeCompilerPlugin = "dependencies.compiler.forKotlin(\"1.9.20\")", - composeCompilerArgs = "\"suppressKotlinVersionCompatibilityCheck=1.9.21\"" - ) - ).checkCustomComposeCompiler(checkKJS = true) - - private fun TestProject.checkCustomComposeCompiler(checkKJS: Boolean = false) { - gradle(":runDistributable").checks { - val actualMainImage = file("main-image.actual.png") - val expectedMainImage = file("main-image.expected.png") - assert(actualMainImage.readBytes().contentEquals(expectedMainImage.readBytes())) { - "The actual image '$actualMainImage' does not match the expected image '$expectedMainImage'" - } - } - if (checkKJS) { - gradle(":jsBrowserProductionWebpack").checks { - check.taskSuccessful(":jsBrowserProductionWebpack") - } - } - } - @Test - fun kotlinDsl(): Unit = with(testProject(TestProjects.jvmKotlinDsl)) { + fun kotlinDsl(): Unit = with(testProject("application/jvmKotlinDsl")) { gradle(":packageDistributionForCurrentOS", "--dry-run") gradle(":packageReleaseDistributionForCurrentOS", "--dry-run") } @@ -145,7 +104,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { @Test fun proguard(): Unit = with( testProject( - TestProjects.proguard, + "application/proguard", testEnvironment = defaultTestEnvironment.copy(composeVerbose = false)) ) { val enableObfuscation = """ @@ -188,12 +147,12 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun joinOutputJarsJvm() = with(testProject(TestProjects.jvm)) { + fun joinOutputJarsJvm() = with(testProject("application/jvm")) { joinOutputJars() } @Test - fun joinOutputJarsMpp() = with(testProject(TestProjects.mpp)) { + fun joinOutputJarsMpp() = with(testProject("application/mpp")) { joinOutputJars() } @@ -220,7 +179,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun gradleBuildCache() = with(testProject(TestProjects.jvm)) { + fun gradleBuildCache() = with(testProject("application/jvm")) { modifyGradleProperties { setProperty("org.gradle.caching", "true") } @@ -246,12 +205,12 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun packageJvm() = with(testProject(TestProjects.jvm)) { + fun packageJvm() = with(testProject("application/jvm")) { testPackageJvmDistributions() } @Test - fun packageMpp() = with(testProject(TestProjects.mpp)) { + fun packageMpp() = with(testProject("application/mpp")) { testPackageJvmDistributions() } @@ -305,7 +264,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { } private fun customJdkProject(javaVersion: Int): TestProject = - testProject(TestProjects.jvm).apply { + testProject("application/jvm").apply { appendText("build.gradle") { """ compose.desktop.application { @@ -318,22 +277,22 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun packageUberJarForCurrentOSJvm() = with(testProject(TestProjects.jvm)) { + fun packageUberJarForCurrentOSJvm() = with(testProject("application/jvm")) { testPackageUberJarForCurrentOS(false) } @Test - fun packageUberJarForCurrentOSMpp() = with(testProject(TestProjects.mpp)) { + fun packageUberJarForCurrentOSMpp() = with(testProject("application/mpp")) { testPackageUberJarForCurrentOS(false) } @Test - fun packageReleaseUberJarForCurrentOSJvm() = with(testProject(TestProjects.jvm)) { + fun packageReleaseUberJarForCurrentOSJvm() = with(testProject("application/jvm")) { testPackageUberJarForCurrentOS(true) } @Test - fun packageReleaseUberJarForCurrentOSMpp() = with(testProject(TestProjects.mpp)) { + fun packageReleaseUberJarForCurrentOSMpp() = with(testProject("application/mpp")) { testPackageUberJarForCurrentOS(true) } @@ -366,7 +325,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun testModuleClash() = with(testProject(TestProjects.moduleClashCli)) { + fun testModuleClash() = with(testProject("application/moduleClashCli")) { gradle(":app:runDistributable").checks { check.taskSuccessful(":app:createDistributable") check.taskSuccessful(":app:runDistributable") @@ -376,7 +335,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun testJavaLogger() = with(testProject(TestProjects.javaLogger)) { + fun testJavaLogger() = with(testProject("application/javaLogger")) { gradle(":runDistributable").checks { check.taskSuccessful(":runDistributable") check.logContains("Compose Gradle plugin test log warning!") @@ -393,7 +352,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { Assumptions.assumeTrue(currentOS == OS.MacOS) - with(testProject(TestProjects.macOptions)) { + with(testProject("application/macOptions")) { gradle(":runDistributable").checks { check.taskSuccessful(":runDistributable") check.logContains("Hello, from Mac OS!") @@ -411,7 +370,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { fun testMacSignConfiguration() { Assumptions.assumeTrue(currentOS == OS.MacOS) - with(testProject(TestProjects.macSign)) { + with(testProject("application/macSign")) { gradle("--dry-run", ":createDistributable") } } @@ -444,7 +403,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { } } - with(testProject(TestProjects.macSign)) { + with(testProject("application/macSign")) { val keychain = file("compose.test.keychain") val password = "compose.test" @@ -474,7 +433,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { @Test fun testOptionsWithSpaces() { - with(testProject(TestProjects.optionsWithSpaces)) { + with(testProject("application/optionsWithSpaces")) { fun testRunTask(runTask: String) { gradle(runTask).checks { check.taskSuccessful(runTask) @@ -496,7 +455,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { @Test fun testDefaultArgs() { - with(testProject(TestProjects.defaultArgs)) { + with(testProject("application/defaultArgs")) { fun testRunTask(runTask: String) { gradle(runTask).checks { check.taskSuccessful(runTask) @@ -515,7 +474,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { @Test fun testDefaultArgsOverride() { - with(testProject(TestProjects.defaultArgsOverride)) { + with(testProject("application/defaultArgsOverride")) { fun testRunTask(runTask: String) { gradle(runTask).checks { check.taskSuccessful(runTask) @@ -534,7 +493,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { @Test fun testSuggestModules() { - with(testProject(TestProjects.jvm)) { + with(testProject("application/jvm")) { gradle(":suggestRuntimeModules").checks { check.taskSuccessful(":suggestRuntimeModules") check.logContains("Suggested runtime modules to include:") @@ -544,12 +503,12 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun testUnpackSkiko() = with(testProject(TestProjects.unpackSkiko)) { + fun testUnpackSkiko() = with(testProject("application/unpackSkiko")) { testUnpackSkiko(":runDistributable") } @Test - fun testUnpackSkikoFromUberJar() = with(testProject(TestProjects.unpackSkiko)) { + fun testUnpackSkikoFromUberJar() = with(testProject("application/unpackSkiko")) { enableJoinOutputJars() testUnpackSkiko(":runReleaseDistributable") } @@ -576,7 +535,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun resources() = with(testProject(TestProjects.resources)) { + fun resources() = with(testProject("application/resources")) { gradle(":run").checks { check.taskSuccessful(":run") } @@ -590,7 +549,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { fun testWixUnzip() { Assumptions.assumeTrue(currentOS == OS.Windows) { "The test is only relevant for Windows" } - with(testProject(TestProjects.jvm)) { + with(testProject("application/jvm")) { gradle(":unzipWix").checks { check.taskSuccessful(":unzipWix") diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/GradlePluginTest.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/GradlePluginTest.kt index 866e46c945c..261b32054c4 100644 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/GradlePluginTest.kt +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/GradlePluginTest.kt @@ -11,7 +11,8 @@ import org.gradle.util.GradleVersion import org.jetbrains.compose.desktop.ui.tooling.preview.rpc.PreviewLogger import org.jetbrains.compose.desktop.ui.tooling.preview.rpc.RemoteConnection import org.jetbrains.compose.desktop.ui.tooling.preview.rpc.receiveConfigFromGradle -import org.jetbrains.compose.test.utils.* +import org.jetbrains.compose.test.utils.GradlePluginTestBase +import org.jetbrains.compose.test.utils.checkExists import org.jetbrains.compose.test.utils.checks import org.junit.jupiter.api.Assumptions import org.junit.jupiter.api.Test @@ -27,7 +28,7 @@ class GradlePluginTest : GradlePluginTestBase() { @Test fun skikoWasm() = with( testProject( - TestProjects.skikoWasm, + "misc/skikoWasm", // TODO: enable the configuration cache after moving all test projects to kotlin 2.0 or newer defaultTestEnvironment.copy(useGradleConfigurationCache = false) ) @@ -66,7 +67,7 @@ class GradlePluginTest : GradlePluginTestBase() { @Test fun newAndroidTarget() { Assumptions.assumeTrue(defaultTestEnvironment.parsedGradleVersion >= GradleVersion.version("8.0.0")) - with(testProject(TestProjects.newAndroidTarget)) { + with(testProject("application/newAndroidTarget")) { gradle("build", "--dry-run").checks { } } @@ -75,12 +76,7 @@ class GradlePluginTest : GradlePluginTestBase() { @Test fun jsMppIsNotBroken() = with( - testProject( - TestProjects.jsMpp, - testEnvironment = defaultTestEnvironment.copy( - kotlinVersion = TestProperties.composeJsCompilerCompatibleKotlinVersion - ) - ) + testProject("misc/jsMpp") ) { gradle(":compileKotlinJs").checks { check.taskSuccessful(":compileKotlinJs") @@ -145,7 +141,7 @@ class GradlePluginTest : GradlePluginTestBase() { private fun testConfigureDesktopPreviewImpl(port: Int) { check(port > 0) { "Invalid port: $port" } - with(testProject(TestProjects.jvmPreview)) { + with(testProject("misc/jvmPreview")) { val portProperty = "-Pcompose.desktop.preview.ide.port=$port" val previewTargetProperty = "-Pcompose.desktop.preview.target=PreviewKt.ExamplePreview" val jvmTask = ":jvm:configureDesktopPreview" diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/KotlinCompatibilityTest.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/KotlinCompatibilityTest.kt index a1987fd9ec7..0a452fd67ce 100644 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/KotlinCompatibilityTest.kt +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/KotlinCompatibilityTest.kt @@ -5,10 +5,9 @@ package org.jetbrains.compose.test.tests.integration -import org.jetbrains.compose.newCompilerIsAvailableVersion import org.jetbrains.compose.newComposeCompilerError import org.jetbrains.compose.test.utils.GradlePluginTestBase -import org.jetbrains.compose.test.utils.TestProjects +import org.jetbrains.compose.test.utils.TestProject import org.jetbrains.compose.test.utils.checks import org.junit.jupiter.api.Test @@ -27,7 +26,7 @@ class KotlinCompatibilityTest : GradlePluginTestBase() { private fun testMpp(kotlinVersion: String) = with( testProject( - TestProjects.mpp, + "beforeKotlin2/mpp", testEnvironment = defaultTestEnvironment.copy(kotlinVersion = kotlinVersion) ) ) { @@ -40,7 +39,7 @@ class KotlinCompatibilityTest : GradlePluginTestBase() { private fun testJsMpp(kotlinVersion: String) = with( testProject( - TestProjects.jsMpp, + "beforeKotlin2/jsMpp", testEnvironment = defaultTestEnvironment.copy(kotlinVersion = kotlinVersion) ) ) { @@ -52,11 +51,63 @@ class KotlinCompatibilityTest : GradlePluginTestBase() { @Test fun testNewCompilerPluginError() { val testProject = testProject( - TestProjects.mpp, + "beforeKotlin2/mpp", testEnvironment = defaultTestEnvironment.copy(kotlinVersion = "2.0.0") ) testProject.gradleFailure("tasks").checks { check.logContains(newComposeCompilerError) } } + + /** + * Test the version of Compose Compiler published by Google. + * See https://developer.android.com/jetpack/androidx/releases/compose-kotlin + */ + @Test + fun testAndroidxCompiler() = testProject( + "beforeKotlin2/custom-compiler", defaultTestEnvironment.copy( + kotlinVersion = "1.8.0", + composeCompilerPlugin = "\"androidx.compose.compiler:compiler:1.4.0\"" + ) + ).checkCustomComposeCompiler() + + @Test + fun testSettingLatestCompiler() = testProject( + "beforeKotlin2/custom-compiler", defaultTestEnvironment.copy( + kotlinVersion = "1.8.20", + composeCompilerPlugin = "dependencies.compiler.forKotlin(\"1.8.20\")", + ) + ).checkCustomComposeCompiler() + + @Test + fun testSettingAutoCompiler() = testProject( + "beforeKotlin2/custom-compiler", defaultTestEnvironment.copy( + kotlinVersion = "1.8.10", + composeCompilerPlugin = "dependencies.compiler.auto", + ) + ).checkCustomComposeCompiler() + + @Test + fun testKotlinCheckDisabled() = testProject( + "beforeKotlin2/custom-compiler-args", defaultTestEnvironment.copy( + kotlinVersion = "1.9.21", + composeCompilerPlugin = "dependencies.compiler.forKotlin(\"1.9.20\")", + composeCompilerArgs = "\"suppressKotlinVersionCompatibilityCheck=1.9.21\"" + ) + ).checkCustomComposeCompiler(checkKJS = true) + + private fun TestProject.checkCustomComposeCompiler(checkKJS: Boolean = false) { + gradle(":runDistributable").checks { + val actualMainImage = file("main-image.actual.png") + val expectedMainImage = file("main-image.expected.png") + assert(actualMainImage.readBytes().contentEquals(expectedMainImage.readBytes())) { + "The actual image '$actualMainImage' does not match the expected image '$expectedMainImage'" + } + } + if (checkKJS) { + gradle(":jsBrowserProductionWebpack").checks { + check.taskSuccessful(":jsBrowserProductionWebpack") + } + } + } } diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt index 53a9e5b822b..5ef8f5f3938 100644 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt @@ -2,15 +2,30 @@ package org.jetbrains.compose.test.tests.integration import org.gradle.util.GradleVersion import org.jetbrains.compose.desktop.application.internal.ComposeProperties -import org.jetbrains.compose.internal.utils.* +import org.jetbrains.compose.internal.utils.Arch +import org.jetbrains.compose.internal.utils.OS +import org.jetbrains.compose.internal.utils.currentArch +import org.jetbrains.compose.internal.utils.currentOS import org.jetbrains.compose.resources.XmlValuesConverterTask -import org.jetbrains.compose.test.utils.* +import org.jetbrains.compose.test.utils.GradlePluginTestBase +import org.jetbrains.compose.test.utils.TestProject +import org.jetbrains.compose.test.utils.assertEqualTextFiles +import org.jetbrains.compose.test.utils.assertNotEqualTextFiles +import org.jetbrains.compose.test.utils.checkExists +import org.jetbrains.compose.test.utils.checks +import org.jetbrains.compose.test.utils.modify import org.junit.jupiter.api.Assumptions import org.junit.jupiter.api.Test import java.io.File import java.util.zip.ZipFile +import kotlin.io.path.Path +import kotlin.io.path.invariantSeparatorsPathString import kotlin.io.path.relativeTo -import kotlin.test.* +import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertNotNull +import kotlin.test.assertNull +import kotlin.test.assertTrue class ResourcesTest : GradlePluginTestBase() { @Test @@ -244,38 +259,31 @@ class ResourcesTest : GradlePluginTestBase() { val resDir = file("cmplib/src/commonMain/composeResources") val resourcesFiles = resDir.walkTopDown() .filter { !it.isDirectory && !it.isHidden } - .getConvertedResources(resDir) - val subdir = "me.sample.library.resources" + .getConvertedResources(resDir, "composeResources/me.sample.library.resources") fun libpath(target: String, ext: String) = "my-mvn/me/sample/library/cmplib-$target/1.0/cmplib-$target-1.0$ext" val aar = file(libpath("android", ".aar")) - assertTrue(aar.exists(), "File not found: " + aar.path) - ZipFile(aar).use { zip -> resourcesFiles.forEach { fontRes -> - assertNotNull( - zip.getEntry("assets/composeResources/$subdir/$fontRes"), - "Resource not found: '$fontRes' in aar '${aar.path}'" - ) - } } + checkResourcesZip(aar, resourcesFiles, true) val jar = file(libpath("jvm", ".jar")) - checkResourcesZip(jar, resourcesFiles, subdir) + checkResourcesZip(jar, resourcesFiles, false) if (currentOS == OS.MacOS) { val iosx64ResZip = file(libpath("iosx64", "-kotlin_resources.kotlin_resources.zip")) - checkResourcesZip(iosx64ResZip, resourcesFiles, subdir) + checkResourcesZip(iosx64ResZip, resourcesFiles, false) val iosarm64ResZip = file(libpath("iosarm64", "-kotlin_resources.kotlin_resources.zip")) - checkResourcesZip(iosarm64ResZip, resourcesFiles, subdir) + checkResourcesZip(iosarm64ResZip, resourcesFiles, false) val iossimulatorarm64ResZip = file( libpath("iossimulatorarm64", "-kotlin_resources.kotlin_resources.zip") ) - checkResourcesZip(iossimulatorarm64ResZip, resourcesFiles, subdir) + checkResourcesZip(iossimulatorarm64ResZip, resourcesFiles, false) } val jsResZip = file(libpath("js", "-kotlin_resources.kotlin_resources.zip")) - checkResourcesZip(jsResZip, resourcesFiles, subdir) + checkResourcesZip(jsResZip, resourcesFiles, false) val wasmjsResZip = file(libpath("wasm-js", "-kotlin_resources.kotlin_resources.zip")) - checkResourcesZip(wasmjsResZip, resourcesFiles, subdir) + checkResourcesZip(wasmjsResZip, resourcesFiles, false) } file("settings.gradle.kts").modify { content -> @@ -323,14 +331,19 @@ class ResourcesTest : GradlePluginTestBase() { } } - private fun checkResourcesZip(zipFile: File, resourcesFiles: Sequence, subdir: String) { + private fun checkResourcesZip(zipFile: File, resourcesFiles: Sequence, isAndroid: Boolean) { + println("check ZIP: '${zipFile.path}'") assertTrue(zipFile.exists(), "File not found: " + zipFile.path) ZipFile(zipFile).use { zip -> resourcesFiles.forEach { res -> - assertNotNull( - zip.getEntry("composeResources/$subdir/$res"), - "Resource not found: '$res' in zip '${zipFile.path}'" - ) + println("check '$res' file") + if (isAndroid) { + //android resources should be only in assets + assertNull(zip.getEntry(res), "file = '$res'") + assertNotNull(zip.getEntry("assets/$res"), "file = 'assets/$res'") + } else { + assertNotNull(zip.getEntry(res), "file = '$res'") + } } } } @@ -369,50 +382,51 @@ class ResourcesTest : GradlePluginTestBase() { file("src/jsMain/composeResources/files/platform.txt").writeNewFile("js") val commonResourcesDir = file("src/commonMain/composeResources") + val repackDir = "composeResources/app.group.resources_test.generated.resources" val commonResourcesFiles = commonResourcesDir.walkTopDown() .filter { !it.isDirectory && !it.isHidden } - .getConvertedResources(commonResourcesDir) + .getConvertedResources(commonResourcesDir, repackDir) gradle("build").checks { - check.taskSuccessful(":copyDemoDebugResourcesToAndroidAssets") - check.taskSuccessful(":copyDemoReleaseResourcesToAndroidAssets") - check.taskSuccessful(":copyFullDebugResourcesToAndroidAssets") - check.taskSuccessful(":copyFullReleaseResourcesToAndroidAssets") + check.taskSuccessful(":demoDebugAssetsCopyForAGP") + check.taskSuccessful(":demoReleaseAssetsCopyForAGP") + check.taskSuccessful(":fullDebugAssetsCopyForAGP") + check.taskSuccessful(":fullReleaseAssetsCopyForAGP") getAndroidApk("demo", "debug", "Resources-Test").let { apk -> - checkResourcesInZip(apk, commonResourcesFiles, true) + checkResourcesZip(apk, commonResourcesFiles, true) assertEquals( "android demo-debug", - readFileInZip(apk, "assets/files/platform.txt").decodeToString() + readFileInZip(apk, "assets/$repackDir/files/platform.txt").decodeToString() ) } getAndroidApk("demo", "release", "Resources-Test").let { apk -> - checkResourcesInZip(apk, commonResourcesFiles, true) + checkResourcesZip(apk, commonResourcesFiles, true) assertEquals( "android demo-release", - readFileInZip(apk, "assets/files/platform.txt").decodeToString() + readFileInZip(apk, "assets/$repackDir/files/platform.txt").decodeToString() ) } getAndroidApk("full", "debug", "Resources-Test").let { apk -> - checkResourcesInZip(apk, commonResourcesFiles, true) + checkResourcesZip(apk, commonResourcesFiles, true) assertEquals( "android full-debug", - readFileInZip(apk, "assets/files/platform.txt").decodeToString() + readFileInZip(apk, "assets/$repackDir/files/platform.txt").decodeToString() ) } getAndroidApk("full", "release", "Resources-Test").let { apk -> - checkResourcesInZip(apk, commonResourcesFiles, true) + checkResourcesZip(apk, commonResourcesFiles, true) assertEquals( "android full-release", - readFileInZip(apk, "assets/files/platform.txt").decodeToString() + readFileInZip(apk, "assets/$repackDir/files/platform.txt").decodeToString() ) } file("build/libs/Resources-Test-desktop.jar").let { jar -> - checkResourcesInZip(jar, commonResourcesFiles, false) + checkResourcesZip(jar, commonResourcesFiles, false) assertEquals( "desktop", - readFileInZip(jar, "files/platform.txt").decodeToString() + readFileInZip(jar, "$repackDir/files/platform.txt").decodeToString() ) } @@ -420,11 +434,11 @@ class ResourcesTest : GradlePluginTestBase() { commonResourcesFiles.forEach { res -> assertTrue(jsBuildDir.resolve(res).exists()) } - assertEquals("js", jsBuildDir.resolve("files/platform.txt").readText()) + assertEquals("js", jsBuildDir.resolve("$repackDir/files/platform.txt").readText()) } } - private fun Sequence.getConvertedResources(baseDir: File) = map { file -> + private fun Sequence.getConvertedResources(baseDir: File, repackDir: String) = map { file -> val newFile = if ( file.parentFile.name.startsWith("value") && file.extension.equals("xml", true) @@ -434,7 +448,7 @@ class ResourcesTest : GradlePluginTestBase() { } else { file } - newFile.relativeTo(baseDir).invariantSeparatorsPath + Path(repackDir, newFile.relativeTo(baseDir).path).invariantSeparatorsPathString } private fun File.writeNewFile(text: String) { @@ -451,23 +465,6 @@ class ResourcesTest : GradlePluginTestBase() { } } - private fun checkResourcesInZip(file: File, commonResourcesFiles: Sequence, isAndroid: Boolean) { - println("check ZIP: '${file.path}'") - assertTrue(file.exists()) - ZipFile(file).use { zip -> - commonResourcesFiles.forEach { res -> - println("check '$res' file") - if (isAndroid) { - //android resources should be only in assets - assertNull(zip.getEntry(res), "file = '$res'") - assertNotNull(zip.getEntry("assets/$res"), "file = 'assets/$res'") - } else { - assertNotNull(zip.getEntry(res), "file = '$res'") - } - } - } - } - private fun readFileInZip(file: File, path: String): ByteArray = ZipFile(file).use { zip -> val platformTxt = zip.getEntry(path) assertNotNull(platformTxt, "file = '$path'") @@ -654,8 +651,8 @@ class ResourcesTest : GradlePluginTestBase() { check.taskNoSource(":prepareComposeResourcesTaskForIosX64Main") check.taskSkipped(":generateResourceAccessorsForIosX64Main") - file("build/compose/cocoapods/compose-resources/drawable/compose-multiplatform.xml").checkExists() - file("build/compose/cocoapods/compose-resources/drawable/icon.xml").checkExists() + file("build/compose/cocoapods/compose-resources/composeResources/iosresources.generated.resources/drawable/compose-multiplatform.xml").checkExists() + file("build/compose/cocoapods/compose-resources/composeResources/iosresources.generated.resources/drawable/icon.xml").checkExists() } gradle(":podspec", "-Pkotlin.native.cocoapods.generate.wrapper=true").checks { @@ -676,8 +673,8 @@ class ResourcesTest : GradlePluginTestBase() { check.taskSkipped(":linkDebugTestIosX64") } gradle(":copyTestComposeResourcesForIosX64").checks { - file("build/bin/iosX64/debugTest/compose-resources/drawable/compose-multiplatform.xml").checkExists() - file("build/bin/iosX64/debugTest/compose-resources/drawable/icon.xml").checkExists() + file("build/bin/iosX64/debugTest/compose-resources/composeResources/iosresources.generated.resources/drawable/compose-multiplatform.xml").checkExists() + file("build/bin/iosX64/debugTest/compose-resources/composeResources/iosresources.generated.resources/drawable/icon.xml").checkExists() } } } diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/unit/ComposeCompilerArtifactProviderTest.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/unit/ComposeCompilerArtifactProviderTest.kt index eb9e2e7879e..d6d93797ff8 100644 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/unit/ComposeCompilerArtifactProviderTest.kt +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/unit/ComposeCompilerArtifactProviderTest.kt @@ -7,12 +7,10 @@ package org.jetbrains.compose.test.tests.unit import org.jetbrains.compose.internal.ComposeCompilerArtifactProvider import org.jetbrains.compose.internal.copy -import org.jetbrains.compose.test.utils.TestProperties import org.jetbrains.kotlin.gradle.plugin.SubpluginArtifact +import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test -import org.junit.jupiter.api.Assertions.* - internal class ComposeCompilerArtifactProviderTest { @Test fun customVersion() { @@ -69,12 +67,9 @@ internal class ComposeCompilerArtifactProviderTest { get() = SubpluginArtifact( groupId = "org.jetbrains.compose.compiler", artifactId = "compiler", - version = TestProperties.composeCompilerVersion + version = "1.9.20" ) - val jbCompilerHosted: SubpluginArtifact - get() = jbCompiler.copy(artifactId = "compiler-hosted") - val googleCompiler: SubpluginArtifact get() = jbCompiler.copy(groupId = "androidx.compose.compiler") } diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/GradleTestNameGenerator.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/GradleTestNameGenerator.kt index cfb9b0984a5..760db9d166a 100644 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/GradleTestNameGenerator.kt +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/GradleTestNameGenerator.kt @@ -13,7 +13,7 @@ class GradleTestNameGenerator : DisplayNameGenerator.Standard() { override fun generateDisplayNameForMethod(testClass: Class<*>, testMethod: Method) = testMethod.name + with(TestProperties) { mutableListOf().apply { - muteException { add("kotlin=$composeCompilerCompatibleKotlinVersion") } + muteException { add("kotlin=$kotlinVersion") } muteException { add("gradle=$gradleVersion") } muteException { add("agp=$agpVersion") } }.joinToString(prefix = "(", separator = ", ", postfix = ")") diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProject.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProject.kt index a48097a0949..c8db18f9555 100644 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProject.kt +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProject.kt @@ -9,14 +9,12 @@ import org.gradle.testkit.runner.BuildResult import org.gradle.testkit.runner.GradleRunner import org.gradle.util.GradleVersion import org.jetbrains.compose.desktop.application.internal.ComposeProperties -import org.junit.jupiter.params.provider.Arguments import java.io.File -import java.util.Properties -import java.util.stream.Stream +import java.util.* data class TestEnvironment( val workingDir: File, - val kotlinVersion: String = TestProperties.composeCompilerCompatibleKotlinVersion, + val kotlinVersion: String = TestProperties.kotlinVersion, val gradleVersion: String = TestProperties.gradleVersion, val agpVersion: String = TestProperties.agpVersion, val composeGradlePluginVersion: String = TestProperties.composeGradlePluginVersion, diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProjects.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProjects.kt deleted file mode 100644 index 24f59310edf..00000000000 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProjects.kt +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2020-2022 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package org.jetbrains.compose.test.utils - -object TestProjects { - const val jvm = "application/jvm" - const val mpp = "application/mpp" - const val newAndroidTarget = "application/newAndroidTarget" - const val proguard = "application/proguard" - const val customCompiler = "application/custom-compiler" - const val customCompilerArgs = "application/custom-compiler-args" - const val customCompilerUnsupportedPlatformsWarning = "application/customCompilerUnsupportedPlatformsWarning" - const val jvmKotlinDsl = "application/jvmKotlinDsl" - const val moduleClashCli = "application/moduleClashCli" - const val javaLogger = "application/javaLogger" - const val macOptions = "application/macOptions" - const val macSign = "application/macSign" - const val optionsWithSpaces = "application/optionsWithSpaces" - const val defaultArgs = "application/defaultArgs" - const val defaultArgsOverride = "application/defaultArgsOverride" - const val unpackSkiko = "application/unpackSkiko" - const val resources = "application/resources" - const val jsMpp = "misc/jsMpp" - const val skikoWasm = "misc/skikoWasm" - const val jvmPreview = "misc/jvmPreview" - const val iosResources = "misc/iosResources" - const val iosMokoResources = "misc/iosMokoResources" - const val nativeCacheKind = "misc/nativeCacheKind" - const val nativeCacheKindError = "misc/nativeCacheKindError" -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProperties.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProperties.kt index 11caa750366..3f4be6cbb8a 100644 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProperties.kt +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProperties.kt @@ -8,14 +8,8 @@ package org.jetbrains.compose.test.utils import java.io.File object TestProperties { - val composeCompilerVersion: String - get() = notNullSystemProperty("compose.tests.compiler.version") - - val composeCompilerCompatibleKotlinVersion: String - get() = notNullSystemProperty("compose.tests.compiler.compatible.kotlin.version") - - val composeJsCompilerCompatibleKotlinVersion: String - get() = notNullSystemProperty("compose.tests.js.compiler.compatible.kotlin.version") + val kotlinVersion: String + get() = notNullSystemProperty("compose.tests.kotlin.version") val composeGradlePluginVersion: String get() = notNullSystemProperty("compose.tests.compose.gradle.plugin.version") diff --git a/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/build.gradle deleted file mode 100644 index 04c2be309bb..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/build.gradle +++ /dev/null @@ -1,34 +0,0 @@ -plugins { - id "org.jetbrains.kotlin.multiplatform" - id "org.jetbrains.compose" -} - -kotlin { - def platforms = project.property("platforms").split(",") - if (platforms.contains("jvm")) { - jvm() - } - if (platforms.contains("js")) { - js(IR) { - browser() - binaries.executable() - } - } - if (platforms.contains("ios")) { - ios() - } - - sourceSets { - commonMain { - dependencies { - implementation compose.runtime - implementation compose.material - implementation compose.foundation - } - } - } -} - -compose { - kotlinCompilerPlugin.set(COMPOSE_COMPILER_PLUGIN_PLACEHOLDER) -} diff --git a/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/gradle.properties b/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/gradle.properties deleted file mode 100644 index e209558321a..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/gradle.properties +++ /dev/null @@ -1,2 +0,0 @@ -org.jetbrains.compose.experimental.jscanvas.enabled=true -org.jetbrains.compose.experimental.uikit.enabled=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/settings.gradle deleted file mode 100644 index fe85d46d013..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/settings.gradle +++ /dev/null @@ -1,26 +0,0 @@ -pluginManagement { - plugins { - id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' - id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' - } - repositories { - mavenLocal() - gradlePluginPortal() - mavenCentral() - google() - maven { - url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' - } - } -} -dependencyResolutionManagement { - repositories { - mavenLocal() - mavenCentral() - google() - maven { - url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' - } - } -} -rootProject.name = "customCompilerUnsupportedPlatformsWarning" diff --git a/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/src/commonMain/kotlin/App.kt b/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/src/commonMain/kotlin/App.kt deleted file mode 100644 index 79dcb39588c..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/src/commonMain/kotlin/App.kt +++ /dev/null @@ -1,19 +0,0 @@ -import androidx.compose.material.Button -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember - -@Composable -fun App() { - MaterialTheme { - var message by remember { mutableStateOf("Press the button!") } - - Button( - onClick = { message = "Welcome to Compose Multiplatform!" } - ) { - Text(message) - } - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/defaultArgs/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/defaultArgs/build.gradle index 9d1d21d1cdc..0cd904a78fc 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/defaultArgs/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/defaultArgs/build.gradle @@ -2,6 +2,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/defaultArgs/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/defaultArgs/settings.gradle index 1531cffa135..f87e919ea29 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/defaultArgs/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/defaultArgs/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { diff --git a/gradle-plugins/compose/src/test/test-projects/application/defaultArgsOverride/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/defaultArgsOverride/build.gradle index 427b63b1ad0..af907c42970 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/defaultArgsOverride/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/defaultArgsOverride/build.gradle @@ -2,6 +2,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/defaultArgsOverride/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/defaultArgsOverride/settings.gradle index 1531cffa135..f87e919ea29 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/defaultArgsOverride/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/defaultArgsOverride/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { diff --git a/gradle-plugins/compose/src/test/test-projects/application/javaLogger/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/javaLogger/build.gradle index 87fbb5d4de6..28b9e0c6234 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/javaLogger/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/javaLogger/build.gradle @@ -1,5 +1,6 @@ plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/javaLogger/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/javaLogger/settings.gradle index de29cd85445..78832dc01ac 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/javaLogger/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/javaLogger/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { diff --git a/gradle-plugins/compose/src/test/test-projects/application/jvm/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/jvm/build.gradle index 4ac0b9f8b21..6b93854d0c5 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/jvm/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/jvm/build.gradle @@ -2,6 +2,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/jvm/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/jvm/settings.gradle index 9df72a09ce6..6d72c984066 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/jvm/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/jvm/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { diff --git a/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/build.gradle.kts index c8f6ac82b5d..3a3c5aa20fa 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/build.gradle.kts @@ -3,6 +3,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id("org.jetbrains.kotlin.jvm") + id("org.jetbrains.kotlin.plugin.compose") id("org.jetbrains.compose") } diff --git a/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/settings.gradle index 9df72a09ce6..6d72c984066 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { diff --git a/gradle-plugins/compose/src/test/test-projects/application/macOptions/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/macOptions/build.gradle index 122189c0344..d239392b134 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/macOptions/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/macOptions/build.gradle @@ -1,7 +1,6 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/macOptions/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/macOptions/settings.gradle index 1531cffa135..f87e919ea29 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/macOptions/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/macOptions/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { diff --git a/gradle-plugins/compose/src/test/test-projects/application/macSign/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/macSign/build.gradle index 25af20375d7..0f1ab828327 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/macSign/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/macSign/build.gradle @@ -1,7 +1,6 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/macSign/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/macSign/settings.gradle index 1531cffa135..f87e919ea29 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/macSign/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/macSign/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { diff --git a/gradle-plugins/compose/src/test/test-projects/application/moduleClashCli/app/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/moduleClashCli/app/build.gradle index 67919354736..7265e9830df 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/moduleClashCli/app/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/moduleClashCli/app/build.gradle @@ -1,7 +1,6 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/moduleClashCli/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/moduleClashCli/settings.gradle index 89f91ba82fc..4e3e135f883 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/moduleClashCli/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/moduleClashCli/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { diff --git a/gradle-plugins/compose/src/test/test-projects/application/mpp/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/mpp/build.gradle index 33fc77b2844..b4a447b8680 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/mpp/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/mpp/build.gradle @@ -3,6 +3,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id "com.android.application" id "org.jetbrains.kotlin.multiplatform" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } @@ -21,6 +22,9 @@ kotlin { } } } + jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + } } android { @@ -33,14 +37,6 @@ android { } } -kotlin { - jvm { - jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - } - } -} - compose.desktop { application { mainClass = "MainKt" diff --git a/gradle-plugins/compose/src/test/test-projects/application/mpp/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/mpp/settings.gradle index 0276bf4c39b..96b75d539da 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/mpp/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/mpp/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' id 'com.android.application' version 'AGP_VERSION_PLACEHOLDER' } diff --git a/gradle-plugins/compose/src/test/test-projects/application/newAndroidTarget/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/newAndroidTarget/build.gradle index 33188819c9f..ef45b4a99e2 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/newAndroidTarget/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/newAndroidTarget/build.gradle @@ -1,7 +1,6 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - plugins { id "org.jetbrains.kotlin.multiplatform" + id "org.jetbrains.kotlin.plugin.compose" id "com.android.kotlin.multiplatform.library" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/newAndroidTarget/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/newAndroidTarget/settings.gradle index 142c0d28b47..86985a3b8ec 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/newAndroidTarget/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/newAndroidTarget/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' id 'com.android.kotlin.multiplatform.library' version '8.2.0-alpha13' } diff --git a/gradle-plugins/compose/src/test/test-projects/application/optionsWithSpaces/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/optionsWithSpaces/build.gradle index f0df53799ff..2451e05bede 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/optionsWithSpaces/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/optionsWithSpaces/build.gradle @@ -2,6 +2,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/optionsWithSpaces/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/optionsWithSpaces/settings.gradle index 1531cffa135..f87e919ea29 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/optionsWithSpaces/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/optionsWithSpaces/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { diff --git a/gradle-plugins/compose/src/test/test-projects/application/proguard/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/proguard/build.gradle index 7fe038689d2..4b3f7921802 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/proguard/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/proguard/build.gradle @@ -3,6 +3,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/proguard/main-methods.expected.txt b/gradle-plugins/compose/src/test/test-projects/application/proguard/main-methods.expected.txt index 3fc7a4f8c76..2932270c74a 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/proguard/main-methods.expected.txt +++ b/gradle-plugins/compose/src/test/test-projects/application/proguard/main-methods.expected.txt @@ -1,3 +1,5 @@ keptByKeepRule +keptByKeepRule$lambda$5 main -mainShape \ No newline at end of file +mainShape +mainShape$lambda$2 \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/proguard/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/proguard/settings.gradle index 9df72a09ce6..6d72c984066 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/proguard/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/proguard/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { diff --git a/gradle-plugins/compose/src/test/test-projects/application/resources/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/resources/build.gradle index 9db2a01e22f..616c3825c7a 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/resources/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/resources/build.gradle @@ -2,6 +2,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/resources/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/resources/settings.gradle index 9df72a09ce6..6d72c984066 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/resources/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/resources/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { diff --git a/gradle-plugins/compose/src/test/test-projects/application/unpackSkiko/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/unpackSkiko/build.gradle index d49191985ce..2ccc034b0f8 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/unpackSkiko/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/unpackSkiko/build.gradle @@ -2,6 +2,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/unpackSkiko/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/unpackSkiko/settings.gradle index 9df72a09ce6..6d72c984066 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/unpackSkiko/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/unpackSkiko/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/build.gradle b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/build.gradle similarity index 100% rename from gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/build.gradle rename to gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/build.gradle diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/main-image.expected.png b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/main-image.expected.png similarity index 100% rename from gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/main-image.expected.png rename to gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/main-image.expected.png diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/settings.gradle b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/settings.gradle similarity index 100% rename from gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/settings.gradle rename to gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/settings.gradle diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/src/desktopMain/kotlin/Main.kt b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/src/desktopMain/kotlin/Main.kt similarity index 100% rename from gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/src/desktopMain/kotlin/Main.kt rename to gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/src/desktopMain/kotlin/Main.kt diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/src/jsMain/kotlin/Main.js.kt b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/src/jsMain/kotlin/Main.js.kt similarity index 100% rename from gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/src/jsMain/kotlin/Main.js.kt rename to gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/src/jsMain/kotlin/Main.js.kt diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler/build.gradle b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler/build.gradle similarity index 100% rename from gradle-plugins/compose/src/test/test-projects/application/custom-compiler/build.gradle rename to gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler/build.gradle diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler/main-image.expected.png b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler/main-image.expected.png similarity index 100% rename from gradle-plugins/compose/src/test/test-projects/application/custom-compiler/main-image.expected.png rename to gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler/main-image.expected.png diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler/settings.gradle b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler/settings.gradle similarity index 100% rename from gradle-plugins/compose/src/test/test-projects/application/custom-compiler/settings.gradle rename to gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler/settings.gradle diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler/src/main/kotlin/Main.kt b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler/src/main/kotlin/Main.kt similarity index 100% rename from gradle-plugins/compose/src/test/test-projects/application/custom-compiler/src/main/kotlin/Main.kt rename to gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler/src/main/kotlin/Main.kt diff --git a/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/build.gradle b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/build.gradle new file mode 100644 index 00000000000..348b3a4b80a --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/build.gradle @@ -0,0 +1,27 @@ +plugins { + id "org.jetbrains.kotlin.multiplatform" + id "org.jetbrains.compose" +} + +kotlin { + js(IR) { + browser() + } + jvm {} + + sourceSets { + named("commonMain") { + } + named("jsMain") { + dependencies { + implementation(compose.html.core) + implementation(compose.runtime) + } + } + named("jvmMain") { + dependencies { + implementation(compose.desktop.currentOs) + } + } + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/settings.gradle b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/settings.gradle similarity index 91% rename from gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/settings.gradle rename to gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/settings.gradle index 5717a21c960..afca8638e99 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/settings.gradle @@ -23,5 +23,4 @@ dependencyResolutionManagement { } } } -rootProject.name = "nativeCacheKind" -include(":subproject") \ No newline at end of file +rootProject.name = "jsMpp" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/src/commonMain/kotlin/platform.kt b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/src/commonMain/kotlin/platform.kt new file mode 100644 index 00000000000..f60eab5ff69 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/src/commonMain/kotlin/platform.kt @@ -0,0 +1 @@ +expect fun getPlatformName(): String \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/src/jsMain/kotlin/platform.kt b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/src/jsMain/kotlin/platform.kt new file mode 100644 index 00000000000..b6d4a07a09b --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/src/jsMain/kotlin/platform.kt @@ -0,0 +1 @@ +actual fun getPlatformName(): String = "js" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/src/jvmMain/kotlin/platform.kt b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/src/jvmMain/kotlin/platform.kt new file mode 100644 index 00000000000..144ba292915 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/src/jvmMain/kotlin/platform.kt @@ -0,0 +1 @@ +actual fun getPlatformName(): String = "jvm" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/mpp/build.gradle b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/mpp/build.gradle new file mode 100644 index 00000000000..33fc77b2844 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/mpp/build.gradle @@ -0,0 +1,73 @@ +import org.jetbrains.compose.desktop.application.dsl.TargetFormat + +plugins { + id "com.android.application" + id "org.jetbrains.kotlin.multiplatform" + id "org.jetbrains.compose" +} + +kotlin { + // empty stub (no actual android app) to detect configuration conflicts + // like https://github.com/JetBrains/compose-jb/issues/2345 + android() + + jvm() + sourceSets { + jvmMain { + dependsOn(commonMain) + + dependencies { + implementation(compose.desktop.currentOs) + } + } + } +} + +android { + namespace = "org.jetbrains.compose.testapp" + compileSdk = 31 + + defaultConfig { + minSdk = 21 + targetSdk = 31 + } +} + +kotlin { + jvm { + jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + } + } +} + +compose.desktop { + application { + mainClass = "MainKt" + nativeDistributions { + targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) + + packageVersion = "1.0.0" + packageName = "TestPackage" + description = "Test description" + copyright = "Test Copyright Holder" + vendor = "Test Vendor" + + linux { + shortcut = true + packageName = "test-package" + debMaintainer = "example@example.com" + menuGroup = "menu-group" + } + windows { + console = true + dirChooser = true + perUserInstall = true + shortcut = true + menu = true + menuGroup = "compose" + upgradeUuid = "2d6ff464-75be-40ad-a256-56420b9cc374" + } + } + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/mpp/gradle.properties b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/mpp/gradle.properties new file mode 100644 index 00000000000..2d8d1e4dd15 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/mpp/gradle.properties @@ -0,0 +1 @@ +android.useAndroidX=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/settings.gradle b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/mpp/settings.gradle similarity index 68% rename from gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/settings.gradle rename to gradle-plugins/compose/src/test/test-projects/beforeKotlin2/mpp/settings.gradle index 5a99487916b..0276bf4c39b 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/mpp/settings.gradle @@ -2,6 +2,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' + id 'com.android.application' version 'AGP_VERSION_PLACEHOLDER' } repositories { mavenLocal() @@ -11,17 +12,22 @@ pluginManagement { maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + maven { + url 'https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/' + } } } dependencyResolutionManagement { repositories { - mavenCentral() mavenLocal() + mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + maven { + url 'https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/' + } } } -rootProject.name = "nativeCacheKind" -include(":subproject") \ No newline at end of file +rootProject.name = "mpp" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/mpp/src/jvmMain/kotlin/main.kt b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/mpp/src/jvmMain/kotlin/main.kt new file mode 100644 index 00000000000..4d7210e2bef --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/beforeKotlin2/mpp/src/jvmMain/kotlin/main.kt @@ -0,0 +1,3 @@ +fun main() { + println("Kotlin MPP app is running!") +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/app/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/app/build.gradle.kts index 5e0fd3e9fa9..c139eff8a7d 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/app/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/app/build.gradle.kts @@ -1,5 +1,6 @@ plugins { kotlin("multiplatform") + kotlin("plugin.compose") id("org.jetbrains.compose") id("com.github.gmazzo.buildconfig") } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/build.gradle.kts index 53f913fce78..f31c0a79f54 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/build.gradle.kts @@ -1,4 +1,5 @@ plugins { kotlin("multiplatform").apply(false) + kotlin("plugin.compose").apply(false) id("org.jetbrains.compose").apply(false) } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/settings.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/settings.gradle.kts index af0c57f19b6..30b83634920 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/settings.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/settings.gradle.kts @@ -9,6 +9,7 @@ pluginManagement { } plugins { id("org.jetbrains.kotlin.multiplatform").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.plugin.compose").version("KOTLIN_VERSION_PLACEHOLDER") id("org.jetbrains.compose").version("COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER") id("com.github.gmazzo.buildconfig").version("5.3.5") } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/build.gradle.kts index aeafd38a847..5629e0ad3ec 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/build.gradle.kts @@ -1,5 +1,6 @@ plugins { kotlin("multiplatform") + kotlin("plugin.compose") id("com.android.application") id("org.jetbrains.compose") } @@ -9,8 +10,10 @@ group = "app.group" kotlin { androidTarget { compilations.all { - kotlinOptions { - jvmTarget = "11" + compileTaskProvider { + compilerOptions { + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11) + } } } } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/androidMainResourceAccessors/my/lib/res/String0.androidMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/androidMainResourceAccessors/my/lib/res/String0.androidMain.kt index 4c07207da06..5d0d9e00b0e 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/androidMainResourceAccessors/my/lib/res/String0.androidMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/androidMainResourceAccessors/my/lib/res/String0.androidMain.kt @@ -16,7 +16,7 @@ public val Res.string.android_str: StringResource private fun init_android_str(): StringResource = org.jetbrains.compose.resources.StringResource( "string:android_str", "android_str", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.androidMain.cvr", 10, - 39), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/my.lib.res/values/strings.androidMain.cvr", 10, 39), ) ) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Drawable0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Drawable0.commonMain.kt index d85c4af1ad5..fc67e497cb0 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Drawable0.commonMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Drawable0.commonMain.kt @@ -29,7 +29,8 @@ private fun init__3_strange_name(): DrawableResource = org.jetbrains.compose.resources.DrawableResource( "drawable:_3_strange_name", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/3-strange-name.xml", -1, -1), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/my.lib.res/drawable/3-strange-name.xml", -1, -1), ) ) @@ -40,7 +41,8 @@ private fun init_camelCaseName(): DrawableResource = org.jetbrains.compose.resources.DrawableResource( "drawable:camelCaseName", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/camelCaseName.xml", -1, -1), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/my.lib.res/drawable/camelCaseName.xml", -1, -1), ) ) @@ -50,7 +52,8 @@ public val Res.drawable.`is`: DrawableResource private fun init_is(): DrawableResource = org.jetbrains.compose.resources.DrawableResource( "drawable:is", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/is.xml", -1, -1), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/my.lib.res/drawable/is.xml", -1, -1), ) ) @@ -62,18 +65,20 @@ private fun init_vector(): DrawableResource = org.jetbrains.compose.resources.Dr setOf( org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.LanguageQualifier("ast"), - ), "drawable-ast/vector.xml", -1, -1), + ), "composeResources/my.lib.res/drawable-ast/vector.xml", -1, -1), org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.LanguageQualifier("au"), - org.jetbrains.compose.resources.RegionQualifier("US"), ), "drawable-au-rUS/vector.xml", -1, -1), + org.jetbrains.compose.resources.RegionQualifier("US"), ), + "composeResources/my.lib.res/drawable-au-rUS/vector.xml", -1, -1), org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.ThemeQualifier.DARK, org.jetbrains.compose.resources.LanguageQualifier("ge"), ), - "drawable-dark-ge/vector.xml", -1, -1), + "composeResources/my.lib.res/drawable-dark-ge/vector.xml", -1, -1), org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.LanguageQualifier("en"), - ), "drawable-en/vector.xml", -1, -1), - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/vector.xml", -1, -1), + ), "composeResources/my.lib.res/drawable-en/vector.xml", -1, -1), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/my.lib.res/drawable/vector.xml", -1, -1), ) ) @@ -83,6 +88,7 @@ public val Res.drawable.vector_2: DrawableResource private fun init_vector_2(): DrawableResource = org.jetbrains.compose.resources.DrawableResource( "drawable:vector_2", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/vector_2.xml", -1, -1), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/my.lib.res/drawable/vector_2.xml", -1, -1), ) ) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Font0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Font0.commonMain.kt index 1d69a111bbf..c754abef212 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Font0.commonMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Font0.commonMain.kt @@ -18,7 +18,8 @@ private fun init_emptyFont(): FontResource = org.jetbrains.compose.resources.Fon setOf( org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.LanguageQualifier("en"), - ), "font-en/emptyFont.otf", -1, -1), - org.jetbrains.compose.resources.ResourceItem(setOf(), "font/emptyFont.otf", -1, -1), + ), "composeResources/my.lib.res/font-en/emptyFont.otf", -1, -1), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/my.lib.res/font/emptyFont.otf", -1, -1), ) ) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Plurals0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Plurals0.commonMain.kt index 95ecbbca591..e97fd6730d3 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Plurals0.commonMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Plurals0.commonMain.kt @@ -17,7 +17,7 @@ private fun init_numberOfSongsAvailable(): PluralStringResource = org.jetbrains.compose.resources.PluralStringResource( "plurals:numberOfSongsAvailable", "numberOfSongsAvailable", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 10, - 124), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/my.lib.res/values/strings.commonMain.cvr", 10, 124), ) ) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/String0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/String0.commonMain.kt index e7ddb90a51b..401c58853a7 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/String0.commonMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/String0.commonMain.kt @@ -37,8 +37,8 @@ public val Res.string.PascalCase: StringResource private fun init_PascalCase(): StringResource = org.jetbrains.compose.resources.StringResource( "string:PascalCase", "PascalCase", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 172, - 34), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/my.lib.res/values/strings.commonMain.cvr", 172, 34), ) ) @@ -48,8 +48,8 @@ public val Res.string._1_kebab_case: StringResource private fun init__1_kebab_case(): StringResource = org.jetbrains.compose.resources.StringResource( "string:_1_kebab_case", "_1_kebab_case", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 135, - 36), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/my.lib.res/values/strings.commonMain.cvr", 135, 36), ) ) @@ -59,8 +59,8 @@ public val Res.string.app_name: StringResource private fun init_app_name(): StringResource = org.jetbrains.compose.resources.StringResource( "string:app_name", "app_name", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 207, - 44), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/my.lib.res/values/strings.commonMain.cvr", 207, 44), ) ) @@ -70,8 +70,8 @@ public val Res.string.camelCase: StringResource private fun init_camelCase(): StringResource = org.jetbrains.compose.resources.StringResource( "string:camelCase", "camelCase", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 252, - 29), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/my.lib.res/values/strings.commonMain.cvr", 252, 29), ) ) @@ -81,8 +81,8 @@ public val Res.string.hello: StringResource private fun init_hello(): StringResource = org.jetbrains.compose.resources.StringResource( "string:hello", "hello", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 282, - 37), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/my.lib.res/values/strings.commonMain.cvr", 282, 37), ) ) @@ -93,8 +93,8 @@ private fun `init_info_using_release_$x`(): StringResource = org.jetbrains.compose.resources.StringResource( "string:info_using_release_${'$'}x", "info_using_release_${'$'}x", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 320, - 57), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/my.lib.res/values/strings.commonMain.cvr", 320, 57), ) ) @@ -104,8 +104,8 @@ public val Res.string.multi_line: StringResource private fun init_multi_line(): StringResource = org.jetbrains.compose.resources.StringResource( "string:multi_line", "multi_line", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 378, - 178), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/my.lib.res/values/strings.commonMain.cvr", 378, 178), ) ) @@ -115,7 +115,7 @@ public val Res.string.str_template: StringResource private fun init_str_template(): StringResource = org.jetbrains.compose.resources.StringResource( "string:str_template", "str_template", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 557, - 76), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/my.lib.res/values/strings.commonMain.cvr", 557, 76), ) ) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonResClass/my/lib/res/Res.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonResClass/my/lib/res/Res.kt index e5a14096343..50ce381bf18 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonResClass/my/lib/res/Res.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonResClass/my/lib/res/Res.kt @@ -22,7 +22,8 @@ public object Res { * @return The content of the file as a byte array. */ @ExperimentalResourceApi - public suspend fun readBytes(path: String): ByteArray = readResourceBytes("" + path) + public suspend fun readBytes(path: String): ByteArray = + readResourceBytes("composeResources/my.lib.res/" + path) /** * Returns the URI string of the resource file at the specified path. @@ -33,7 +34,7 @@ public object Res { * @return The URI string of the file. */ @ExperimentalResourceApi - public fun getUri(path: String): String = getResourceUri("" + path) + public fun getUri(path: String): String = getResourceUri("composeResources/my.lib.res/" + path) public object drawable diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/desktopMainResourceAccessors/my/lib/res/String0.desktopMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/desktopMainResourceAccessors/my/lib/res/String0.desktopMain.kt index 4fcecd75b6c..d002471d46a 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/desktopMainResourceAccessors/my/lib/res/String0.desktopMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/desktopMainResourceAccessors/my/lib/res/String0.desktopMain.kt @@ -17,6 +17,6 @@ private fun init_desktop_str(): StringResource = org.jetbrains.compose.resources "string:desktop_str", "desktop_str", setOf( org.jetbrains.compose.resources.ResourceItem(setOf(), - "values/desktop_strings.desktopMain.cvr", 10, 39), + "composeResources/my.lib.res/values/desktop_strings.desktopMain.cvr", 10, 39), ) ) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/androidMainResourceAccessors/app/group/resources_test/generated/resources/String0.androidMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/androidMainResourceAccessors/app/group/resources_test/generated/resources/String0.androidMain.kt index 98e03554540..0b672fbfdee 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/androidMainResourceAccessors/app/group/resources_test/generated/resources/String0.androidMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/androidMainResourceAccessors/app/group/resources_test/generated/resources/String0.androidMain.kt @@ -16,7 +16,8 @@ internal val Res.string.android_str: StringResource private fun init_android_str(): StringResource = org.jetbrains.compose.resources.StringResource( "string:android_str", "android_str", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.androidMain.cvr", 10, - 39), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/app.group.resources_test.generated.resources/values/strings.androidMain.cvr", + 10, 39), ) ) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Drawable0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Drawable0.commonMain.kt index 0853a96b34b..d4b0e2aa251 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Drawable0.commonMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Drawable0.commonMain.kt @@ -29,7 +29,8 @@ private fun init__3_strange_name(): DrawableResource = org.jetbrains.compose.resources.DrawableResource( "drawable:_3_strange_name", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/3-strange-name.xml", -1, -1), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/app.group.resources_test.generated.resources/drawable/3-strange-name.xml", -1, -1), ) ) @@ -40,7 +41,8 @@ private fun init_camelCaseName(): DrawableResource = org.jetbrains.compose.resources.DrawableResource( "drawable:camelCaseName", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/camelCaseName.xml", -1, -1), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/app.group.resources_test.generated.resources/drawable/camelCaseName.xml", -1, -1), ) ) @@ -50,7 +52,8 @@ internal val Res.drawable.`is`: DrawableResource private fun init_is(): DrawableResource = org.jetbrains.compose.resources.DrawableResource( "drawable:is", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/is.xml", -1, -1), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/app.group.resources_test.generated.resources/drawable/is.xml", -1, -1), ) ) @@ -62,18 +65,22 @@ private fun init_vector(): DrawableResource = org.jetbrains.compose.resources.Dr setOf( org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.LanguageQualifier("ast"), - ), "drawable-ast/vector.xml", -1, -1), + ), + "composeResources/app.group.resources_test.generated.resources/drawable-ast/vector.xml", -1, -1), org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.LanguageQualifier("au"), - org.jetbrains.compose.resources.RegionQualifier("US"), ), "drawable-au-rUS/vector.xml", -1, -1), + org.jetbrains.compose.resources.RegionQualifier("US"), ), + "composeResources/app.group.resources_test.generated.resources/drawable-au-rUS/vector.xml", -1, -1), org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.ThemeQualifier.DARK, org.jetbrains.compose.resources.LanguageQualifier("ge"), ), - "drawable-dark-ge/vector.xml", -1, -1), + "composeResources/app.group.resources_test.generated.resources/drawable-dark-ge/vector.xml", -1, -1), org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.LanguageQualifier("en"), - ), "drawable-en/vector.xml", -1, -1), - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/vector.xml", -1, -1), + ), + "composeResources/app.group.resources_test.generated.resources/drawable-en/vector.xml", -1, -1), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/app.group.resources_test.generated.resources/drawable/vector.xml", -1, -1), ) ) @@ -83,6 +90,7 @@ internal val Res.drawable.vector_2: DrawableResource private fun init_vector_2(): DrawableResource = org.jetbrains.compose.resources.DrawableResource( "drawable:vector_2", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/vector_2.xml", -1, -1), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/app.group.resources_test.generated.resources/drawable/vector_2.xml", -1, -1), ) ) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Font0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Font0.commonMain.kt index 89ff6eb7b8b..432d74d5f6f 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Font0.commonMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Font0.commonMain.kt @@ -18,7 +18,9 @@ private fun init_emptyFont(): FontResource = org.jetbrains.compose.resources.Fon setOf( org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.LanguageQualifier("en"), - ), "font-en/emptyFont.otf", -1, -1), - org.jetbrains.compose.resources.ResourceItem(setOf(), "font/emptyFont.otf", -1, -1), + ), + "composeResources/app.group.resources_test.generated.resources/font-en/emptyFont.otf", -1, -1), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/app.group.resources_test.generated.resources/font/emptyFont.otf", -1, -1), ) ) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Plurals0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Plurals0.commonMain.kt index 9674a83744d..b6b1abf697c 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Plurals0.commonMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Plurals0.commonMain.kt @@ -17,7 +17,8 @@ private fun init_numberOfSongsAvailable(): PluralStringResource = org.jetbrains.compose.resources.PluralStringResource( "plurals:numberOfSongsAvailable", "numberOfSongsAvailable", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 10, - 124), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/app.group.resources_test.generated.resources/values/strings.commonMain.cvr", + 10, 124), ) ) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/String0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/String0.commonMain.kt index 570cccd7807..9576f03c4f3 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/String0.commonMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/String0.commonMain.kt @@ -37,8 +37,9 @@ internal val Res.string.PascalCase: StringResource private fun init_PascalCase(): StringResource = org.jetbrains.compose.resources.StringResource( "string:PascalCase", "PascalCase", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 172, - 34), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/app.group.resources_test.generated.resources/values/strings.commonMain.cvr", + 172, 34), ) ) @@ -48,8 +49,9 @@ internal val Res.string._1_kebab_case: StringResource private fun init__1_kebab_case(): StringResource = org.jetbrains.compose.resources.StringResource( "string:_1_kebab_case", "_1_kebab_case", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 135, - 36), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/app.group.resources_test.generated.resources/values/strings.commonMain.cvr", + 135, 36), ) ) @@ -59,8 +61,9 @@ internal val Res.string.app_name: StringResource private fun init_app_name(): StringResource = org.jetbrains.compose.resources.StringResource( "string:app_name", "app_name", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 207, - 44), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/app.group.resources_test.generated.resources/values/strings.commonMain.cvr", + 207, 44), ) ) @@ -70,8 +73,9 @@ internal val Res.string.camelCase: StringResource private fun init_camelCase(): StringResource = org.jetbrains.compose.resources.StringResource( "string:camelCase", "camelCase", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 252, - 29), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/app.group.resources_test.generated.resources/values/strings.commonMain.cvr", + 252, 29), ) ) @@ -81,8 +85,9 @@ internal val Res.string.hello: StringResource private fun init_hello(): StringResource = org.jetbrains.compose.resources.StringResource( "string:hello", "hello", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 282, - 37), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/app.group.resources_test.generated.resources/values/strings.commonMain.cvr", + 282, 37), ) ) @@ -93,8 +98,9 @@ private fun `init_info_using_release_$x`(): StringResource = org.jetbrains.compose.resources.StringResource( "string:info_using_release_${'$'}x", "info_using_release_${'$'}x", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 320, - 57), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/app.group.resources_test.generated.resources/values/strings.commonMain.cvr", + 320, 57), ) ) @@ -104,8 +110,9 @@ internal val Res.string.multi_line: StringResource private fun init_multi_line(): StringResource = org.jetbrains.compose.resources.StringResource( "string:multi_line", "multi_line", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 378, - 178), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/app.group.resources_test.generated.resources/values/strings.commonMain.cvr", + 378, 178), ) ) @@ -115,7 +122,8 @@ internal val Res.string.str_template: StringResource private fun init_str_template(): StringResource = org.jetbrains.compose.resources.StringResource( "string:str_template", "str_template", setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 557, - 76), + org.jetbrains.compose.resources.ResourceItem(setOf(), + "composeResources/app.group.resources_test.generated.resources/values/strings.commonMain.cvr", + 557, 76), ) ) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonResClass/app/group/resources_test/generated/resources/Res.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonResClass/app/group/resources_test/generated/resources/Res.kt index 9b19cafa4cd..58b19ebe7a6 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonResClass/app/group/resources_test/generated/resources/Res.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonResClass/app/group/resources_test/generated/resources/Res.kt @@ -22,7 +22,8 @@ internal object Res { * @return The content of the file as a byte array. */ @ExperimentalResourceApi - public suspend fun readBytes(path: String): ByteArray = readResourceBytes("" + path) + public suspend fun readBytes(path: String): ByteArray = + readResourceBytes("composeResources/app.group.resources_test.generated.resources/" + path) /** * Returns the URI string of the resource file at the specified path. @@ -33,7 +34,8 @@ internal object Res { * @return The URI string of the file. */ @ExperimentalResourceApi - public fun getUri(path: String): String = getResourceUri("" + path) + public fun getUri(path: String): String = + getResourceUri("composeResources/app.group.resources_test.generated.resources/" + path) public object drawable diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/desktopMainResourceAccessors/app/group/resources_test/generated/resources/String0.desktopMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/desktopMainResourceAccessors/app/group/resources_test/generated/resources/String0.desktopMain.kt index badfa7b5b20..0eabfd7621b 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/desktopMainResourceAccessors/app/group/resources_test/generated/resources/String0.desktopMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/desktopMainResourceAccessors/app/group/resources_test/generated/resources/String0.desktopMain.kt @@ -17,6 +17,7 @@ private fun init_desktop_str(): StringResource = org.jetbrains.compose.resources "string:desktop_str", "desktop_str", setOf( org.jetbrains.compose.resources.ResourceItem(setOf(), - "values/desktop_strings.desktopMain.cvr", 10, 39), + "composeResources/app.group.resources_test.generated.resources/values/desktop_strings.desktopMain.cvr", + 10, 39), ) ) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/settings.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/settings.gradle.kts index 19b673273f1..30b9d60bc63 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/settings.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/settings.gradle.kts @@ -9,6 +9,7 @@ pluginManagement { plugins { id("com.android.application").version("AGP_VERSION_PLACEHOLDER") id("org.jetbrains.kotlin.multiplatform").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.plugin.compose").version("KOTLIN_VERSION_PLACEHOLDER") id("org.jetbrains.compose").version("COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER") } } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/build.gradle.kts index 699c9aa0f2b..f321450f7ca 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/build.gradle.kts @@ -1,5 +1,6 @@ plugins { kotlin("multiplatform") + kotlin("plugin.compose") id("org.jetbrains.compose") } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/expected/Res.kt b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/expected/Res.kt index b6fbefa22ea..b6af81dff55 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/expected/Res.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/expected/Res.kt @@ -22,7 +22,8 @@ internal object Res { * @return The content of the file as a byte array. */ @ExperimentalResourceApi - public suspend fun readBytes(path: String): ByteArray = readResourceBytes("" + path) + public suspend fun readBytes(path: String): ByteArray = + readResourceBytes("composeResources/app.group.empty_res.generated.resources/" + path) /** * Returns the URI string of the resource file at the specified path. @@ -33,7 +34,8 @@ internal object Res { * @return The URI string of the file. */ @ExperimentalResourceApi - public fun getUri(path: String): String = getResourceUri("" + path) + public fun getUri(path: String): String = + getResourceUri("composeResources/app.group.empty_res.generated.resources/" + path) public object drawable diff --git a/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/settings.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/settings.gradle.kts index 38898d0d94b..65030c40e7b 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/settings.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/settings.gradle.kts @@ -8,6 +8,7 @@ pluginManagement { } plugins { id("org.jetbrains.kotlin.multiplatform").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.plugin.compose").version("KOTLIN_VERSION_PLACEHOLDER") id("org.jetbrains.compose").version("COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER") } } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/iosResources/build.gradle.kts index daeacab6216..e8f759c1b8b 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/iosResources/build.gradle.kts @@ -1,5 +1,6 @@ plugins { kotlin("multiplatform") + kotlin("plugin.compose") kotlin("native.cocoapods") id("org.jetbrains.compose") } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/expected/iosResources.podspec b/gradle-plugins/compose/src/test/test-projects/misc/iosResources/expected/iosResources.podspec index f08c84b9586..aad9ba4363e 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/expected/iosResources.podspec +++ b/gradle-plugins/compose/src/test/test-projects/misc/iosResources/expected/iosResources.podspec @@ -22,6 +22,10 @@ Pod::Spec.new do |spec| Alternatively, proper pod installation is performed during Gradle sync in the IDE (if Podfile location is set)" end + spec.xcconfig = { + 'ENABLE_USER_SCRIPT_SANDBOXING' => 'NO', + } + spec.pod_target_xcconfig = { 'KOTLIN_PROJECT_PATH' => '', 'PRODUCT_MODULE_NAME' => 'shared', diff --git a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/settings.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/iosResources/settings.gradle.kts index 5efe902b203..af172cd475b 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/settings.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/iosResources/settings.gradle.kts @@ -8,6 +8,7 @@ pluginManagement { } plugins { id("org.jetbrains.kotlin.multiplatform").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.plugin.compose").version("KOTLIN_VERSION_PLACEHOLDER") id("org.jetbrains.kotlin.native.cocoapods").version("KOTLIN_VERSION_PLACEHOLDER") id("org.jetbrains.compose").version("COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER") } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jsMpp/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/jsMpp/build.gradle index e409ff5ffce..53e1c745829 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jsMpp/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/misc/jsMpp/build.gradle @@ -1,7 +1,6 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - plugins { id "org.jetbrains.kotlin.multiplatform" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jsMpp/settings.gradle b/gradle-plugins/compose/src/test/test-projects/misc/jsMpp/settings.gradle index afca8638e99..a7062f47ee7 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jsMpp/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/misc/jsMpp/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/build.gradle.kts index 269826d5752..57abbb99b62 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/build.gradle.kts @@ -1,5 +1,6 @@ plugins { id("org.jetbrains.compose") + kotlin("plugin.compose") kotlin("jvm") } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/settings.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/settings.gradle.kts index db2097cc90f..379274b6cc5 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/settings.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/settings.gradle.kts @@ -8,6 +8,7 @@ pluginManagement { } plugins { id("org.jetbrains.kotlin.jvm").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.plugin.compose").version("KOTLIN_VERSION_PLACEHOLDER") id("org.jetbrains.compose").version("COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER") } } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/common/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/common/build.gradle index af37d00512d..420faf2b991 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/common/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/common/build.gradle @@ -1,5 +1,6 @@ plugins { id 'org.jetbrains.kotlin.multiplatform' + id 'org.jetbrains.kotlin.plugin.compose' id 'org.jetbrains.compose' } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/jvm/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/jvm/build.gradle index 75721fd9c7f..80b5af1c9c6 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/jvm/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/jvm/build.gradle @@ -1,5 +1,6 @@ plugins { id 'org.jetbrains.kotlin.jvm' + id 'org.jetbrains.kotlin.plugin.compose' id 'org.jetbrains.compose' } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/mpp/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/mpp/build.gradle index 884f35288fb..a567a308bbb 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/mpp/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/mpp/build.gradle @@ -1,5 +1,6 @@ plugins { id 'org.jetbrains.kotlin.multiplatform' + id 'org.jetbrains.kotlin.plugin.compose' id 'org.jetbrains.compose' } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/settings.gradle b/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/settings.gradle index 11b571ba965..ceb7bfdecf3 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/build.gradle deleted file mode 100644 index 1e43a147b8e..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/build.gradle +++ /dev/null @@ -1,27 +0,0 @@ -plugins { - id "org.jetbrains.kotlin.multiplatform" - id "org.jetbrains.compose" -} - -kotlin { - iosX64 { - binaries.framework { - isStatic = true - baseName = "shared" - } - } - iosArm64 { - binaries.framework { - isStatic = true - baseName = "shared" - } - } - - sourceSets { - commonMain { - dependencies { - implementation(compose.runtime) - } - } - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/gradle.properties b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/gradle.properties deleted file mode 100644 index 695204ddbfe..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/gradle.properties +++ /dev/null @@ -1,2 +0,0 @@ -org.gradle.jvmargs=-Xmx8096M -org.jetbrains.compose.experimental.uikit.enabled=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/src/commonMain/kotlin/App.kt b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/src/commonMain/kotlin/App.kt deleted file mode 100644 index 2fe6d0719f4..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/src/commonMain/kotlin/App.kt +++ /dev/null @@ -1,10 +0,0 @@ -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue - -@Composable -fun App() { - var text by remember { mutableStateOf("Hello, World!") } -} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/subproject/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/subproject/build.gradle deleted file mode 100644 index 1e43a147b8e..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/subproject/build.gradle +++ /dev/null @@ -1,27 +0,0 @@ -plugins { - id "org.jetbrains.kotlin.multiplatform" - id "org.jetbrains.compose" -} - -kotlin { - iosX64 { - binaries.framework { - isStatic = true - baseName = "shared" - } - } - iosArm64 { - binaries.framework { - isStatic = true - baseName = "shared" - } - } - - sourceSets { - commonMain { - dependencies { - implementation(compose.runtime) - } - } - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/subproject/src/commonMain/kotlin/App.kt b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/subproject/src/commonMain/kotlin/App.kt deleted file mode 100644 index 2fe6d0719f4..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/subproject/src/commonMain/kotlin/App.kt +++ /dev/null @@ -1,10 +0,0 @@ -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue - -@Composable -fun App() { - var text by remember { mutableStateOf("Hello, World!") } -} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/build.gradle deleted file mode 100644 index 40170b68cb3..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/build.gradle +++ /dev/null @@ -1,20 +0,0 @@ -plugins { - id "org.jetbrains.kotlin.multiplatform" - id "org.jetbrains.compose" -} - -kotlin { - iosX64() - iosArm64() - iosSimulatorArm64() - macosX64() - macosArm64() - - sourceSets { - commonMain { - dependencies { - implementation(compose.runtime) - } - } - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/gradle.properties b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/gradle.properties deleted file mode 100644 index 689880ee3f4..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -org.jetbrains.compose.experimental.uikit.enabled=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/src/commonMain/kotlin/App.kt b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/src/commonMain/kotlin/App.kt deleted file mode 100644 index 2fe6d0719f4..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/src/commonMain/kotlin/App.kt +++ /dev/null @@ -1,10 +0,0 @@ -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue - -@Composable -fun App() { - var text by remember { mutableStateOf("Hello, World!") } -} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/subproject/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/subproject/build.gradle deleted file mode 100644 index 40170b68cb3..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/subproject/build.gradle +++ /dev/null @@ -1,20 +0,0 @@ -plugins { - id "org.jetbrains.kotlin.multiplatform" - id "org.jetbrains.compose" -} - -kotlin { - iosX64() - iosArm64() - iosSimulatorArm64() - macosX64() - macosArm64() - - sourceSets { - commonMain { - dependencies { - implementation(compose.runtime) - } - } - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/subproject/src/commonMain/kotlin/App.kt b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/subproject/src/commonMain/kotlin/App.kt deleted file mode 100644 index 2fe6d0719f4..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/subproject/src/commonMain/kotlin/App.kt +++ /dev/null @@ -1,10 +0,0 @@ -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue - -@Composable -fun App() { - var text by remember { mutableStateOf("Hello, World!") } -} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/build.gradle index dc861c0809f..f9dc490179f 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/build.gradle @@ -1,7 +1,6 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - plugins { id "org.jetbrains.kotlin.multiplatform" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/gradle.properties b/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/gradle.properties index 9c8f6b37b55..4fae7bbeffc 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/gradle.properties +++ b/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/gradle.properties @@ -1 +1,2 @@ +org.gradle.jvmargs=-Xmx8096M org.jetbrains.compose.experimental.jscanvas.enabled=true diff --git a/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/settings.gradle b/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/settings.gradle index 3e41d3e3e9a..56a55d1288c 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { diff --git a/gradle-plugins/gradle.properties b/gradle-plugins/gradle.properties index 43681791fc4..af381fcbcb0 100644 --- a/gradle-plugins/gradle.properties +++ b/gradle-plugins/gradle.properties @@ -9,18 +9,14 @@ dev.junit.parallel=false # Default version of Compose Libraries used by Gradle plugin compose.version=1.6.10 -# The latest version of Compose Compiler used by Gradle plugin. Used only in tests/CI. -compose.tests.compiler.version=1.5.14 # The latest version of Kotlin compatible with compose.tests.compiler.version. Used only in tests/CI. -compose.tests.compiler.compatible.kotlin.version=1.9.24 -# The latest version of Kotlin compatible with compose.tests.compiler.version for JS target. Used only on CI. -compose.tests.js.compiler.compatible.kotlin.version=1.9.24 +compose.tests.kotlin.version=2.0.0 # __SUPPORTED_GRADLE_VERSIONS__ # Don't forget to edit versions in .github/workflows/gradle-plugin.yml as well # and Publish.Subtasks.buildTypes.gradle.GradlePluginTestKt#gradleVersions in the TC config # minimal and current gradle version -compose.tests.gradle.versions=7.4, 8.7 -compose.tests.agp.versions=8.1.0, 8.4.0 +compose.tests.gradle.versions=7.4, 8.8 +compose.tests.agp.versions=8.1.0, 8.5.0 # A version of Gradle plugin, that will be published, # unless overridden by COMPOSE_GRADLE_PLUGIN_VERSION env var. diff --git a/gradle-plugins/gradle/libs.versions.toml b/gradle-plugins/gradle/libs.versions.toml index 5a2fc3056a3..b8f8f04a8cc 100644 --- a/gradle-plugins/gradle/libs.versions.toml +++ b/gradle-plugins/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -kotlin = "1.9.0" +kotlin = "2.0.0" gradle-download-plugin = "5.5.0" kotlin-poet = "1.16.0" plugin-android = "7.3.0" diff --git a/gradle-plugins/gradle/wrapper/gradle-wrapper.jar b/gradle-plugins/gradle/wrapper/gradle-wrapper.jar index 62d4c053550..e6441136f3d 100644 Binary files a/gradle-plugins/gradle/wrapper/gradle-wrapper.jar and b/gradle-plugins/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle-plugins/gradle/wrapper/gradle-wrapper.properties b/gradle-plugins/gradle/wrapper/gradle-wrapper.properties index 48c0a02ca41..a4413138c96 100644 --- a/gradle-plugins/gradle/wrapper/gradle-wrapper.properties +++ b/gradle-plugins/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradle-plugins/gradlew b/gradle-plugins/gradlew index fbd7c515832..1aa94a42690 100755 --- a/gradle-plugins/gradlew +++ b/gradle-plugins/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,67 +17,99 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -87,9 +119,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -98,88 +130,120 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. # For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=`expr $i + 1` + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' exec "$JAVACMD" "$@" diff --git a/gradle-plugins/gradlew.bat b/gradle-plugins/gradlew.bat index a9f778a7a96..7101f8e4676 100644 --- a/gradle-plugins/gradlew.bat +++ b/gradle-plugins/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +25,8 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,13 +41,13 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -54,31 +55,16 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line @@ -86,17 +72,19 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal