blob: 2d53cbdce82b4a4e53afc945454ef0686caf7a71 [file] [log] [blame]
/*
* Copyright (C) 2020 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.gradle.internal.dsl
import com.android.build.api.dsl.CommonExtension
import com.android.build.api.variant.VariantBuilder
import com.android.build.api.variant.Variant
import com.android.build.gradle.api.AndroidSourceSet
import com.android.build.gradle.internal.CompileOptions as CompileOptionsImpl
import com.android.build.gradle.internal.coverage.JacocoOptions as JacocoOptionsImpl
import com.android.build.gradle.internal.dsl.AaptOptions as AaptOptionsImpl
import com.android.build.gradle.internal.dsl.AdbOptions as AdbOptionsImpl
import com.android.build.gradle.internal.dsl.DataBindingOptions as DataBindingOptionsImpl
import com.android.build.gradle.internal.dsl.ExternalNativeBuild as ExternalNativeBuildImpl
import com.android.build.gradle.internal.dsl.LintOptions as LintOptionsImpl
import com.android.build.gradle.internal.dsl.PackagingOptions as PackagingOptionsImpl
import com.android.build.gradle.internal.dsl.Splits as SplitsImpl
import com.android.build.gradle.internal.dsl.TestOptions as TestOptionsImpl
/**
* Internal extension of the DSL interface that overrides the properties to use the implementation
* types, in order to enable the use of kotlin delegation from the original DSL classes
* to the new implementations.
*/
interface InternalCommonExtension<
BuildFeaturesT : com.android.build.api.dsl.BuildFeatures,
BuildTypeT : com.android.build.api.dsl.BuildType,
DefaultConfigT : com.android.build.api.dsl.DefaultConfig,
ProductFlavorT : com.android.build.api.dsl.ProductFlavor,
VariantBuilderT : VariantBuilder,
VariantT : Variant> :
CommonExtension<
AndroidSourceSet,
BuildFeaturesT,
BuildTypeT,
DefaultConfigT,
ProductFlavorT,
SigningConfig,
VariantBuilderT,
VariantT>, Lockable {
override val aaptOptions: AaptOptionsImpl
override val adbOptions: AdbOptionsImpl
override val compileOptions: CompileOptionsImpl
override val dataBinding: DataBindingOptionsImpl
override val jacoco: JacocoOptionsImpl
override val lintOptions: LintOptionsImpl
override val packagingOptions: PackagingOptionsImpl
override val externalNativeBuild: ExternalNativeBuildImpl
override val testOptions: TestOptionsImpl
override val splits: SplitsImpl
}