blob: 31e75b7abc508e7142a3f1dce1777bc8391a9f76 [file] [log] [blame]
import androidx.build.BuildOnServerKt
import androidx.build.KmpPlatformsKt
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.mpp.BitcodeEmbeddingMode
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.XCFrameworkConfig
plugins {
id("AndroidXPlugin")
id("androidx.benchmark.darwin")
}
def macEnabled = KmpPlatformsKt.enableMac(project)
androidXMultiplatform {
// XCFrameworkConfig must always be called AndroidXDarwinBenchmarks
def xcf = new XCFrameworkConfig(project, "AndroidXDarwinBenchmarks")
jvm() // add an empty compilation to prevent the warning for unused sourceSets.
ios {
binaries.framework {
// The module name must be AndroidXDarwinBenchmarks for the discovery to work.
baseName = "AndroidXDarwinBenchmarks"
// https://youtrack.jetbrains.com/issue/KT-48552
embedBitcode = BitcodeEmbeddingMode.DISABLE
export(project(":benchmark:benchmark-darwin"))
xcf.add(it)
}
}
sourceSets {
if (macEnabled) {
iosMain {
dependencies {
api(libs.kotlinStdlib)
api(project(":benchmark:benchmark-darwin"))
}
}
iosArm64Main {
dependsOn(iosMain)
}
iosSimulatorArm64Main {
dependsOn(iosMain)
}
iosX64Main {
dependsOn(iosMain)
}
}
}
targets.configureEach { target ->
if (target.platformType == KotlinPlatformType.native) {
target.compilations.configureEach {
compilerOptions.options.optIn.add("kotlinx.cinterop.ExperimentalForeignApi")
}
}
}
}
darwinBenchmark {
xcodeGenConfigFile = project.rootProject.file(
"benchmark/benchmark-darwin-xcode/projects/benchmark-darwin-samples-xcode.yml"
)
xcodeProjectName = "benchmark-darwin-samples-xcode"
scheme = "testapp-ios"
// To run locally switch to iOS 17.0 simulators
destination = "platform=iOS Simulator,name=iPhone 13,OS=15.2"
referenceSha.set(androidx.getReferenceSha())
}
androidx {
name = "Benchmarks - Darwin Samples"
inceptionYear = "2022"
description = "AndroidX Benchmarks - Darwin Samples"
}