blob: 8ec1eca9296ed3543789d04f3115386ceb371d90 [file] [log] [blame]
/*
* Copyright (C) 2014 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.managed;
import com.android.build.gradle.api.VariantFilter;
import com.android.build.gradle.internal.CompileOptions;
import com.android.build.gradle.internal.coverage.JacocoExtension;
import com.android.build.gradle.internal.dsl.AaptOptions;
import com.android.build.gradle.internal.dsl.AdbOptions;
import com.android.build.gradle.internal.dsl.DexOptions;
import com.android.build.gradle.internal.dsl.LintOptions;
import com.android.build.gradle.internal.dsl.PackagingOptions;
import com.android.build.gradle.internal.dsl.PreprocessingOptions;
import com.android.build.gradle.internal.dsl.Splits;
import com.android.build.gradle.internal.dsl.TestOptions;
import com.android.build.gradle.model.AndroidComponentModelSourceSet;
import com.android.builder.core.LibraryRequest;
import com.android.builder.testing.api.DeviceProvider;
import com.android.builder.testing.api.TestServer;
import com.android.sdklib.repository.FullRevision;
import org.gradle.api.Action;
import org.gradle.model.Managed;
import org.gradle.model.ModelMap;
import org.gradle.model.Unmanaged;
import java.util.Collection;
import java.util.List;
import groovy.lang.Closure;
/**
* Component model for all Android plugin.
*/
@Managed
public interface AndroidConfig {
/** Build tool version */
String getBuildToolsVersion();
void setBuildToolsVersion(String buildToolsVersion);
/** Compile SDK version */
String getCompileSdkVersion();
void setCompileSdkVersion(String compileSdkVersion);
/** Build tool revisions */
@Unmanaged
FullRevision getBuildToolsRevision();
void setBuildToolsRevision(FullRevision fullRevision);
/** Default config, shared by all flavors. */
ProductFlavor getDefaultConfig();
/** List of device providers */
@Unmanaged
List<DeviceProvider> getDeviceProviders();
void setDeviceProviders(List<DeviceProvider> providers);
/** List of remote CI servers */
@Unmanaged
List<TestServer> getTestServers();
void setTestServers(List<TestServer> providers);
/** Name of the variant to publish */
String getDefaultPublishConfig();
void setDefaultPublishConfig(String defaultPublishConfig);
/** Whether to also publish non-default variants */
Boolean getPublishNonDefault();
void setPublishNonDefault(Boolean publishNonDefault);
/** Filter to determine which variants to build */
@Unmanaged
Action<VariantFilter> getVariantFilter();
void setVariantFilter(Action<VariantFilter> filter);
/** A prefix to be used when creating new resources. Used by Studio */
String getResourcePrefix();
void setResourcePrefix(String resourcePrefix);
/** Whether to generate pure splits or multi apk */
Boolean getGeneratePureSplits();
void setGeneratePureSplits(Boolean generateSplits);
/** Whether to preprocess resources */
@Unmanaged
PreprocessingOptions getPreProcessingOptions();
void setPreProcessingOptions(PreprocessingOptions preprocessingOptions);
/** Build types used by this project. */
ModelMap<BuildType> getBuildTypes();
/** All product flavors used by this project. */
ModelMap<ProductFlavor> getProductFlavors();
/** Signing configs used by this project. */
ModelMap<SigningConfig> getSigningConfigs();
@Unmanaged
AndroidComponentModelSourceSet getSources();
void setSources(AndroidComponentModelSourceSet sources);
NdkConfig getNdk();
/** Adb options */
@Unmanaged
AdbOptions getAdbOptions();
void setAdbOptions(AdbOptions adbOptions);
/** Options for aapt, tool for packaging resources. */
@Unmanaged
AaptOptions getAaptOptions();
void setAaptOptions(AaptOptions aaptOptions);
/** Compile options */
@Unmanaged
CompileOptions getCompileOptions();
void setCompileOptions(CompileOptions compileOptions);
/** Dex options. */
@Unmanaged
DexOptions getDexOptions();
void setDexOptions(DexOptions dexOptions);
/** JaCoCo options. */
@Unmanaged
JacocoExtension getJacoco();
void setJacoco(JacocoExtension jacoco);
/** Lint options. */
@Unmanaged
LintOptions getLintOptions();
void setLintOptions(LintOptions lintOptions);
/** Packaging options. */
@Unmanaged
PackagingOptions getPackagingOptions();
void setPackagingOptions(PackagingOptions packagingOptions);
/** Options for running tests. */
@Unmanaged
TestOptions getTestOptions();
void setTestOptions(TestOptions testOptions);
/** APK splits */
@Unmanaged
Splits getSplits();
void setSplits(Splits splits);
@Unmanaged
Collection<LibraryRequest> getLibraryRequests();
void setLibraryRequests(Collection<LibraryRequest> libraryRequests);
}