# HG changeset patch # User stechong # Date 1275517085 18000 # Node ID efad5bbb7534e72f9170486936a1a1c627d65f9e # Parent 587da7cb64b710cb6eada6d0fb04aeed99bc96a7# Parent 9dfc6e3dc4b959f6587ab74e3e19f0f8ebd6d9a7 Merge commit. diff -r 587da7cb64b7 -r efad5bbb7534 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 Wed Jun 02 17:08:00 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/EpocEngineHelper.java Wed Jun 02 17:18:05 2010 -0500 @@ -2303,7 +2303,7 @@ String plat = config.getPlatformString(); String basePlat = ""; if (config.getBuildContext() instanceof ISBSv2BuildConfigInfo){ - basePlat = ((ISBSv1BuildContext)config).getBasePlatformForVariation(); + basePlat = ((ISBSv1BuildContext)config.getBuildContext()).getBasePlatformForVariation(); } else { basePlat = config.getPlatformString(); } diff -r 587da7cb64b7 -r efad5bbb7534 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 Wed Jun 02 17:08:00 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java Wed Jun 02 17:18:05 2010 -0500 @@ -908,7 +908,7 @@ List argsList = new ArrayList(); argsList.add("bldfiles"); if (config instanceof ISBSv1BuildContext){ - argsList.add(((ISBSv1BuildContext)config).getBasePlatformForVariation().toLowerCase()); + argsList.add(((ISBSv1BuildContext)config.getBuildContext()).getBasePlatformForVariation().toLowerCase()); } for (String arg : config.getBuildArgumentsInfo().getBldmakeBldFilesArgs().split(" ")) { diff -r 587da7cb64b7 -r efad5bbb7534 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/CarbideConfigurationDataProvider.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/CarbideConfigurationDataProvider.java Wed Jun 02 17:08:00 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/CarbideConfigurationDataProvider.java Wed Jun 02 17:18:05 2010 -0500 @@ -28,6 +28,7 @@ import org.eclipse.cdt.core.ICExtensionReference; import org.eclipse.cdt.core.settings.model.ICConfigurationDescription; import org.eclipse.cdt.core.settings.model.ICProjectDescription; +import org.eclipse.cdt.core.settings.model.ICStorageElement; import org.eclipse.cdt.core.settings.model.extension.CConfigurationData; import org.eclipse.cdt.core.settings.model.extension.CConfigurationDataProvider; import org.eclipse.core.resources.IFolder; @@ -52,13 +53,16 @@ import com.nokia.carbide.cdt.internal.builder.CarbideProjectInfo; import com.nokia.carbide.cdt.internal.builder.EnvironmentVarsInfo; import com.nokia.carbide.cdt.internal.builder.EnvironmentVarsInfo2; +import com.nokia.carbide.cdt.internal.builder.ISBSv2BuildConfigInfo; import com.nokia.carbide.cdt.internal.builder.SISBuilderInfo; import com.nokia.carbide.cdt.internal.builder.gen.CarbideBuildConfig.CarbideBuilderConfigInfoType; import com.nokia.carbide.cdt.internal.builder.gen.CarbideBuildConfig.ConfigurationType; import com.nokia.carbide.cdt.internal.builder.xml.CarbideBuildConfigurationLoader; import com.nokia.carbide.cpp.internal.api.sdk.BuildContextSBSv1; -import com.nokia.carbide.cpp.sdk.core.ISBSv1BuildContext; +import com.nokia.carbide.cpp.internal.api.sdk.BuildContextSBSv2; import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext; +import com.nokia.carbide.cpp.sdk.core.ISymbianSDK; +import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin; /** * Main interface point with CDT with regards to our build configurations. Note that @@ -124,7 +128,76 @@ String configId = des.getConfiguration().getId(); // TODO: We should be able to get the build context from the SBSv2 data, if present, // otherwise from the display name for ABLD - ISymbianBuildContext context = BuildContextSBSv1.getBuildContextFromDisplayName(configId); + ISymbianBuildContext context = null; + String buidAlias = ""; + String platform = ""; + String target = ""; + String displayString = ""; + String variant = ""; + String sdkID = null; + if (CarbideBuilderPlugin.getBuildManager().isCarbideSBSv2Project(project)){ + ICStorageElement rootStorage = des.getStorage(CarbideBuildConfiguration.CARBIDE_STORAGE_ID, false); + if (rootStorage != null) { + for (ICStorageElement se : rootStorage.getChildren()) { + if (se.getName().equals( + CarbideBuildConfiguration.SBSV2_DATA_ID)) { + String value = se.getAttribute(ISBSv2BuildConfigInfo.ATRRIB_CONFIG_BASE_PLATFORM); + if (value != null) { + platform = value; + } + + value = se.getAttribute(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT); + if (value != null) { + variant = value; + } + + value = se.getAttribute(ISBSv2BuildConfigInfo.ATTRIB_CONFIG_TARGET); + if (value != null) { + target = value; + } + + value = se.getAttribute(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_BUILD_ALIAS); + if (value != null) { + buidAlias = value; + } + + value = se.getAttribute(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_CONFIG_DISPLAY_STRING); + if (value != null) { + displayString = value; + } + + value = se + .getAttribute(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_SDK_ID); + if (value != null) { + sdkID = value; + } + } + } + } else { + throw new CoreException(new Status(IStatus.ERROR, + CarbideBuilderPlugin.PLUGIN_ID, IStatus.OK, + "Unable to load Carbide settings for project " + + project.getProject().getName(), null)); + } + + ISymbianSDK sdk = null; + if (sdkID == null){ + // pre-C3 project, get SDK id from config name + sdkID = BuildContextSBSv2.getSDKIDFromConfigName(displayString); + } + if (sdkID != null){ + sdk = SDKCorePlugin.getSDKManager().getSDK(sdkID, true); + // TODO: NEED TO HANDLE MISSING SDK ID + if (sdk != null){ + context = new BuildContextSBSv2(sdk, platform, target, buidAlias); + } + } + + } else { + // TODO: Presume it's SBSv1? + context = BuildContextSBSv1.getBuildContextFromDisplayName(configId); + } + if (context == null) { throw new CoreException(new Status(IStatus.ERROR, CarbideBuilderPlugin.PLUGIN_ID, IStatus.OK, "SDK specified in project " + project.getName() + " is not installed, please set it up from project property", null)); } diff -r 587da7cb64b7 -r efad5bbb7534 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 Wed Jun 02 17:08:00 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideBuildConfiguration.java Wed Jun 02 17:18:05 2010 -0500 @@ -59,14 +59,14 @@ static final String NOT_INSTALLED = "(SDK not found)"; //$NON-NLS-1$ - protected static final String CARBIDE_STORAGE_ID = "CarbideConfigurationDataProvider"; //$NON-NLS-1$ + public static final String CARBIDE_STORAGE_ID = "CarbideConfigurationDataProvider"; //$NON-NLS-1$ protected final static String SIS_BUILDER_DATA_ID = "SIS_BUILDER_DATA_ID"; //$NON-NLS-1$ protected final static String ENV_VAR_DATA_ID = "ENV_VAR_DATA_ID"; //$NON-NLS-1$ protected final static String ARGUMENTS_DATA_ID = "ARGUMENTS_DATA_ID"; //$NON-NLS-1$ protected final static String ROM_BUILDER_DATA_ID = "ROM_BUILDER_DATA_ID"; //$NON-NLS-1$ // SBSv2 only config settings - protected final static String SBSV2_DATA_ID = "SBSV2_DATA_ID"; //$NON-NLS-1$ + public final static String SBSV2_DATA_ID = "SBSV2_DATA_ID"; //$NON-NLS-1$ protected ISymbianBuildContext context; protected TrackedResource projectTracker; diff -r 587da7cb64b7 -r efad5bbb7534 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java Wed Jun 02 17:08:00 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java Wed Jun 02 17:18:05 2010 -0500 @@ -2368,7 +2368,7 @@ EpocEngineHelper.hasFeatureVariantKeyword(config.getCarbideProject(), componentPath)){ buildPlatform = config.getPlatformString().toLowerCase(); } else if (config.getBuildContext() instanceof ISBSv1BuildContext) { - buildPlatform = ((ISBSv1BuildContext)config).getBasePlatformForVariation().toLowerCase(); + buildPlatform = ((ISBSv1BuildContext)config.getBuildContext()).getBasePlatformForVariation().toLowerCase(); } abldArgs.add(MAKEFILE_CMD); //$NON-NLS-1$ @@ -2587,10 +2587,10 @@ if (EpocEngineHelper.hasFeatureVariantKeyword(config.getCarbideProject(), componentPath)){ platformName = config.getPlatformString().toUpperCase(); } else if (config.getBuildContext() instanceof ISBSv1BuildContext) { - platformName = ((ISBSv1BuildContext)config).getBasePlatformForVariation(); + platformName = ((ISBSv1BuildContext)config.getBuildContext()).getBasePlatformForVariation(); } - makefilePath = makefilePath.append(((ISBSv1BuildContext)config).getBasePlatformForVariation().toUpperCase()); + makefilePath = makefilePath.append(((ISBSv1BuildContext)config.getBuildContext()).getBasePlatformForVariation().toUpperCase()); // and the makefile has the form MMPNAME.PLATFORM makefilePath = makefilePath.append(mmpName + "." + platformName); diff -r 587da7cb64b7 -r efad5bbb7534 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 Wed Jun 02 17:08:00 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv2Builder.java Wed Jun 02 17:18:05 2010 -0500 @@ -89,7 +89,7 @@ /** 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) { - String buildAlias = ((ISBSv2BuildContext)buildConfig).getSBSv2Alias(); + String buildAlias = ((ISBSv2BuildContext)buildConfig.getBuildContext()).getSBSv2Alias(); if (buildAlias == null){ // Just get the default target. This is a SBSv1 style configuration name... buildAlias = buildConfig.getPlatformString().toLowerCase() + "_" + buildConfig.getTargetString().toLowerCase(); diff -r 587da7cb64b7 -r efad5bbb7534 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ISBSv2BuildConfigInfo.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ISBSv2BuildConfigInfo.java Wed Jun 02 17:08:00 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ISBSv2BuildConfigInfo.java Wed Jun 02 17:18:05 2010 -0500 @@ -27,6 +27,7 @@ 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"; + public final static String ATTRIB_SBSV2_SDK_ID = "ATTRIB_SBSV2_SDK_ID"; /** Retrieve a specfic .cproject SBSv2 data value from a given ID */ String getSBSv2Setting(String id); diff -r 587da7cb64b7 -r efad5bbb7534 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/SBSv2BuilderInfo.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/SBSv2BuilderInfo.java Wed Jun 02 17:08:00 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/SBSv2BuilderInfo.java Wed Jun 02 17:18:05 2010 -0500 @@ -39,6 +39,7 @@ sbsv2ConfigDataMap.put(ISBSv2BuildConfigInfo.ATTRIB_CONFIG_TARGET, context.getTargetString()); sbsv2ConfigDataMap.put(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_CONFIG_DISPLAY_STRING, context.getDisplayString()); sbsv2ConfigDataMap.put(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT, ""); + sbsv2ConfigDataMap.put(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_SDK_ID, context.getSDK().getUniqueId()); this.context = context; } @@ -69,6 +70,12 @@ sbsv2ConfigDataMap.put(ATTRIB_SBSV2_CONFIG_DISPLAY_STRING, value); } + value = rootStorage.getAttribute(ATTRIB_SBSV2_SDK_ID); + if (value != null) { + sbsv2ConfigDataMap.put(ATTRIB_SBSV2_SDK_ID, value); + } + + } public void saveToStorage(ICStorageElement rootStorage) { @@ -97,6 +104,11 @@ if (value != null && value.trim().length() > 0){ rootStorage.setAttribute(ATTRIB_SBSV2_CONFIG_DISPLAY_STRING, value); } + + value = sbsv2ConfigDataMap.get(ATTRIB_SBSV2_SDK_ID); + if (value != null && value.trim().length() > 0){ + rootStorage.setAttribute(ATTRIB_SBSV2_SDK_ID, value); + } } @@ -107,5 +119,5 @@ public void setSBSv2Setting(String id, String value) { sbsv2ConfigDataMap.put(id, value); } - + } diff -r 587da7cb64b7 -r efad5bbb7534 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/SBSv2BuildConfigTabComposite.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/SBSv2BuildConfigTabComposite.java Wed Jun 02 17:08:00 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ui/SBSv2BuildConfigTabComposite.java Wed Jun 02 17:18:05 2010 -0500 @@ -90,7 +90,7 @@ public void initData(ICarbideBuildConfiguration buildConfig) { this.config = buildConfig; - context = (ISBSv2BuildContext)buildConfig; + context = (ISBSv2BuildContext)buildConfig.getBuildContext(); ISBSv2BuildConfigInfo sbsv2ConfigInfo = ((CarbideBuildConfiguration)buildConfig).getSBSv2ConfigInfo(); if (sbsv2ConfigInfo != null && sbsv2ConfigInfo.getSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT) != null){ variantEdit.setText(sbsv2ConfigInfo.getSBSv2Setting(ISBSv2BuildConfigInfo.ATTRIB_SBSV2_VARIANT)); diff -r 587da7cb64b7 -r efad5bbb7534 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/BuildContextSBSv2.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/BuildContextSBSv2.java Wed Jun 02 17:08:00 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/BuildContextSBSv2.java Wed Jun 02 17:18:05 2010 -0500 @@ -12,6 +12,7 @@ import com.nokia.carbide.cpp.sdk.core.IBSFPlatform; import com.nokia.carbide.cpp.sdk.core.IRVCTToolChainInfo; import com.nokia.carbide.cpp.sdk.core.ISBSv2BuildContext; +import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext; import com.nokia.carbide.cpp.sdk.core.ISymbianSDK; import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin; @@ -255,5 +256,18 @@ // TODO: Still need to consider this for SBSv2 refactoring / Raptor query return getCachedData().getSystemIncludePaths(); } + + + // Fall-back to get SDK id from old config name + public static String getSDKIDFromConfigName(String configName) { + int indexBegin = configName.indexOf("["); //$NON-NLS-1$ + int indexEnd = configName.indexOf("]"); //$NON-NLS-1$ + if (indexBegin > 0 && indexEnd > 0){ + return configName.substring(indexBegin+1, indexEnd); + } else { + return ""; //$NON-NLS-1$ + } + } + }