From e396da056249103c0fe21aec5c153aaf4b47ec46 Mon Sep 17 00:00:00 2001 From: Sergey Bogolepov Date: Wed, 30 Jun 2021 14:34:41 +0700 Subject: [PATCH] [K/N] Update list of targets with stable caches Enable compiler caches for iosSimulatorArm64 and macosArm64 targets to make Apple Silicon distribution feature complete with Intel-based one. --- kotlin-native/konan/konan.properties | 1 + .../gradle/targets/native/tasks/KotlinNativeTasks.kt | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/kotlin-native/konan/konan.properties b/kotlin-native/konan/konan.properties index 44c58515e92..59972af1880 100644 --- a/kotlin-native/konan/konan.properties +++ b/kotlin-native/konan/konan.properties @@ -91,6 +91,7 @@ cacheableTargets.macos_arm64 = \ # Targets that support compiler caches, but these caches # are not considered stable enough to be turned on by default. +# TODO: Not used by Gradle plugin yet. Tracking issue: https://youtrack.jetbrains.com/issue/KT-47529 optInCacheableTargets = \ ios_arm64 \ linux_x64 diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt index c84d6da0ef5..6fc3fd59cc1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt @@ -879,9 +879,12 @@ internal class CacheBuilder(val project: Project, val binary: NativeBinary, val .map { KonanTarget.predefinedTargets.getValue(it) } // Targets with well-tested static caches that can be enabled by default. - // TODO: Move it to konan.properties. + // TODO: There is a corresponding property in konan.properties (optInCacheableTargets), + // but naïve implementation makes build slower because it makes reading of konan.properties significantly more frequent. + // One possible solution is to use [Gradle Build service](https://docs.gradle.org/current/userguide/build_services.html). + // Tracking issue: https://youtrack.jetbrains.com/issue/KT-47529 private val targetsWithStableStaticCaches = - setOf(KonanTarget.IOS_X64, KonanTarget.MACOS_X64) + setOf(KonanTarget.IOS_X64, KonanTarget.MACOS_X64, KonanTarget.IOS_SIMULATOR_ARM64, KonanTarget.MACOS_ARM64) internal fun cacheWorksFor(target: KonanTarget, project: Project) = target in getCacheableTargets(project)