use of com.android.tools.idea.gradle.project.BuildSettings in project android by JetBrains.
the class AndroidGradleBuildProcessParametersProvider method populateGradleTasksToInvoke.
@VisibleForTesting
void populateGradleTasksToInvoke(@NotNull BuildMode buildMode, @NotNull List<String> jvmArgs) {
if (buildMode == ASSEMBLE_TRANSLATE) {
jvmArgs.add(createJvmArg(GRADLE_TASKS_TO_INVOKE_PROPERTY_PREFIX + 0, ASSEMBLE_TRANSLATE_TASK_NAME));
return;
}
BuildSettings buildSettings = BuildSettings.getInstance(myProject);
Module[] modulesToBuild = buildSettings.getModulesToBuild();
if (modulesToBuild == null || (buildMode == ASSEMBLE && GradleSyncState.getInstance(myProject).lastSyncFailed())) {
jvmArgs.add(createJvmArg(GRADLE_TASKS_TO_INVOKE_PROPERTY_PREFIX + 0, DEFAULT_ASSEMBLE_TASK_NAME));
return;
}
GradleBuildInvoker.TestCompileType testCompileType = GradleBuildInvoker.getTestCompileType(buildSettings.getRunConfigurationTypeId());
List<String> tasks = GradleBuildInvoker.findTasksToExecute(modulesToBuild, buildMode, testCompileType);
int taskCount = tasks.size();
for (int i = 0; i < taskCount; i++) {
String name = GRADLE_TASKS_TO_INVOKE_PROPERTY_PREFIX + i;
jvmArgs.add(createJvmArg(name, tasks.get(i)));
}
}
use of com.android.tools.idea.gradle.project.BuildSettings in project android by JetBrains.
the class AndroidGradleBuildTargetScopeProvider method getBuildTargetScopes.
@Override
@NotNull
public List<TargetTypeBuildScope> getBuildTargetScopes(@NotNull CompileScope baseScope, @NotNull CompilerFilter filter, @NotNull Project project, boolean forceBuild) {
if (!AndroidProjectInfo.getInstance(project).requiresAndroidModel()) {
return Collections.emptyList();
}
BuildSettings buildSettings = BuildSettings.getInstance(project);
String runConfigurationTypeId = baseScope.getUserData(CompilerManager.RUN_CONFIGURATION_TYPE_ID_KEY);
buildSettings.setRunConfigurationTypeId(runConfigurationTypeId);
if (baseScope instanceof ProjectCompileScope) {
// Make or Rebuild project
BuildMode buildMode = forceBuild ? BuildMode.REBUILD : BuildMode.ASSEMBLE;
if (buildSettings.getBuildMode() == null) {
buildSettings.setBuildMode(buildMode);
}
Module[] modulesToBuild = ModuleManager.getInstance(project).getModules();
buildSettings.setModulesToBuild(modulesToBuild);
} else if (baseScope instanceof ModuleCompileScope) {
String userDataString = ((ModuleCompileScope) baseScope).getUserDataString();
Module[] modulesToBuild;
if (userDataString.contains("RUN_CONFIGURATION")) {
// Triggered by a "Run Configuration"
modulesToBuild = baseScope.getAffectedModules();
} else {
// Triggered by menu item.
// Make selected modules
modulesToBuild = Projects.getModulesToBuildFromSelection(project, null);
}
buildSettings.setModulesToBuild(modulesToBuild);
buildSettings.setBuildMode(BuildMode.ASSEMBLE);
} else if (baseScope instanceof CompositeScope) {
// Compile selected modules
buildSettings.setModulesToBuild(Projects.getModulesToBuildFromSelection(project, null));
buildSettings.setBuildMode(BuildMode.COMPILE_JAVA);
}
TargetTypeBuildScope scope = CmdlineProtoUtil.createTargetsScope(AndroidGradleBuildTargetConstants.TARGET_TYPE_ID, Collections.singletonList(AndroidGradleBuildTargetConstants.TARGET_ID), forceBuild);
return Collections.singletonList(scope);
}
use of com.android.tools.idea.gradle.project.BuildSettings in project android by JetBrains.
the class PostProjectBuildTasksExecutor method onBuildCompletion.
@VisibleForTesting
void onBuildCompletion(Iterator<String> errorMessages, int errorCount) {
if (AndroidProjectInfo.getInstance(myProject).requiresAndroidModel()) {
executeProjectChanges(myProject, this::excludeOutputFolders);
if (isOfflineBuildModeEnabled(myProject)) {
while (errorMessages.hasNext()) {
String error = errorMessages.next();
if (error != null && unresolvedDependenciesFound(error)) {
notifyUnresolvedDependenciesInOfflineMode();
break;
}
}
}
// Refresh Studio's view of the file system after a compile. This is necessary for Studio to see generated code.
refreshProject();
BuildSettings buildSettings = BuildSettings.getInstance(myProject);
BuildMode buildMode = buildSettings.getBuildMode();
buildSettings.removeAll();
myProject.putUserData(PROJECT_LAST_BUILD_TIMESTAMP_KEY, System.currentTimeMillis());
notifyBuildFinished(buildMode);
syncJavaLangLevel();
if (isSyncNeeded(buildMode, errorCount)) {
GradleSyncInvoker.Request request = new GradleSyncInvoker.Request().setGenerateSourcesOnSuccess(false);
GradleSyncInvoker.getInstance().requestProjectSync(myProject, request, null);
}
if (isSyncRequestedDuringBuild(myProject)) {
setSyncRequestedDuringBuild(myProject, null);
// Sync was invoked while the project was built. Now that the build is finished, request a full sync.
GradleSyncInvoker.getInstance().requestProjectSyncAndSourceGeneration(myProject, null);
}
}
}
Aggregations