All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.android.build.gradle.AppExtension.groovy Maven / Gradle / Ivy

/*
 * Copyright (C) 2012 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

import com.android.build.gradle.api.ApplicationVariant
import com.android.builder.DefaultBuildType
import com.android.builder.DefaultProductFlavor
import com.android.builder.model.SigningConfig
import org.gradle.api.Action
import org.gradle.api.NamedDomainObjectContainer
import org.gradle.api.internal.DefaultDomainObjectSet
import org.gradle.api.internal.project.ProjectInternal
import org.gradle.internal.reflect.Instantiator

/**
 * Extension for 'application' project.
 */
public class AppExtension extends BaseExtension {

    final NamedDomainObjectContainer productFlavors
    final NamedDomainObjectContainer buildTypes
    final NamedDomainObjectContainer signingConfigs

    private final DefaultDomainObjectSet applicationVariantList =
        new DefaultDomainObjectSet(ApplicationVariant.class)

    List flavorGroupList
    String testBuildType = "debug"

    AppExtension(AppPlugin plugin, ProjectInternal project, Instantiator instantiator,
                 NamedDomainObjectContainer buildTypes,
                 NamedDomainObjectContainer productFlavors,
                 NamedDomainObjectContainer signingConfigs) {
        super(plugin, project, instantiator)
        this.buildTypes = buildTypes
        this.productFlavors = productFlavors
        this.signingConfigs = signingConfigs
    }

    void buildTypes(Action> action) {
        plugin.checkTasksAlreadyCreated();
        action.execute(buildTypes)
    }

    void productFlavors(Action> action) {
        plugin.checkTasksAlreadyCreated();
        action.execute(productFlavors)
    }

    void signingConfigs(Action> action) {
        plugin.checkTasksAlreadyCreated();
        action.execute(signingConfigs)
    }

    public void flavorGroups(String... groups) {
        plugin.checkTasksAlreadyCreated();
        flavorGroupList = Arrays.asList(groups)
    }

    public DefaultDomainObjectSet getApplicationVariants() {
        return applicationVariantList
    }

    void addApplicationVariant(ApplicationVariant applicationVariant) {
        applicationVariantList.add(applicationVariant)
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy