# HG changeset patch # User timkelly # Date 1271446095 18000 # Node ID 7b1583c084c1ebb0edcc678da97e958885efb3e9 # Parent 20d15d1ddbfed0470349fe182efe90da7aa4319b little clean-up/refactor after review of bug 11068 diff -r 20d15d1ddbfe -r 7b1583c084c1 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 Fri Apr 16 11:27:00 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/EpocEngineHelper.java Fri Apr 16 14:28:15 2010 -0500 @@ -862,16 +862,8 @@ exePath = tempPath.lastSegment(); } - 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()); - + IPath path = buildConfig.getTargetOutputDirectory(); + // if targetpath is non-null and this is an EKA1 emulator config then add it if (buildConfig.getPlatformString().equals(ISymbianBuildContext.EMULATOR_PLATFORM)) { if (buildConfig.getSDK().getOSVersion().getMajor() < 9) { diff -r 20d15d1ddbfe -r 7b1583c084c1 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/ICarbideBuildConfiguration.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/ICarbideBuildConfiguration.java Fri Apr 16 11:27:00 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/ICarbideBuildConfiguration.java Fri Apr 16 14:28:15 2010 -0500 @@ -18,6 +18,8 @@ import java.util.List; +import org.eclipse.core.runtime.IPath; + import com.nokia.carbide.cdt.builder.BuildArgumentsInfo; import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext; @@ -129,4 +131,12 @@ */ boolean equals(Object obj); + /** Get the full path of the release directory into the SDK where binaries are built + * NOTE: This does not account for whether or not a project has the FEATUREVARIANT keyword + * @return IPath + * + * @since 2.6 + */ + IPath getTargetOutputDirectory(); + } diff -r 20d15d1ddbfe -r 7b1583c084c1 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 Fri Apr 16 11:27:00 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideBuildConfiguration.java Fri Apr 16 14:28:15 2010 -0500 @@ -16,23 +16,17 @@ */ package com.nokia.carbide.cdt.internal.builder; -import java.io.File; import java.util.ArrayList; import java.util.List; import org.eclipse.cdt.core.CCorePlugin; -import org.eclipse.cdt.core.ICDescriptor; -import org.eclipse.cdt.core.ICExtensionReference; import org.eclipse.cdt.core.model.CoreModel; 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.WriteAccessException; import org.eclipse.cdt.core.settings.model.extension.CConfigurationData; import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IProjectDescription; -import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IStatus; @@ -46,12 +40,11 @@ import com.nokia.carbide.cdt.builder.project.IBuildArgumentsInfo; import com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration; import com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo; -import com.nokia.carbide.cdt.builder.project.ICarbideProjectModifier; import com.nokia.carbide.cdt.builder.project.IEnvironmentVarsInfo; import com.nokia.carbide.cdt.builder.project.IROMBuilderInfo; import com.nokia.carbide.cdt.builder.project.ISISBuilderInfo; -import com.nokia.carbide.cdt.internal.api.builder.CarbideConfigurationDataProvider; import com.nokia.carbide.cdt.internal.api.builder.SISBuilderInfo2; +import com.nokia.carbide.cpp.internal.api.sdk.SBSv2Utils; import com.nokia.carbide.cpp.internal.api.sdk.SDKManagerInternalAPI; import com.nokia.carbide.cpp.internal.api.sdk.SymbianBuildContext; import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext; @@ -112,7 +105,9 @@ } else if (se.getName().equals(ROM_BUILDER_DATA_ID)) { romBuilderInfo.loadFromStorage(se); } else if (se.getName().equals(SBSV2_DATA_ID)){ - sbsv2BuilderInfo.loadFromStorage(se); + if (sbsv2BuilderInfo != null){ + sbsv2BuilderInfo.loadFromStorage(se); + } } } } else { @@ -437,4 +432,16 @@ return sbsv2BuilderInfo; } + public IPath getTargetOutputDirectory() { + String releasePlatform = getSDK().getBSFCatalog().getReleasePlatform(getBasePlatformForVariation()); + if (CarbideBuilderPlugin.getBuildManager().isCarbideSBSv2Project(getCarbideProject().getProject())){ + // Test is this is an SBSv2 build binary variant (changes the output directory) + ISBSv2BuildConfigInfo sbsv2Info = 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)); + } + } + return getSDK().getReleaseRoot().append(releasePlatform.toLowerCase()).append(getTargetString().toLowerCase()); + } + } diff -r 20d15d1ddbfe -r 7b1583c084c1 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 Fri Apr 16 11:27:00 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideBuildData.java Fri Apr 16 14:28:15 2010 -0500 @@ -59,14 +59,7 @@ @Override public ICOutputEntry[] getOutputDirectories() { - 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()); + IPath outputPath = carbideBuildConfig.getTargetOutputDirectory(); return new ICOutputEntry[]{new COutputEntry(outputPath, null, 0)}; }