# HG changeset patch # User timkelly # Date 1271371519 18000 # Node ID 63523a35c9b268f168f9343ae2dd07efe8db6bf1 # Parent 4881c5997074c2af649fa24261424d9b260408ba fix bug 11068. make sbsv2 variant appender configuration specific diff -r 4881c5997074 -r 63523a35c9b2 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/EpocEngineHelper.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/EpocEngineHelper.java Thu Apr 15 15:32:21 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/EpocEngineHelper.java Thu Apr 15 17:45:19 2010 -0500 @@ -16,30 +16,78 @@ */ package com.nokia.carbide.cdt.builder; +import java.io.File; +import java.io.FilenameFilter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.Plugin; + import com.nokia.carbide.cdt.builder.builder.CarbideCPPBuilder; -import com.nokia.carbide.cdt.builder.project.*; -import com.nokia.carbide.cpp.epoc.engine.*; -import com.nokia.carbide.cpp.epoc.engine.image.*; -import com.nokia.carbide.cpp.epoc.engine.model.bldinf.*; +import com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration; +import com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo; +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.epoc.engine.BldInfDataRunnableAdapter; +import com.nokia.carbide.cpp.epoc.engine.BldInfViewRunnableAdapter; +import com.nokia.carbide.cpp.epoc.engine.EpocEnginePlugin; +import com.nokia.carbide.cpp.epoc.engine.ImageMakefileDataRunnableAdapter; +import com.nokia.carbide.cpp.epoc.engine.MMPDataRunnableAdapter; +import com.nokia.carbide.cpp.epoc.engine.MMPViewRunnableAdapter; +import com.nokia.carbide.cpp.epoc.engine.PKGViewRunnableAdapter; +import com.nokia.carbide.cpp.epoc.engine.image.IBitmapSource; +import com.nokia.carbide.cpp.epoc.engine.image.IImageSource; +import com.nokia.carbide.cpp.epoc.engine.image.IMultiImageSource; +import com.nokia.carbide.cpp.epoc.engine.model.bldinf.IBldInfData; +import com.nokia.carbide.cpp.epoc.engine.model.bldinf.IBldInfView; +import com.nokia.carbide.cpp.epoc.engine.model.bldinf.IExport; import com.nokia.carbide.cpp.epoc.engine.model.bldinf.IExtension; +import com.nokia.carbide.cpp.epoc.engine.model.bldinf.IMMPReference; +import com.nokia.carbide.cpp.epoc.engine.model.bldinf.IMakMakeReference; +import com.nokia.carbide.cpp.epoc.engine.model.bldinf.IMakefileReference; import com.nokia.carbide.cpp.epoc.engine.model.makefile.image.IImageMakefileData; -import com.nokia.carbide.cpp.epoc.engine.model.mmp.*; +import com.nokia.carbide.cpp.epoc.engine.model.mmp.EMMPLanguage; +import com.nokia.carbide.cpp.epoc.engine.model.mmp.EMMPStatement; +import com.nokia.carbide.cpp.epoc.engine.model.mmp.IMMPAIFInfo; +import com.nokia.carbide.cpp.epoc.engine.model.mmp.IMMPBitmap; +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.model.mmp.IMMPView; +import com.nokia.carbide.cpp.epoc.engine.model.mmp.IMMPViewConfiguration; 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.sdk.core.ISymbianBuildContext; import com.nokia.carbide.cpp.sdk.core.ISymbianSDK; -import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.*; -import com.nokia.cpp.internal.api.utils.core.*; - -import org.eclipse.cdt.core.CCorePlugin; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.*; - -import java.io.*; -import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; +import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.EPKGLanguage; +import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.IPKGEmbeddedSISFile; +import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.IPKGInstallFile; +import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.IPKGView; +import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.PKGModelHelper; +import com.nokia.cpp.internal.api.utils.core.CommonPathFinder; +import com.nokia.cpp.internal.api.utils.core.FileUtils; +import com.nokia.cpp.internal.api.utils.core.Logging; +import com.nokia.cpp.internal.api.utils.core.TextUtils; public class EpocEngineHelper { @@ -815,6 +863,13 @@ } String releasePlatform = buildConfig.getSDK().getBSFCatalog().getReleasePlatform(buildConfig.getBasePlatformForVariation()); + 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 && SBSv2Utils.getVariantOutputDirModifier(sbsv2Info.getSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT)) != null && !releasePlatform.contains(".") ){ + releasePlatform = releasePlatform + SBSv2Utils.getVariantOutputDirModifier(sbsv2Info.getSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT)); + } + } IPath path = buildConfig.getSDK().getReleaseRoot().append(releasePlatform).append(buildConfig.getTargetString()); // if targetpath is non-null and this is an EKA1 emulator config then add it diff -r 4881c5997074 -r 63523a35c9b2 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/PKGViewPathHelper.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/PKGViewPathHelper.java Thu Apr 15 15:32:21 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/PKGViewPathHelper.java Thu Apr 15 17:45:19 2010 -0500 @@ -22,6 +22,9 @@ import com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration; 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; @@ -69,7 +72,14 @@ this.pkgFilePath = view.getModel().getPath(); this.buildConfig = buildConfig; this.epocRoot = new Path(buildConfig.getSDK().getEPOCROOT()); - this.platform = buildConfig.getPlatformString(); + this.platform = buildConfig.getPlatformString(); + 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 && 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(); this.mainDirectory = pkgFilePath.removeLastSegments(1); } diff -r 4881c5997074 -r 63523a35c9b2 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java Thu Apr 15 15:32:21 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java Thu Apr 15 17:45:19 2010 -0500 @@ -59,12 +59,13 @@ import com.nokia.carbide.cdt.builder.project.IROMBuilderInfo; import com.nokia.carbide.cdt.builder.project.ISISBuilderInfo; import com.nokia.carbide.cdt.internal.api.builder.SISBuilderInfo2; +import com.nokia.carbide.cdt.internal.builder.CarbideBuildConfiguration; import com.nokia.carbide.cdt.internal.builder.CarbideSBSv1Builder; import com.nokia.carbide.cdt.internal.builder.CarbideSBSv2Builder; import com.nokia.carbide.cdt.internal.builder.ICarbideBuilder; +import com.nokia.carbide.cdt.internal.builder.ISBSv2BuildConfigInfo; import com.nokia.carbide.cdt.internal.builder.ui.BuilderPreferencePage; import com.nokia.carbide.cdt.internal.builder.ui.MMPSelectionDialog; -import com.nokia.carbide.cdt.internal.builder.ui.Messages; import com.nokia.carbide.cpp.epoc.engine.EpocEnginePlugin; import com.nokia.carbide.cpp.epoc.engine.MMPDataRunnableAdapter; import com.nokia.carbide.cpp.epoc.engine.PKGViewRunnableAdapter; @@ -74,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; @@ -1919,7 +1921,15 @@ pkgFileStr.contains(PKG_SYMBOL_TARGET) ) { // need to create a new PKG file, resolved... pkgFileStr = pkgFileStr.replace(PKG_SYMBOL_EPOCROOT, context.getSDK().getEPOCROOT()); - pkgFileStr = pkgFileStr.replace(PKG_SYMBOL_PLATFORM, context.getPlatformString()); + String platSubst = context.getPlatformString().toLowerCase(); + 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 && 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); pkgFileStr = pkgFileStr.replace(PKG_SYMBOL_TARGET, context.getTargetString()); IPath tmpPKGPath = pkgFile.removeLastSegments(1); diff -r 4881c5997074 -r 63523a35c9b2 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/ICarbideProjectInfo.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/ICarbideProjectInfo.java Thu Apr 15 15:32:21 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/ICarbideProjectInfo.java Thu Apr 15 17:45:19 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(); } diff -r 4881c5997074 -r 63523a35c9b2 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideBuildConfiguration.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideBuildConfiguration.java Thu Apr 15 15:32:21 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideBuildConfiguration.java Thu Apr 15 17:45:19 2010 -0500 @@ -70,10 +70,6 @@ // SBSv2 only config settings protected final static String SBSV2_DATA_ID = "SBSV2_DATA_ID"; //$NON-NLS-1$ - protected final static String ATRRIB_CONFIG_BASE_PLATFORM = "CONFIG_BASE_PLATFORM"; //$NON-NLS-1$ - protected final static String ATTRIB_CONFIG_TARGET = "CONFIG_TARGET"; //$NON-NLS-1$ - protected final static String ATTRIB_SBSV2_BUILD_ALIAS = "SBSV2_BUILD_ALIAS"; //$NON-NLS-1$ - protected final static String ATTRIB_SBSV2_CONFIG_DISPLAY_STRING = "SBSV2_CONFIG_DISPLAY_STRING"; //$NON-NLS-1$ protected TrackedResource projectTracker; protected List sisBuilderInfoList; @@ -81,7 +77,8 @@ protected BuildArgumentsInfo buildArgumentsInfo; protected BuildConfigurationData buildConfigData; protected ROMBuilderInfo romBuilderInfo; - + protected SBSv2BuilderInfo sbsv2BuilderInfo; + public CarbideBuildConfiguration(IProject project, ISymbianBuildContext context) { super(context.getSDK(), context.getPlatformString(), context.getTargetString(), context.getSBSv2Alias()); projectTracker = new TrackedResource(project); @@ -90,6 +87,9 @@ buildArgumentsInfo = new BuildArgumentsInfo(getSDK()); buildConfigData = new BuildConfigurationData(this); romBuilderInfo = new ROMBuilderInfo(getSDK()); + if (context.getSBSv2Alias() != null){ + sbsv2BuilderInfo = new SBSv2BuilderInfo(context); + } } public void loadFromStorage(ICConfigurationDescription projDes) throws CoreException { @@ -111,6 +111,8 @@ loadBuildArgsFromStorage(se); } else if (se.getName().equals(ROM_BUILDER_DATA_ID)) { romBuilderInfo.loadFromStorage(se); + } else if (se.getName().equals(SBSV2_DATA_ID)){ + sbsv2BuilderInfo.loadFromStorage(se); } } } else { @@ -133,17 +135,10 @@ romBuilderInfo.saveToStorage(rootStorage.createChild(ROM_BUILDER_DATA_ID)); if (getSBSv2Alias() != null){ - saveSBSv2DataToStorage(rootStorage.createChild(SBSV2_DATA_ID)); + sbsv2BuilderInfo.saveToStorage(rootStorage.createChild(SBSV2_DATA_ID)); } } } - - private void saveSBSv2DataToStorage(ICStorageElement createChild) { - createChild.setAttribute(ATRRIB_CONFIG_BASE_PLATFORM, getPlatformString()); - createChild.setAttribute(ATTRIB_CONFIG_TARGET, getTargetString()); - createChild.setAttribute(ATTRIB_SBSV2_BUILD_ALIAS, getSBSv2Alias()); - createChild.setAttribute(ATTRIB_SBSV2_CONFIG_DISPLAY_STRING, getDisplayString()); - } private void loadBuildArgsFromStorage(ICStorageElement rootStorage) { String value = rootStorage.getAttribute(BuildArgumentsInfo.BLDMAKEBLDFILESARGSSTORAGE); @@ -434,4 +429,12 @@ return false; } + public ISBSv2BuildConfigInfo getSBSv2BuildConfigInfo(){ + return sbsv2BuilderInfo; + } + + public ISBSv2BuildConfigInfo getSBSv2ConfigInfo() { + return sbsv2BuilderInfo; + } + } diff -r 4881c5997074 -r 63523a35c9b2 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideBuildData.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideBuildData.java Thu Apr 15 15:32:21 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideBuildData.java Thu Apr 15 17:45:19 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 @@ -58,7 +59,14 @@ @Override public ICOutputEntry[] getOutputDirectories() { - IPath outputPath = carbideBuildConfig.getSDK().getReleaseRoot().append(carbideBuildConfig.getPlatformString()).append(carbideBuildConfig.getTargetString()); + String thePlatform = carbideBuildConfig.getPlatformString(); + if (CarbideBuilderPlugin.getBuildManager().isCarbideSBSv2Project(carbideBuildConfig.getCarbideProject().getProject())){ + ISBSv2BuildConfigInfo sbsv2Info = ((CarbideBuildConfiguration)carbideBuildConfig).getSBSv2BuildConfigInfo(); + 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()); return new ICOutputEntry[]{new COutputEntry(outputPath, null, 0)}; } diff -r 4881c5997074 -r 63523a35c9b2 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideProjectInfo.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideProjectInfo.java Thu Apr 15 15:32:21 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideProjectInfo.java Thu Apr 15 17:45:19 2010 -0500 @@ -61,7 +61,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$ @@ -80,7 +79,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); @@ -230,11 +228,6 @@ if (orig != null){ extraSBSv2Args = orig; } - orig = storage.getAttribute(BUILD_ALIAS_APPENDER); - if (orig != null){ - buildAliasAppender = orig; - } - } } } @@ -267,7 +260,6 @@ overrideMakeEngine = BuilderPreferencePage.overrideDefaultMakeEngine(); makeEngineToUse = BuilderPreferencePage.makeEngine(); extraSBSv2Args = BuilderPreferencePage.extraSBSv2ArgsTextStore(); - buildAliasAppender = ""; // project setting only } public List getBuildConfigurations() { @@ -533,11 +525,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 */ @@ -597,7 +584,4 @@ return extraSBSv2Args; } - public String buildAliasAppendTextValue() { - return buildAliasAppender; - } } diff -r 4881c5997074 -r 63523a35c9b2 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideProjectModifier.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideProjectModifier.java Thu Apr 15 15:32:21 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideProjectModifier.java Thu Apr 15 17:45:19 2010 -0500 @@ -219,8 +219,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 @@ -310,7 +308,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) { diff -r 4881c5997074 -r 63523a35c9b2 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv2Builder.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv2Builder.java Thu Apr 15 15:32:21 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv2Builder.java Thu Apr 15 17:45:19 2010 -0500 @@ -47,7 +47,6 @@ private static final IPath SBS_BAT = new Path("sbs.bat"); //$NON-NLS-1$ - public boolean buildAllComponents(ICarbideBuildConfiguration buildConfig, List normalMakMakePaths, List testMakMakePaths, CarbideCommandLauncher launcher, IProgressMonitor monitor) { SubMonitor progress = SubMonitor.convert(monitor, 3); @@ -93,7 +92,15 @@ /** Get the build-able configuration from the command line (i.e. build alias). This is passed after the sbs -c parameter */ protected String getConfigName(ICarbideBuildConfiguration buildConfig) { - return buildConfig.getSBSv2Alias(); + String buildAlias = buildConfig.getSBSv2Alias(); + ISBSv2BuildConfigInfo sbsv2Info = ((CarbideBuildConfiguration)buildConfig).getSBSv2BuildConfigInfo(); + if (sbsv2Info != null){ + String variant = sbsv2Info.getSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT); + if (variant != null && variant.length() > 1){ + buildAlias = buildAlias + variant; + } + } + return buildAlias; } public boolean buildComponent(ICarbideBuildConfiguration buildConfig, IPath componentPath, boolean isTest, CarbideCommandLauncher launcher, IProgressMonitor monitor) { @@ -512,10 +519,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? @@ -598,10 +601,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()); diff -r 4881c5997074 -r 63523a35c9b2 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ISBSv2BuildConfigInfo.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ISBSv2BuildConfigInfo.java Thu Apr 15 17:45:19 2010 -0500 @@ -0,0 +1,40 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* +*/ +package com.nokia.carbide.cdt.internal.builder; + +/** + * Interface to SBSv2 build configuration specific data + */ +public interface ISBSv2BuildConfigInfo { + + // Data attribute id's saved in .cproject file + public final static String ATRRIB_CONFIG_BASE_PLATFORM = "CONFIG_BASE_PLATFORM"; //$NON-NLS-1$ + public final static String ATTRIB_CONFIG_TARGET = "CONFIG_TARGET"; //$NON-NLS-1$ + public final static String ATTRIB_SBSV2_BUILD_ALIAS = "SBSV2_BUILD_ALIAS"; //$NON-NLS-1$ + public final static String ATTRIB_SBSV2_CONFIG_DISPLAY_STRING = "SBSV2_CONFIG_DISPLAY_STRING"; //$NON-NLS-1$ + public final static String ATTRIB_SBSV2_VARIANT = "ATTRIB_SBSV2_VARIANT"; + + /** Retrieve a specfic .cproject SBSv2 data value from a given ID */ + String getSBSv2Setting(String id); + + /** + * Set a specific SBSv2 configuration specific data value + * @param id + * @param value + */ + void setSBSv2Setting(String id, String value); +} diff -r 4881c5997074 -r 63523a35c9b2 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/SBSv2BuilderInfo.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/SBSv2BuilderInfo.java Thu Apr 15 17:45:19 2010 -0500 @@ -0,0 +1,109 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* +*/ +package com.nokia.carbide.cdt.internal.builder; + +import java.util.HashMap; + +import org.eclipse.cdt.core.settings.model.ICStorageElement; + +import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext; + +public class SBSv2BuilderInfo implements ISBSv2BuildConfigInfo { + + HashMap sbsv2ConfigDataMap = new HashMap(); + +// private static String TRUE = "true"; +// private static String FALSE = "false"; + + ISymbianBuildContext context; + + public SBSv2BuilderInfo(ISymbianBuildContext context) { + sbsv2ConfigDataMap.put(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_BUILD_ALIAS, context.getSBSv2Alias()); + sbsv2ConfigDataMap.put(ISBSv2BuildConfigInfo.ATRRIB_CONFIG_BASE_PLATFORM, context.getBasePlatformForVariation()); + sbsv2ConfigDataMap.put(ISBSv2BuildConfigInfo.ATTRIB_CONFIG_TARGET, context.getTargetString()); + sbsv2ConfigDataMap.put(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_CONFIG_DISPLAY_STRING, context.getDisplayString()); + sbsv2ConfigDataMap.put(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT, ""); + this.context = context; + } + + public void loadFromStorage(ICStorageElement rootStorage) { + + String value = rootStorage.getAttribute(ATRRIB_CONFIG_BASE_PLATFORM); + if (value != null) { + sbsv2ConfigDataMap.put(ATRRIB_CONFIG_BASE_PLATFORM, value); + } + + value = rootStorage.getAttribute(ATTRIB_SBSV2_VARIANT); + if (value != null) { + sbsv2ConfigDataMap.put(ATTRIB_SBSV2_VARIANT, value); + } + + value = rootStorage.getAttribute(ATTRIB_CONFIG_TARGET); + if (value != null) { + sbsv2ConfigDataMap.put(ATTRIB_CONFIG_TARGET, value); + } + + value = rootStorage.getAttribute(ATTRIB_SBSV2_BUILD_ALIAS); + if (value != null) { + sbsv2ConfigDataMap.put(ATTRIB_SBSV2_BUILD_ALIAS, value); + } + + value = rootStorage.getAttribute(ATTRIB_SBSV2_CONFIG_DISPLAY_STRING); + if (value != null) { + sbsv2ConfigDataMap.put(ATTRIB_SBSV2_CONFIG_DISPLAY_STRING, value); + } + + } + + public void saveToStorage(ICStorageElement rootStorage) { + + String value = sbsv2ConfigDataMap.get(ATRRIB_CONFIG_BASE_PLATFORM); + if (value != null && value.trim().length() > 0){ + rootStorage.setAttribute(ATRRIB_CONFIG_BASE_PLATFORM, value); + } + + value = sbsv2ConfigDataMap.get(ATTRIB_SBSV2_VARIANT); + if (value != null && value.trim().length() > 0){ + rootStorage.setAttribute(ATTRIB_SBSV2_VARIANT, value); + } + + value = sbsv2ConfigDataMap.get(ATTRIB_CONFIG_TARGET); + if (value != null && value.trim().length() > 0){ + rootStorage.setAttribute(ATTRIB_CONFIG_TARGET, value); + } + + value = sbsv2ConfigDataMap.get(ATTRIB_SBSV2_BUILD_ALIAS); + if (value != null && value.trim().length() > 0){ + rootStorage.setAttribute(ATTRIB_SBSV2_BUILD_ALIAS, value); + } + + value = sbsv2ConfigDataMap.get(ATTRIB_SBSV2_CONFIG_DISPLAY_STRING); + if (value != null && value.trim().length() > 0){ + rootStorage.setAttribute(ATTRIB_SBSV2_CONFIG_DISPLAY_STRING, value); + } + + } + + public String getSBSv2Setting(String id) { + return sbsv2ConfigDataMap.get(id); + } + + public void setSBSv2Setting(String id, String value) { + sbsv2ConfigDataMap.put(id, value); + } + +} diff -r 4881c5997074 -r 63523a35c9b2 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/BuildSettingsUI.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/BuildSettingsUI.java Thu Apr 15 15:32:21 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/BuildSettingsUI.java Thu Apr 15 17:45:19 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(); diff -r 4881c5997074 -r 63523a35c9b2 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/CarbideBuildConfigurationsPage.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/CarbideBuildConfigurationsPage.java Thu Apr 15 15:32:21 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/CarbideBuildConfigurationsPage.java Thu Apr 15 17:45:19 2010 -0500 @@ -154,6 +154,9 @@ // rom builder tab ROMBuilderTabComposite romBuilderTabComposite; + // SBSv2 config data tab + SBSv2BuildConfigTabComposite sbsv2BuildConfigTabComposite; + // Configuration management/switching private IProject project; private BuildConfigCombo buildConfigurationCombo; @@ -224,6 +227,20 @@ data.verticalIndent = 18; control.setLayoutData(data); + //////////////////// SBSv2 Config Data Tab ///////////// + if (CarbideBuilderPlugin.getBuildManager().isCarbideSBSv2Project(project)) { + + TabItem sbsV2TabItem = new TabItem(tabFolder, SWT.NONE); + sbsV2TabItem.setText(Messages.getString("CarbideBuildConfigurationsPage.SBSv2_Tab")); //$NON-NLS-1$ + sbsV2TabItem.setToolTipText(Messages.getString("CarbideBuildConfigurationsPage.Environement_Tab_ToolTip")); //$NON-NLS-1$ + + sbsv2BuildConfigTabComposite = new SBSv2BuildConfigTabComposite(sbsV2TabItem); + sbsv2BuildConfigTabComposite.createControls(); + sbsV2TabItem.setControl(sbsv2BuildConfigTabComposite); + } + //////////////////////////////////////////////////////// + + ////////////////////// Environment Tab //////////////// TabItem envTabItem = new TabItem(tabFolder, SWT.NONE); envTabItem.setText(Messages.getString("CarbideBuildConfigurationsPage.Environment_Tab")); //$NON-NLS-1$ @@ -364,6 +381,9 @@ ICarbideBuildConfiguration config = cpi.getDefaultConfiguration(); if (config != null) { sisFilesBlock.initData(config); + if (CarbideBuilderPlugin.getBuildManager().isCarbideSBSv2Project(project)) { + sbsv2BuildConfigTabComposite.initData(config); + } if (argumentsTabcomposite != null) { argumentsTabcomposite.initData(config); } @@ -638,7 +658,9 @@ // Compare each of the settings to see if they are the same boolean sisSettingsEqual = sisFilesBlock.compareConfigurationSettings(selectedConfig, writeToConfig); - + + boolean sbsv2ConfigEqual = sbsv2BuildConfigTabComposite.compareConfigurationSettings(selectedConfig, writeToConfig); + // Compare envVars settings boolean envVarsSettingsEqual = envVarList.size() == envVarListOrig.size() && envVarList.equals(envVarListOrig); if (!envVarsSettingsEqual && writeToConfig) { @@ -654,7 +676,7 @@ boolean romBuilderSettingsEqual = romBuilderTabComposite.compareConfigurationSettings(selectedConfig, writeToConfig); - return sisSettingsEqual && envVarsSettingsEqual && argsSettingsEqual && pathsAndSynmbolsSettingsEqual && romBuilderSettingsEqual; + return sisSettingsEqual && sbsv2ConfigEqual && envVarsSettingsEqual && argsSettingsEqual && pathsAndSynmbolsSettingsEqual && romBuilderSettingsEqual; } private void saveConfigurationSettings(ICarbideBuildConfiguration config) { @@ -957,6 +979,9 @@ ICarbideBuildConfiguration lastConfig = cpi.getNamedConfiguration(lastSelectedConfigName); if (lastConfig != null) { sisFilesBlock.initData(lastConfig); + if (CarbideBuilderPlugin.getBuildManager().isCarbideSBSv2Project(project)) { + sbsv2BuildConfigTabComposite.initData(lastConfig); + } setUpEnvVarsTable(new String[0], null); // refresh env vars info if (argumentsTabcomposite != null) { argumentsTabcomposite.initData(lastConfig); diff -r 4881c5997074 -r 63523a35c9b2 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/CarbideCPPProjectSettingsPage.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/CarbideCPPProjectSettingsPage.java Thu Apr 15 15:32:21 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/CarbideCPPProjectSettingsPage.java Thu Apr 15 17:45:19 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 checkedComponents = getCheckedComponentFilenames(); @@ -330,7 +328,6 @@ buildSettingsUI.setOverrideDefaultMakeEngine(cpi.overrideMakeEngineProjectValue()); buildSettingsUI.setMakeEngineText(cpi.makeEngineProjectValue()); buildSettingsUI.setExtraSBSv2Args(cpi.extraSBSv2ArgsProjectValue()); - buildSettingsUI.setBuildAliasAppendText(cpi.buildAliasAppendTextValue()); } initMMPSelectionUI(cpi); diff -r 4881c5997074 -r 63523a35c9b2 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/SBSv2BuildConfigTabComposite.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/SBSv2BuildConfigTabComposite.java Thu Apr 15 17:45:19 2010 -0500 @@ -0,0 +1,134 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* +*/ +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; + +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 "; // $NON-NLS-N$ + private static final String releaseTreeLabelPrefixText = "Release Tree: "; // $NON-NLS-N$ + + Text variantEdit; + + Label configCmdLabel; + Label releaseTreeLabel; + private ICarbideBuildConfiguration config; + + public SBSv2BuildConfigTabComposite(TabItem tabItem) { + super(tabItem.getParent(), SWT.NONE); + } + + public void createControls() { + setLayout(new GridLayout(2, false)); + + Label variantLabel = new Label(this, SWT.NONE); + variantLabel.setText(Messages.getString("CarbideSBSv2ConfigTab.VariantLabel")); //$NON-NLS-1$ + variantLabel.setToolTipText(Messages.getString("CarbideSBSv2ConfigTab.VariantLabel_ToolTip")); //$NON-NLS-1$ + + 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, 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; + + ISBSv2BuildConfigInfo currSBSv2Info = ((CarbideBuildConfiguration)selectedConfig).getSBSv2ConfigInfo(); + settingsEqual = currSBSv2Info.getSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT).equals(variantEdit.getText()); + + if (!settingsEqual && writeToConfig) { + currSBSv2Info.setSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT, variantEdit.getText()); + } + + return settingsEqual; + } + + public void performDefaults(ISymbianSDK sdk) { + variantEdit.setText(""); + } +} diff -r 4881c5997074 -r 63523a35c9b2 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/messages.properties --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/messages.properties Thu Apr 15 15:32:21 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/messages.properties Thu Apr 15 17:45:19 2010 -0500 @@ -36,6 +36,12 @@ CarbideBuildConfigurationsPage.Browse_Key_ToolTip=Look for the key in the file system. CarbideBuildConfigurationsPage.Additional_Options=Additional Options: CarbideBuildConfigurationsPage.Additional_Options_ToolTip=Any other command-line options you want to pass to signsis. + +CarbideBuildConfigurationsPage.SBSv2_Tab=SBSv2 +CarbideBuildConfigurationsPage.SBSv2_Tab_ToolTip=SBSv2 Build Configuration Specific Information +CarbideSBSv2ConfigTab.VariantLabel=Apply variant to build configuration +CarbideSBSv2ConfigTab.VariantLabel_ToolTip=Appends the text box value to the -c argument to construct a variant build configuration. + CarbideBuildConfigurationsPage.Environment_Tab=Environment CarbideBuildConfigurationsPage.Environement_Tab_ToolTip=This tab controls how the Windows environment is set up for each build process invoked. CarbideBuildConfigurationsPage.Env_Vars_Group=Environment Variabes (Bold items override the default value) @@ -98,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 diff -r 4881c5997074 -r 63523a35c9b2 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java Thu Apr 15 15:32:21 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java Thu Apr 15 17:45:19 2010 -0500 @@ -410,4 +410,30 @@ 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; + } } diff -r 4881c5997074 -r 63523a35c9b2 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SymbianBuildContext.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SymbianBuildContext.java Thu Apr 15 15:32:21 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SymbianBuildContext.java Thu Apr 15 17:45:19 2010 -0500 @@ -626,12 +626,4 @@ public String getSBSv2Alias() { return sbsv2Alias; } - - public void setSBSv2Alias(String sbsv2Alias) { - this.sbsv2Alias = sbsv2Alias; - } - - public void setDisplayString(String newDisplayName) { - this.displayString = newDisplayName; - } } diff -r 4881c5997074 -r 63523a35c9b2 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/sdk/core/ISymbianBuildContext.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/sdk/core/ISymbianBuildContext.java Thu Apr 15 15:32:21 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/sdk/core/ISymbianBuildContext.java Thu Apr 15 17:45:19 2010 -0500 @@ -151,7 +151,4 @@ */ public String getSBSv2Alias(); - public void setSBSv2Alias(String newAlias); - - public void setDisplayString(String newDisplayName); }