From 0ffb370579896087cd51b2ee3eb26ec7a9fc0ee3 Mon Sep 17 00:00:00 2001 From: "konstantin.tskhovrebov" Date: Thu, 29 Sep 2022 11:22:29 +0200 Subject: [PATCH] Make Xcode utils public for gradle integration tests. --- .../kotlin/gradle/native/GeneralNativeIT.kt | 10 ++++------ .../org/jetbrains/kotlin/gradle/utils/Xcode.kt | 12 ++++++------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/GeneralNativeIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/GeneralNativeIT.kt index 5854a2204a9..ea3760a8506 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/GeneralNativeIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/GeneralNativeIT.kt @@ -9,6 +9,7 @@ import com.intellij.testFramework.TestDataFile import org.jdom.input.SAXBuilder import org.jetbrains.kotlin.gradle.BaseGradleIT import org.jetbrains.kotlin.gradle.GradleVersionRequired +import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.internals.DISABLED_NATIVE_TARGETS_REPORTER_DISABLE_WARNING_PROPERTY_NAME import org.jetbrains.kotlin.gradle.internals.DISABLED_NATIVE_TARGETS_REPORTER_WARNING_PREFIX import org.jetbrains.kotlin.gradle.internals.NO_NATIVE_STDLIB_PROPERTY_WARNING @@ -17,6 +18,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.NativeOutputKind import org.jetbrains.kotlin.gradle.transformProjectWithPluginsDsl import org.jetbrains.kotlin.gradle.util.modify import org.jetbrains.kotlin.gradle.util.runProcess +import org.jetbrains.kotlin.gradle.utils.Xcode import org.jetbrains.kotlin.konan.target.CompilerOutputKind import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.target.KonanTarget @@ -101,6 +103,7 @@ private fun BaseGradleIT.Project.configureSingleNativeTarget(preset: String = Ho } } +@OptIn(InternalKotlinGradlePluginApi::class) class GeneralNativeIT : BaseGradleIT() { val nativeHostTargetName = MPPNativeTargets.current @@ -373,12 +376,7 @@ class GeneralNativeIT : BaseGradleIT() { frameworkPaths.forEach { assertFileExists(it) } assertTrue(fileInWorkingDir(headerPaths[0]).readText().contains("+ (int32_t)exported")) - val xcodeVersionString = runProcess( - listOf("/usr/bin/xcrun", "xcodebuild", "-version"), - workingDir, - System.getenv() - ).output.lines()[0].removePrefix("Xcode ") - val xcodeMajorVersion = xcodeVersionString.split(".")[0].toInt() + val xcodeMajorVersion = Xcode!!.currentVersion.split(".")[0].toInt() // Check that by default release frameworks have bitcode embedded. withNativeCommandLineArguments(":linkMainReleaseFrameworkIos") { arguments -> diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/Xcode.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/Xcode.kt index 46ab0f445f9..fb61ba6e4e8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/Xcode.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/Xcode.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.gradle.utils +import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.plugin.mpp.BitcodeEmbeddingMode import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType import org.jetbrains.kotlin.konan.target.Architecture.ARM32 @@ -15,16 +16,15 @@ import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.target.KonanTarget import org.jetbrains.kotlin.util.capitalizeDecapitalize.toUpperCaseAsciiOnly +@InternalKotlinGradlePluginApi +val Xcode = XcodeUtils.INSTANCE -internal val Xcode = XcodeUtils() - -internal class XcodeUtils private constructor() { +@InternalKotlinGradlePluginApi +class XcodeUtils private constructor() { companion object { - private val current: XcodeUtils? = + internal val INSTANCE: XcodeUtils? = if (HostManager.hostIsMac) XcodeUtils() else null - - operator fun invoke() = current } val currentVersion: String by lazy {