Make Xcode utils public for gradle integration tests.

This commit is contained in:
konstantin.tskhovrebov
2022-09-29 11:22:29 +02:00
committed by Space Team
parent 239a1a4bab
commit 0ffb370579
2 changed files with 10 additions and 12 deletions
@@ -9,6 +9,7 @@ import com.intellij.testFramework.TestDataFile
import org.jdom.input.SAXBuilder import org.jdom.input.SAXBuilder
import org.jetbrains.kotlin.gradle.BaseGradleIT import org.jetbrains.kotlin.gradle.BaseGradleIT
import org.jetbrains.kotlin.gradle.GradleVersionRequired 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_DISABLE_WARNING_PROPERTY_NAME
import org.jetbrains.kotlin.gradle.internals.DISABLED_NATIVE_TARGETS_REPORTER_WARNING_PREFIX import org.jetbrains.kotlin.gradle.internals.DISABLED_NATIVE_TARGETS_REPORTER_WARNING_PREFIX
import org.jetbrains.kotlin.gradle.internals.NO_NATIVE_STDLIB_PROPERTY_WARNING 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.transformProjectWithPluginsDsl
import org.jetbrains.kotlin.gradle.util.modify import org.jetbrains.kotlin.gradle.util.modify
import org.jetbrains.kotlin.gradle.util.runProcess 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.CompilerOutputKind
import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.target.HostManager
import org.jetbrains.kotlin.konan.target.KonanTarget 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() { class GeneralNativeIT : BaseGradleIT() {
val nativeHostTargetName = MPPNativeTargets.current val nativeHostTargetName = MPPNativeTargets.current
@@ -373,12 +376,7 @@ class GeneralNativeIT : BaseGradleIT() {
frameworkPaths.forEach { assertFileExists(it) } frameworkPaths.forEach { assertFileExists(it) }
assertTrue(fileInWorkingDir(headerPaths[0]).readText().contains("+ (int32_t)exported")) assertTrue(fileInWorkingDir(headerPaths[0]).readText().contains("+ (int32_t)exported"))
val xcodeVersionString = runProcess( val xcodeMajorVersion = Xcode!!.currentVersion.split(".")[0].toInt()
listOf("/usr/bin/xcrun", "xcodebuild", "-version"),
workingDir,
System.getenv()
).output.lines()[0].removePrefix("Xcode ")
val xcodeMajorVersion = xcodeVersionString.split(".")[0].toInt()
// Check that by default release frameworks have bitcode embedded. // Check that by default release frameworks have bitcode embedded.
withNativeCommandLineArguments(":linkMainReleaseFrameworkIos") { arguments -> withNativeCommandLineArguments(":linkMainReleaseFrameworkIos") { arguments ->
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.gradle.utils 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.BitcodeEmbeddingMode
import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType
import org.jetbrains.kotlin.konan.target.Architecture.ARM32 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.konan.target.KonanTarget
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toUpperCaseAsciiOnly import org.jetbrains.kotlin.util.capitalizeDecapitalize.toUpperCaseAsciiOnly
@InternalKotlinGradlePluginApi
val Xcode = XcodeUtils.INSTANCE
internal val Xcode = XcodeUtils() @InternalKotlinGradlePluginApi
class XcodeUtils private constructor() {
internal class XcodeUtils private constructor() {
companion object { companion object {
private val current: XcodeUtils? = internal val INSTANCE: XcodeUtils? =
if (HostManager.hostIsMac) XcodeUtils() else null if (HostManager.hostIsMac) XcodeUtils() else null
operator fun invoke() = current
} }
val currentVersion: String by lazy { val currentVersion: String by lazy {