sysperfana/analyzetoolext/com.nokia.s60tools.analyzetool/src/com/nokia/s60tools/analyzetool/builder/CustomPostBuilder.java
/*
* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: Definitions for the class CustomPostBuilder
*
*/
package com.nokia.s60tools.analyzetool.builder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.preference.IPreferenceStore;
//import com.nokia.carbide.cdt.builder.BuildArgumentsInfo;
import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin;
import com.nokia.carbide.cdt.builder.builder.CarbideCPPBuilder; //import com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration;
import com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo;
import com.nokia.s60tools.analyzetool.Activator;
import com.nokia.s60tools.analyzetool.global.Constants;
import com.nokia.s60tools.analyzetool.global.Util;
/**
* Class to execute custom post-build actions.
*
* @author kihe
*
*/
public class CustomPostBuilder extends AnalyzeToolBuilder {
/** Post-builder id. */
public static final String POST_BUILDER_ID = "com.nokia.s60tools.analyzetool.analyzeToolPostBuilder";
/**
* Executes AnalyzeTool post actions when user builds projects.
*
*
* @see com.nokia.carbide.cdt.builder.builder.CarbideCPPBuilder#build(int,
* java.util.Map, org.eclipse.core.runtime.IProgressMonitor)
*/
@Override
@SuppressWarnings("unchecked")
protected IProject[] build(int kind, java.util.Map args,
IProgressMonitor monitor) {
// get project reference
IProject project = super.getProject();
// get project info
ICarbideProjectInfo cpi = CarbideBuilderPlugin.getBuildManager()
.getProjectInfo(project);
IPreferenceStore store = Activator.getPreferences();
boolean buildCanceled = store
.getBoolean(Constants.PREFS_BUILD_CANCELLED);
// if the AnalyzeTool is canceled
if (buildCanceled) {
getCarbideCommandLauncher().writeToConsole(
Constants.BUILD_CANCELLED);
buildCanceled = false;
// if atool.exe is not available write info to console view
if (!Util.isAtoolAvailable()) {
getCarbideCommandLauncher().writeToConsole(
Constants.INFO_ATOOL_NOT_AVAILABLE);
}
super.forgetLastBuiltState();
runPostSteps(cpi);
return null;
}
// execute atool.exe
if (CarbideCPPBuilder.projectHasBuildErrors(cpi.getProject())) {
runUninstrument(Constants.ATOOL_UNINST_FAILED, cpi, monitor);
} else {
runUninstrument(Constants.ATOOL_UNINST, cpi, monitor);
}
monitor.worked(1);
runPostSteps(cpi);
return new IProject[0];
}
@Override
protected void clean(final IProgressMonitor arg0) {
// DO nothing by design
}
}