blob: d0b001af3d299f610fe26f434daf7f5425f5a138 [file] [log] [blame]
/*
* Copyright (C) 2015 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.scope;
import static com.android.builder.model.AndroidProject.FD_GENERATED;
import static com.android.builder.model.AndroidProject.FD_INTERMEDIATES;
import static com.android.builder.model.AndroidProject.FD_OUTPUTS;
import static com.android.builder.model.AndroidProject.PROPERTY_APK_LOCATION;
import com.android.annotations.NonNull;
import com.android.build.gradle.BaseExtension;
import com.android.build.gradle.internal.SdkHandler;
import com.android.builder.core.AndroidBuilder;
import com.android.builder.model.AndroidProject;
import org.gradle.api.Project;
import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry;
import java.io.File;
/**
* A scope containing data for the Android plugin.
*/
public class GlobalScope {
@NonNull
private Project project;
@NonNull
private AndroidBuilder androidBuilder;
@NonNull
private String projectBaseName;
@NonNull
private BaseExtension extension;
@NonNull
private SdkHandler sdkHandler;
@NonNull
private ToolingModelBuilderRegistry toolingRegistry;
@NonNull
private final File intermediatesDir;
@NonNull
private final File generatedDir;
public GlobalScope(
@NonNull Project project,
@NonNull AndroidBuilder androidBuilder,
@NonNull String projectBaseName,
@NonNull BaseExtension extension,
@NonNull SdkHandler sdkHandler,
@NonNull ToolingModelBuilderRegistry toolingRegistry) {
this.project = project;
this.androidBuilder = androidBuilder;
this.projectBaseName = projectBaseName;
this.extension = extension;
this.sdkHandler = sdkHandler;
this.toolingRegistry = toolingRegistry;
intermediatesDir = new File(getBuildDir(), FD_INTERMEDIATES);
generatedDir = new File(getBuildDir(), FD_GENERATED);
}
@NonNull
public Project getProject() {
return project;
}
@NonNull
public BaseExtension getExtension() {
return extension;
}
@NonNull
public AndroidBuilder getAndroidBuilder() {
return androidBuilder;
}
@NonNull
public String getProjectBaseName() {
return projectBaseName;
}
@NonNull
public SdkHandler getSdkHandler() {
return sdkHandler;
}
@NonNull
public ToolingModelBuilderRegistry getToolingRegistry() {
return toolingRegistry;
}
@NonNull
public File getBuildDir() {
return project.getBuildDir();
}
@NonNull
public File getIntermediatesDir() {
return intermediatesDir;
}
@NonNull
public File getGeneratedDir() {
return generatedDir;
}
@NonNull
public String getDefaultApkLocation() {
return getBuildDir() + "/" + FD_OUTPUTS + "/apk";
}
@NonNull
public String getApkLocation() {
String apkLocation = getDefaultApkLocation();
if (project.hasProperty(PROPERTY_APK_LOCATION)) {
apkLocation = (String) project.getProperties().get(PROPERTY_APK_LOCATION);
}
return apkLocation;
}
}