Fix bug 11068 (part 2). Add dynamic text to dispaly -c command and release tree when variant is applied.
authortimkelly
Thu, 15 Apr 2010 15:52:51 -0500
changeset 1221 f41fa762c65f
parent 1220 af71d0898edf
child 1223 10a0a5ba7be1
Fix bug 11068 (part 2). Add dynamic text to dispaly -c command and release tree when variant is applied. Remove UI added to support appending to a build config from the project setting.
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/EpocEngineHelper.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/PKGViewPathHelper.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/ICarbideProjectInfo.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideBuildData.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideProjectInfo.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideProjectModifier.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv2Builder.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ISBSv2BuildConfigInfo.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/SBSv2BuilderInfo.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/BuildSettingsUI.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/CarbideCPPProjectSettingsPage.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/SBSv2BuildConfigTabComposite.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/messages.properties
core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/EpocEngineHelper.java	Thu Apr 15 15:35:10 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/EpocEngineHelper.java	Thu Apr 15 15:52:51 2010 -0500
@@ -28,6 +28,7 @@
 import com.nokia.carbide.cpp.epoc.engine.model.mmp.*;
 import com.nokia.carbide.cpp.epoc.engine.preprocessor.AcceptedNodesViewFilter;
 import com.nokia.carbide.cpp.epoc.engine.preprocessor.AllNodesViewFilter;
+import com.nokia.carbide.cpp.internal.api.sdk.SBSv2Utils;
 import com.nokia.carbide.cpp.internal.api.sdk.SymbianBuildContext;
 import com.nokia.carbide.cpp.internal.api.sdk.SymbianBuildContextDataCache;
 import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext;
@@ -857,8 +858,8 @@
 					if (CarbideBuilderPlugin.getBuildManager().isCarbideSBSv2Project(buildConfig.getCarbideProject().getProject())){
 						// Test is this is an SBSv2 build binary variant (changes the output directory)
 						ISBSv2BuildConfigInfo sbsv2Info = ((CarbideBuildConfiguration)buildConfig).getSBSv2BuildConfigInfo();
-						if ( sbsv2Info != null && sbsv2Info.getVariantOutputDirModifier() != null && !releasePlatform.contains(".") ){
-							releasePlatform = releasePlatform + sbsv2Info.getVariantOutputDirModifier();
+						if ( sbsv2Info != null && SBSv2Utils.getVariantOutputDirModifier(sbsv2Info.getSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT)) != null && !releasePlatform.contains(".") ){
+							releasePlatform = releasePlatform + SBSv2Utils.getVariantOutputDirModifier(sbsv2Info.getSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT));
 						}
 					} 
 					
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/PKGViewPathHelper.java	Thu Apr 15 15:35:10 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/PKGViewPathHelper.java	Thu Apr 15 15:52:51 2010 -0500
@@ -24,6 +24,7 @@
 import com.nokia.carbide.cdt.builder.project.ISISBuilderInfo;
 import com.nokia.carbide.cdt.internal.builder.CarbideBuildConfiguration;
 import com.nokia.carbide.cdt.internal.builder.ISBSv2BuildConfigInfo;
+import com.nokia.carbide.cpp.internal.api.sdk.SBSv2Utils;
 import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.IPKGView;
 import com.nokia.cpp.internal.api.utils.core.Check;
 
@@ -75,8 +76,8 @@
 		if (CarbideBuilderPlugin.getBuildManager().isCarbideSBSv2Project(buildConfig.getCarbideProject().getProject())){
 			// Test is this is an SBSv2 build binary variant (changes the output directory)
 			ISBSv2BuildConfigInfo sbsv2Info = ((CarbideBuildConfiguration)buildConfig).getSBSv2BuildConfigInfo();
-			if ( sbsv2Info != null && sbsv2Info.getVariantOutputDirModifier() != null && !platform.contains(".") ){
-				this.platform = this.platform + sbsv2Info.getVariantOutputDirModifier();
+			if ( sbsv2Info != null && SBSv2Utils.getVariantOutputDirModifier(sbsv2Info.getSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT)) != null && !platform.contains(".") ){
+				this.platform = this.platform + SBSv2Utils.getVariantOutputDirModifier(sbsv2Info.getSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT));
 			}
 		} 
 		this.target = buildConfig.getTargetString();
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java	Thu Apr 15 15:35:10 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java	Thu Apr 15 15:52:51 2010 -0500
@@ -75,6 +75,7 @@
 import com.nokia.carbide.cpp.epoc.engine.model.mmp.IMMPData;
 import com.nokia.carbide.cpp.epoc.engine.model.mmp.IMMPResource;
 import com.nokia.carbide.cpp.epoc.engine.preprocessor.AcceptedNodesViewFilter;
+import com.nokia.carbide.cpp.internal.api.sdk.SBSv2Utils;
 import com.nokia.carbide.cpp.internal.qt.core.QtCorePlugin;
 import com.nokia.carbide.cpp.internal.x86build.X86BuildPlugin;
 import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext;
@@ -1921,8 +1922,8 @@
     				if (context instanceof CarbideBuildConfiguration){
     					// Test is this is an SBSv2 build binary variant (changes the output directory)
     					ISBSv2BuildConfigInfo sbsv2Info = ((CarbideBuildConfiguration)context).getSBSv2BuildConfigInfo();
-    					if (sbsv2Info != null && sbsv2Info.getVariantOutputDirModifier() != null){
-    						platSubst = platSubst + sbsv2Info.getVariantOutputDirModifier();
+    					if (sbsv2Info != null && SBSv2Utils.getVariantOutputDirModifier(sbsv2Info.getSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT)) != null){
+    						platSubst = platSubst + SBSv2Utils.getVariantOutputDirModifier(sbsv2Info.getSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT));
     					}
     				}
     				pkgFileStr = pkgFileStr.replace(PKG_SYMBOL_PLATFORM, platSubst);
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/ICarbideProjectInfo.java	Thu Apr 15 15:35:10 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/ICarbideProjectInfo.java	Thu Apr 15 15:52:51 2010 -0500
@@ -297,13 +297,4 @@
 	 * @since 2.2
 	 */
 	public String extraSBSv2Args();
-	
-	/**
-	 * Appends arbitrary text to a default Carbide/Raptor configuration (the -c parameter). The default name is always given, e.g. armv5_urel, but users can 
-	 * append whatever they want to change the behavior of the build. 
-	 * @return the string to append the text to for the Raptor -c parameter
-	 * 
-	 * @since 2.6
-	 */
-	public String buildConfigAppender();
 }
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideBuildData.java	Thu Apr 15 15:35:10 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideBuildData.java	Thu Apr 15 15:52:51 2010 -0500
@@ -24,6 +24,7 @@
 
 import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin;
 import com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration;
+import com.nokia.carbide.cpp.internal.api.sdk.SBSv2Utils;
 
 /**
  * Part of the new CDT 4.0 project model requirements.  All this class
@@ -61,8 +62,8 @@
 		String thePlatform = carbideBuildConfig.getPlatformString();
 		if (CarbideBuilderPlugin.getBuildManager().isCarbideSBSv2Project(carbideBuildConfig.getCarbideProject().getProject())){
 			ISBSv2BuildConfigInfo sbsv2Info = ((CarbideBuildConfiguration)carbideBuildConfig).getSBSv2BuildConfigInfo();
-			if ( sbsv2Info != null && sbsv2Info.getVariantOutputDirModifier() != null ){
-				thePlatform = thePlatform + sbsv2Info.getVariantOutputDirModifier();
+			if ( sbsv2Info != null && SBSv2Utils.getVariantOutputDirModifier(sbsv2Info.getSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT)) != null ){
+				thePlatform = thePlatform + SBSv2Utils.getVariantOutputDirModifier(sbsv2Info.getSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT));
 			}
 		} 
 		IPath outputPath = carbideBuildConfig.getSDK().getReleaseRoot().append(thePlatform).append(carbideBuildConfig.getTargetString());
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideProjectInfo.java	Thu Apr 15 15:35:10 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideProjectInfo.java	Thu Apr 15 15:52:51 2010 -0500
@@ -62,7 +62,6 @@
 	protected boolean overrideMakeEngine;
 	protected String makeEngineToUse;
 	protected String extraSBSv2Args;
-	protected String buildAliasAppender;
 	
 	// for internal plugin use
 	public static final String OVERRIDE_WORKSPACE_SETTINGS_KEY = "overrideWorkspaceSettings"; //$NON-NLS-1$
@@ -81,7 +80,6 @@
 	public static final String OVERRIDE_MAKE_ENGINE = "overrideMakeEngine"; //$NON-NLS-1$
 	public static final String MAKE_ENGINE_TO_USE = "makeEngineToUse"; //$NON-NLS-1$
 	public static final String EXTRA_SBSV2_ARGS = "extraSBSv2Args"; //$NON-NLS-1$
-	public static final String BUILD_ALIAS_APPENDER = "buildAliasAppendText"; //$NON-NLS-1$
 	
 	public CarbideProjectInfo(IProject project) {
 		this.projectTracker = new TrackedResource(project);
@@ -231,11 +229,6 @@
 					if (orig != null){
 						extraSBSv2Args = orig;
 					}
-					orig = storage.getAttribute(BUILD_ALIAS_APPENDER);
-					if (orig != null){
-						buildAliasAppender = orig;
-					}
-					 
 				}
 			}
 		}
@@ -268,7 +261,6 @@
 		overrideMakeEngine = BuilderPreferencePage.overrideDefaultMakeEngine();
 		makeEngineToUse = BuilderPreferencePage.makeEngine();
 		extraSBSv2Args = BuilderPreferencePage.extraSBSv2ArgsTextStore();
-		buildAliasAppender = ""; // project setting only
 	}
 
 	public List<ICarbideBuildConfiguration> getBuildConfigurations() {
@@ -534,11 +526,6 @@
 		return BuilderPreferencePage.extraSBSv2ArgsTextStore();
 	}
 	
-	public String buildConfigAppender() {
-		// This is a project setting only, i.e. no workspace setting to override
-		return buildAliasAppender;
-	}
-	
 	/*
 	 * The following methods are non-API
 	 */
@@ -598,7 +585,4 @@
 		return extraSBSv2Args;
 	}
 	
-	public String buildAliasAppendTextValue() {
-		return buildAliasAppender;
-	}
 }
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideProjectModifier.java	Thu Apr 15 15:35:10 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideProjectModifier.java	Thu Apr 15 15:52:51 2010 -0500
@@ -220,8 +220,6 @@
 						makeEngineToUse = settingValue;
 					} else if (settingName.equals(EXTRA_SBSV2_ARGS)) {
 						extraSBSv2Args = settingValue;
-					} else if (settingName.equals(BUILD_ALIAS_APPENDER)) {
-						buildAliasAppender = settingValue;
 					}
 					
 					// now write it to the file
@@ -320,7 +318,6 @@
 					storage.setAttribute(OVERRIDE_MAKE_ENGINE, overrideMakeEngine ? "true" : "false");
 					storage.setAttribute(MAKE_ENGINE_TO_USE, makeEngineToUse);
 					storage.setAttribute(EXTRA_SBSV2_ARGS, extraSBSv2Args);
-					storage.setAttribute(BUILD_ALIAS_APPENDER, buildAliasAppender);
 				}
 			}
 		} catch (CoreException e) {
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv2Builder.java	Thu Apr 15 15:35:10 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv2Builder.java	Thu Apr 15 15:52:51 2010 -0500
@@ -515,10 +515,6 @@
 			configName = configName + ".test"; //$NON-NLS-1$
 		}
 		
-		if (cpi.buildConfigAppender() != null && cpi.buildConfigAppender().length() > 0){
-			configName = configName + cpi.buildConfigAppender();
-		}
-		
 		args.add(configName);
 		
 		//TODO this causes output to go to stdout, but only at the end of the build.  should we specify a logfile name and tail the file?
@@ -601,10 +597,6 @@
 				configName = "error_retrieving_build_alias"; 
 		}
 		
-		if (cpi.buildConfigAppender() != null && cpi.buildConfigAppender().length() > 0){
-			configName = configName + cpi.buildConfigAppender();
-		}
-		
 		String[] sbsArgs = new String[] {"--source-target=" + file.toOSString(), COMPILE_ARG, configName, COMPONENT_ARG, fullMMPPath.toFile().getName()};
 		launcher.setErrorParserManager(buildConfig.getCarbideProject().getINFWorkingDirectory(), buildConfig.getErrorParserList());
 		
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ISBSv2BuildConfigInfo.java	Thu Apr 15 15:35:10 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ISBSv2BuildConfigInfo.java	Thu Apr 15 15:52:51 2010 -0500
@@ -37,12 +37,4 @@
 	 * @param value
 	 */
 	void setSBSv2Setting(String id, String value);
-	
-	/**
-	 * If a variant is defined and it chages the output directory, return the directory name.
-	 * For example, armv5_udeb.phone1 would return '.phone1'. If not variant that changes the release tree, then null
-	 * @return null if not a variant or the value to append to the platform release tree directory
-	 */
-	String getVariantOutputDirModifier();
-	
 }
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/SBSv2BuilderInfo.java	Thu Apr 15 15:35:10 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/SBSv2BuilderInfo.java	Thu Apr 15 15:52:51 2010 -0500
@@ -104,27 +104,6 @@
 
 	public void setSBSv2Setting(String id, String value) {
 		sbsv2ConfigDataMap.put(id, value);
-		
 	}
 
-	public String getVariantOutputDirModifier() {
-		String newOutputDir = null;
-		String variantText = getSBSv2Setting(ATTRIB_SBSV2_VARIANT);
-		if (variantText != null && variantText.length() > 1){
-			String[] variantTok = variantText.split("\\.");
-			if (variantTok.length > 1){
-				if (variantTok[1].toLowerCase().equals("generic")){
-					return null;
-				} else if (variantTok[1].toLowerCase().equals("tracecompiler")){
-					return null;
-				} else {
-					newOutputDir = "." + variantTok[1];
-				}
-			}
-		}
-		return newOutputDir;
-	}
-
-	
-	
 }
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/BuildSettingsUI.java	Thu Apr 15 15:35:10 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/BuildSettingsUI.java	Thu Apr 15 15:52:51 2010 -0500
@@ -65,9 +65,7 @@
 	private Text makeEngineText;
 	private Label extraArgsLabel;
 	private Text  extraArgsText;
-	private Label buildAliasLabel;     // project setting only
-	private Text  buildAliasText; // project setting only
-	
+
 	public BuildSettingsUI(Shell shell, boolean wantsSBSv2, boolean projectSetting) {
 		this.shell = shell;
 		this.wantsSBSv2 = wantsSBSv2;
@@ -258,17 +256,6 @@
 		extraArgsText.setToolTipText(Messages.getString("BuildSettingsUI.ExtraArgsToolTipText")); //$NON-NLS-1$
 		extraArgsText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
 		
-		if (projectSetting){
-			buildAliasLabel = new Label(content, SWT.NONE);
-			buildAliasLabel.setText(Messages.getString("BuildSettingsUI.AlliasAppendLabel")); //$NON-NLS-1$
-			buildAliasLabel.setToolTipText(Messages.getString("BuildSettingsUI.AlliasAppendToolTipText"));  //$NON-NLS-1$
-			GridData buildAliasGridData = new GridData();
-			buildAliasLabel.setLayoutData(buildAliasGridData);
-			
-			buildAliasText = new Text(content, SWT.BORDER);
-			buildAliasText.setToolTipText(Messages.getString("BuildSettingsUI.AlliasAppendToolTipText")); //$NON-NLS-1$
-			buildAliasText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-		}
 		overrideDefaultMakeEngineCheck = new Button(content, SWT.CHECK);
 		overrideDefaultMakeEngineCheck.setText(Messages.getString("BuildSettingsUI.OverrideMakeEngineLabel")); //$NON-NLS-1$
 		overrideDefaultMakeEngineCheck.setToolTipText(Messages.getString("BuildSettingsUI.OverrideMakeEngineToolTip")); //$NON-NLS-1$
@@ -470,14 +457,6 @@
 		extraArgsText.setText(args);
 	}
 	
-	public String getBuildAliasAppendText() {
-		return buildAliasText.getText();
-	}
-
-	public void setBuildAliasAppendText(String args) {
-		buildAliasText.setText(args);
-	}
-	
 	public boolean getDontPromtTrackDeps(){
 		if (!projectSetting){
 			return dontCheckForExternalDependencies.getSelection();
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/CarbideCPPProjectSettingsPage.java	Thu Apr 15 15:35:10 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/CarbideCPPProjectSettingsPage.java	Thu Apr 15 15:52:51 2010 -0500
@@ -272,9 +272,7 @@
 
 				cpi.writeProjectSetting(CarbideProjectInfo.MAKE_ENGINE_TO_USE, buildSettingsUI.getMakeEngine());
 				
-				cpi.writeProjectSetting(CarbideProjectInfo.EXTRA_SBSV2_ARGS, buildSettingsUI.getExtraSBSv2Args());
-				
-				cpi.writeProjectSetting(CarbideProjectInfo.BUILD_ALIAS_APPENDER, buildSettingsUI.getBuildAliasAppendText());
+				cpi.writeProjectSetting(CarbideProjectInfo.EXTRA_SBSV2_ARGS, buildSettingsUI.getExtraSBSv2Args());				
 			}
 
 			List<String> checkedComponents = getCheckedComponentFilenames();
@@ -330,7 +328,6 @@
         		buildSettingsUI.setOverrideDefaultMakeEngine(cpi.overrideMakeEngineProjectValue());
         		buildSettingsUI.setMakeEngineText(cpi.makeEngineProjectValue());
         		buildSettingsUI.setExtraSBSv2Args(cpi.extraSBSv2ArgsProjectValue());
-        		buildSettingsUI.setBuildAliasAppendText(cpi.buildAliasAppendTextValue());
     		}
     		
     		initMMPSelectionUI(cpi);
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/SBSv2BuildConfigTabComposite.java	Thu Apr 15 15:35:10 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/SBSv2BuildConfigTabComposite.java	Thu Apr 15 15:52:51 2010 -0500
@@ -16,10 +16,16 @@
 */
 package com.nokia.carbide.cdt.internal.builder.ui;
 
+import java.io.File;
+
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.TabItem;
 import org.eclipse.swt.widgets.Text;
@@ -27,18 +33,26 @@
 import com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration;
 import com.nokia.carbide.cdt.internal.builder.CarbideBuildConfiguration;
 import com.nokia.carbide.cdt.internal.builder.ISBSv2BuildConfigInfo;
+import com.nokia.carbide.cpp.internal.api.sdk.SBSv2Utils;
 import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
 
 public class SBSv2BuildConfigTabComposite extends Composite {
 	
+	private static final String configCmdLabelPrefixText = "Configuration Command: -c "; 
+	private static final String releaseTreeLabelPrefixText = "Release Tree: "; 
+	
 	Text variantEdit;
 	
+	Label configCmdLabel;
+	Label releaseTreeLabel;
+	private ICarbideBuildConfiguration config;
+	
 	public SBSv2BuildConfigTabComposite(TabItem tabItem) {
 		super(tabItem.getParent(), SWT.NONE);
 	}
 
 	public void createControls() {
-		setLayout(new GridLayout(3, false));
+		setLayout(new GridLayout(2, false));
 
 		Label variantLabel = new Label(this, SWT.NONE);
 		variantLabel.setText(Messages.getString("CarbideSBSv2ConfigTab.VariantLabel")); //$NON-NLS-1$
@@ -46,17 +60,61 @@
 
 		variantEdit = new Text(this, SWT.BORDER);
 		variantEdit.setToolTipText(Messages.getString("CarbideSBSv2ConfigTab.VariantLabel_ToolTip")); //$NON-NLS-1$
-		variantEdit.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
+		variantEdit.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+		SelectionListener listener;
+		variantEdit.addKeyListener( new KeyListener() {
+			
+			public void keyReleased(KeyEvent e) {
+				setVaraintDetailsText();
+			}
+			
+			public void keyPressed(KeyEvent e) {
+				// ignore
+			}
+		});
+		
+		Group emulatorBuildOptionsGroup;
+		emulatorBuildOptionsGroup = new Group(this, SWT.NONE);
+		emulatorBuildOptionsGroup.setLayout(new GridLayout(1, false));
+		GridData gd = new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1);
+		emulatorBuildOptionsGroup.setLayoutData(gd);
+		emulatorBuildOptionsGroup.setText("Build Variant Details"); //$NON-NLS-1$
+
+		configCmdLabel = new Label(emulatorBuildOptionsGroup, SWT.CHECK);
+		configCmdLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+		releaseTreeLabel = new Label(emulatorBuildOptionsGroup, SWT.CHECK);
+		releaseTreeLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
 	}
 	
 	public void initData(ICarbideBuildConfiguration buildConfig) {
+		this.config = buildConfig;
 		ISBSv2BuildConfigInfo sbsv2ConfigInfo = ((CarbideBuildConfiguration)buildConfig).getSBSv2ConfigInfo();
 		if (sbsv2ConfigInfo.getSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT) != null){
 			variantEdit.setText(sbsv2ConfigInfo.getSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT));
 		}
 		
+		setVaraintDetailsText();
 	}
 	
+	private void setVaraintDetailsText() {
+		
+		String configCmdText = configCmdLabelPrefixText;
+		if (config != null){
+			configCmdText += config.getSBSv2Alias() + variantEdit.getText();
+		}
+		configCmdLabel.setText(configCmdText);
+
+		String variantText = SBSv2Utils.getVariantOutputDirModifier(variantEdit.getText());
+		if (variantText == null) variantText = "";	
+		String relTreeText = releaseTreeLabelPrefixText;
+		if (config != null){
+			relTreeText += " " + config.getSDK().getEPOCROOT() + "epoc32" + File.separator + "release" + File.separator + config.getPlatformString().toLowerCase() + variantText + File.separator + config.getTargetString().toLowerCase();
+		}
+		releaseTreeLabel.setText(relTreeText);
+	}
+
+	
+
 	public boolean compareConfigurationSettings(ICarbideBuildConfiguration selectedConfig, boolean writeToConfig) {
 		boolean settingsEqual = true;
 		
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/messages.properties	Thu Apr 15 15:35:10 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/messages.properties	Thu Apr 15 15:52:51 2010 -0500
@@ -104,8 +104,6 @@
 BuildSettingsUI.ExtraArgsLabelToolTip=Pass additional arguments to the sbs command-line.
 BuildSettingsUI.ExtraArgsText=Additional SBSv2 arguments
 BuildSettingsUI.ExtraArgsToolTipText=Add any extra arguments to be passed to sbs.bat here.
-BuildSettingsUI.AlliasAppendLabel=Append to Build Configuration
-BuildSettingsUI.AlliasAppendToolTipText=Appends the text to the default -c SBS parameter exactly as entered in the edit box.
 BuildSettingsUI.KeepGoingLabel=Keep going
 BuildSettingsUI.KeepGoingToolTip=Continue building, even if some build commands fail
 BuildSettingsUI.MakeEngineLabel=Make engine
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java	Thu Apr 15 15:35:10 2010 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java	Thu Apr 15 15:52:51 2010 -0500
@@ -449,5 +449,31 @@
 		
 		return contexts;
 	}
-
+	
+	/**
+	 * If a variant is defined and it changes the output directory, return the directory name.
+	 * For example, armv5_udeb.phone1 would return '.phone1'. If not variant that changes the release tree, then null
+	 * NOTE: This method deals with variant text applied to the end of a build alias, specifically testing for
+	 * variant text defined in the SBSv2 Build Configuration tab.
+	 * @return null if not a variant or the value to append to the platform release tree directory
+	 * @see com.nokia.carbide.cdt.internal.builder.ui#SBSv2BuildConfigTab
+	 */
+	public static String getVariantOutputDirModifier(String variantText) {
+		
+		String[] ignoredVariants =  { "generic", "tracecompiler", "trace", "test", "savespace", 
+				"bfc", "smp", "rvct2_2", "rvct4_0", "rvct3_1", "gcce4_3_2", "remove_freeze" };
+		
+		String newOutputDir = null;
+		if (variantText != null && variantText.length() > 1){
+			String[] variantTok = variantText.split("\\.");
+			if (variantTok.length > 1){
+				for (String ignore : ignoredVariants){
+					if (variantTok[1].toLowerCase().equals(ignore))
+						return null;
+				}
+				newOutputDir = "." + variantTok[1];
+			}
+		}
+		return newOutputDir;
+	}
 }