diff --git a/skiko/buildSrc/src/main/kotlin/tasks/configuration/JvmTasksConfiguration.kt b/skiko/buildSrc/src/main/kotlin/tasks/configuration/JvmTasksConfiguration.kt index 99b043b63..aaad384ae 100644 --- a/skiko/buildSrc/src/main/kotlin/tasks/configuration/JvmTasksConfiguration.kt +++ b/skiko/buildSrc/src/main/kotlin/tasks/configuration/JvmTasksConfiguration.kt @@ -455,6 +455,7 @@ fun SkikoProjectContext.createSkikoJvmJarTask(os: OS, arch: Arch, commonJar: Tas val createChecksums2 = createChecksumsTask(os, altArch, nativeLib2) nativeFiles.add(nativeLib2) nativeFiles.add(createChecksums2.map { it.outputs.files.singleFile }) + allJvmRuntimeJars[os to altArch] = skikoJvmRuntimeJarTask(os, altArch, commonJar, nativeFiles) } val skikoJvmRuntimeJar = skikoJvmRuntimeJarTask(os, arch, commonJar, nativeFiles) allJvmRuntimeJars[os to arch] = skikoJvmRuntimeJar diff --git a/skiko/buildSrc/src/main/kotlin/tasks/configuration/NativeTasksConfiguration.kt b/skiko/buildSrc/src/main/kotlin/tasks/configuration/NativeTasksConfiguration.kt index d49a1df58..d84aa8353 100644 --- a/skiko/buildSrc/src/main/kotlin/tasks/configuration/NativeTasksConfiguration.kt +++ b/skiko/buildSrc/src/main/kotlin/tasks/configuration/NativeTasksConfiguration.kt @@ -31,6 +31,21 @@ fun String.withSuffix(isUikitSim: Boolean = false) = fun KotlinTarget.isUikitSimulator() = name.contains("Simulator", ignoreCase = true) || name == "tvosX64" // x64 tvOS is implicitly a simulator +fun Project.findXcodeSdkRoot(): String { + val defaultPath = "/Applications/Xcode.app/Contents/Developer/Platforms" + if (File(defaultPath).exists()) { + return defaultPath.also { + println("findXcodeSdkRoot = $it") + } + } + + return (project.property("skiko.ci.xcodehome") as? String)?.let { + val sdkPath = it + "/Platforms" + println("findXcodeSdkRoot = $sdkPath") + sdkPath + } ?: error("gradle property `skiko.ci.xcodehome` is not set") +} + fun SkikoProjectContext.compileNativeBridgesTask( os: OS, arch: Arch, isUikitSim: Boolean ): TaskProvider = with (this.project) { @@ -52,7 +67,7 @@ fun SkikoProjectContext.compileNativeBridgesTask( when (os) { OS.IOS -> { - val sdkRoot = "/Applications/Xcode.app/Contents/Developer/Platforms" + val sdkRoot = findXcodeSdkRoot() val iphoneOsSdk = "$sdkRoot/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk" val iphoneSimSdk = "$sdkRoot/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk" val iosArchFlags = when (arch) { @@ -76,7 +91,7 @@ fun SkikoProjectContext.compileNativeBridgesTask( )) } OS.TVOS -> { - val sdkRoot = "/Applications/Xcode.app/Contents/Developer/Platforms" + val sdkRoot = findXcodeSdkRoot() val tvOsSdk = "$sdkRoot/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk" val tvSimSdk = "$sdkRoot/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator.sdk" val tvosArchFlags = when (arch) {