summaryrefslogtreecommitdiff
path: root/build-system/kmp-android-prototype/src/main/kotlin/com/android/build/api/variant/impl/KotlinMultiplatformAndroidCompilationImpl.kt
blob: 5ecdc84352b9fd679e4722ad5d3a8b93512bd24d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*
 * Copyright (C) 2023 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.build.api.variant.impl

import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions
import org.jetbrains.kotlin.gradle.plugin.HasCompilerOptions
import org.jetbrains.kotlin.gradle.plugin.mpp.external.ExternalDecoratedKotlinCompilation

class KotlinMultiplatformAndroidCompilationImpl(
    delegate: Delegate
) : ExternalDecoratedKotlinCompilation(delegate), KotlinMultiplatformAndroidCompilation {

    // This is a workaround for non-removable parametrization for compiler options, it should be
    // safe to cast as the type will always be KotlinJvmCompilerOptions
    @Suppress("UNCHECKED_CAST")
    override val compilerOptions
        get() = super.compilerOptions as HasCompilerOptions<KotlinJvmCompilerOptions>
}

internal enum class KmpPredefinedAndroidCompilation(val compilationName: String) {
    MAIN("main"),
    TEST("test"),
    INSTRUMENTED_TEST("instrumentedTest")
}