# HG changeset patch # User timkelly # Date 1281568596 18000 # Node ID 85755749f4f1348ae64d49b47be4048c00acb821 # Parent 3707a2756973410a07c6e5391d8bb18b541f3f43# Parent 88695467fd040ed628a4a32fd5cfc61d2ae5178b merge commit diff -r 88695467fd04 -r 85755749f4f1 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/DefaultViewConfiguration.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/DefaultViewConfiguration.java Wed Aug 11 14:32:13 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/DefaultViewConfiguration.java Wed Aug 11 18:16:36 2010 -0500 @@ -205,28 +205,8 @@ if (context != null) { ISymbianSDK sdk = context.getSDK(); - if (context instanceof ISBSv2BuildContext){ - macros.add(DefineFactory.createDefine("SBSV2", null)); - ISBSv2BuildInfo sbsv2BuildInfo = (ISBSv2BuildInfo)sdk.getBuildInfo(ISymbianBuilderID.SBSV2_BUILDER); - if (sbsv2BuildInfo != null) { - Map platMacros = sbsv2BuildInfo.getPlatformMacros(context.getPlatformString()); - for (Iterator it = platMacros.keySet().iterator(); it.hasNext(); ) { - String name = it.next(); - String value = platMacros.get(name); - macros.add(DefineFactory.createDefine(name, value)); - } - } - } else { - ISBSv1BuildInfo sbsv1BuildInfo = (ISBSv1BuildInfo)sdk.getBuildInfo(ISymbianBuilderID.SBSV1_BUILDER); - if (sbsv1BuildInfo != null) { - for (String platMacro : sbsv1BuildInfo.getPlatformMacros(context.getPlatformString())) { - macros.add(DefineFactory.createDefine(platMacro.trim(), platMacro.trim())); - } - - for (String vendorMacro : sbsv1BuildInfo.getVendorSDKMacros()){ - macros.add(DefineFactory.createDefine(vendorMacro.trim(), vendorMacro.trim())); - } - } + for (IDefine metaDataMacro : context.getMetadataMacros()) { + macros.add(metaDataMacro); } for (IDefine macro : context.getVariantHRHDefines()) { diff -r 88695467fd04 -r 85755749f4f1 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideLanguageData.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideLanguageData.java Wed Aug 11 14:32:13 2010 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideLanguageData.java Wed Aug 11 18:16:36 2010 -0500 @@ -50,6 +50,7 @@ import com.nokia.carbide.cdt.builder.EpocEngineHelper; import com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration; import com.nokia.carbide.cpp.epoc.engine.model.sbv.ISBVView; +import com.nokia.carbide.cpp.epoc.engine.preprocessor.DefineFactory; import com.nokia.carbide.cpp.epoc.engine.preprocessor.IDefine; import com.nokia.carbide.cpp.internal.api.sdk.ISBSv1BuildContext; import com.nokia.carbide.cpp.internal.api.sdk.ISBSv1BuildInfo; @@ -291,27 +292,8 @@ Map macros = new HashMap(); // platform macros - if (context instanceof ISBSv1BuildContext) { - ISBSv1BuildInfo sbsv1BuildInfo = (ISBSv1BuildInfo)sdk.getBuildInfo(ISymbianBuilderID.SBSV1_BUILDER); - // platform macros - for (String platMacro : sbsv1BuildInfo.getPlatformMacros(carbideBuildConfig.getPlatformString())) { - macros.put("__" + platMacro + "__", ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } - - // vendor macros (e.g. __SERIES60_3x__) - for (String builtinMacro : sbsv1BuildInfo.getVendorSDKMacros()) { - macros.put(builtinMacro, ""); //$NON-NLS-1$ - } - - // built in macros - for (String builtinMacro : sbsv1BuildInfo.getBuiltinMacros(context)) { - macros.put(builtinMacro, ""); //$NON-NLS-1$ - } - - } else { - ISBSv2BuildInfo sbsv2BuildInfo = (ISBSv2BuildInfo)sdk.getBuildInfo(ISymbianBuilderID.SBSV2_BUILDER); - // platform macros - macros.putAll(sbsv2BuildInfo.getPlatformMacros(carbideBuildConfig.getPlatformString())); + for (IDefine metaDataDefine : context.getMetadataMacros()){ + macros.put(metaDataDefine.getName(), metaDataDefine.getExpansion()); } if ((carbideBuildConfig).hasSTDCPPSupport()){ @@ -324,17 +306,9 @@ // more than one but all have the same target type macro. it wouldn't make sense to add different // target type macros like __EXE__ and __DLL__. if (targetTypes.size() == 1) { - if (context instanceof ISBSv1BuildContext) { - ISBSv1BuildInfo sbsv1BuildInfo = (ISBSv1BuildInfo)sdk.getBuildInfo(ISymbianBuilderID.SBSV1_BUILDER); - for (String targetTypeMacro : sbsv1BuildInfo.getTargetTypeMacros(targetTypes.get(0))) { - macros.put(targetTypeMacro, ""); //$NON-NLS-1$ - } - } else { - ISBSv2BuildInfo sbsv2BuildInfo = (ISBSv2BuildInfo)sdk.getBuildInfo(ISymbianBuilderID.SBSV2_BUILDER); - for (String targetTypeMacro : sbsv2BuildInfo.getTargetTypeMacros(targetTypes.get(0))) { - macros.put(targetTypeMacro, ""); //$NON-NLS-1$ - } - } + // Just get the macro for the first MMP found + IDefine ttMacro = context.getTargetTypeMacro(targetTypes.get(0)); + macros.put(ttMacro.getName(), ttMacro.getExpansion()); } // get the list of all mmp files selected for the build configuration diff -r 88695467fd04 -r 85755749f4f1 builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/PreprocessHandler.java --- a/builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/PreprocessHandler.java Wed Aug 11 14:32:13 2010 -0500 +++ b/builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/PreprocessHandler.java Wed Aug 11 18:16:36 2010 -0500 @@ -81,13 +81,13 @@ 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.epoc.engine.preprocessor.IDefine; import com.nokia.carbide.cpp.internal.api.sdk.ISBSv1BuildContext; import com.nokia.carbide.cpp.internal.api.sdk.ISBSv1BuildInfo; import com.nokia.carbide.cpp.internal.api.sdk.ISBSv2BuildInfo; import com.nokia.carbide.cpp.internal.builder.utils.Activator; import com.nokia.carbide.cpp.internal.builder.utils.ui.LanguageSelectionDialog; import com.nokia.carbide.cpp.internal.builder.utils.ui.PreprocessPreferencePage; -import com.nokia.carbide.cpp.sdk.core.ISDKBuildInfo; import com.nokia.carbide.cpp.sdk.core.ISymbianBuilderID; import com.nokia.carbide.cpp.sdk.core.ISymbianSDK; import com.nokia.cpp.internal.api.utils.core.FileUtils; @@ -411,30 +411,15 @@ private List getMacros(ICarbideBuildConfiguration buildConfig, final IPath filePath, final IProgressMonitor monitor) { final List macros = new ArrayList(); - ISymbianSDK sdk = buildConfig.getSDK(); - if (buildConfig.getBuildContext() instanceof ISBSv1BuildContext) { - ISBSv1BuildInfo sbsv1BuildInfo = (ISBSv1BuildInfo)sdk.getBuildInfo(ISymbianBuilderID.SBSV1_BUILDER); - // platform macros - for (String platMacro : sbsv1BuildInfo.getPlatformMacros(buildConfig.getPlatformString())) { - macros.add("__" + platMacro + "__"); //$NON-NLS-1$ //$NON-NLS-2$ - } - // vendor macros (e.g. __SERIES60_3x__) - for (String builtinMacro : sbsv1BuildInfo.getVendorSDKMacros()) { - macros.add(builtinMacro); - } - - // built in macros - for (String builtinMacro : sbsv1BuildInfo.getBuiltinMacros(buildConfig.getBuildContext())) { - macros.add(builtinMacro); - } - - } else { - ISBSv2BuildInfo sbsv2BuildInfo = (ISBSv2BuildInfo)sdk.getBuildInfo(ISymbianBuilderID.SBSV2_BUILDER); - // platform macros - for (Iterator it = sbsv2BuildInfo.getPlatformMacros(buildConfig.getPlatformString()).keySet().iterator(); it.hasNext(); ) { - String platMacro = it.next(); - macros.add(platMacro); - } + + List buildMacros = buildConfig.getBuildContext().getBuildMacros(); + for (IDefine define : buildMacros){ + macros.add(define.getName()); + } + + List metaDataMacros = buildConfig.getBuildContext().getMetadataMacros(); + for (IDefine define : metaDataMacros){ + macros.add(define.getName()); } if (buildConfig.hasSTDCPPSupport()){ @@ -458,7 +443,7 @@ String targetType = mmpData.getSingleArgumentSettings().get(EMMPStatement.TARGETTYPE); if (targetType != null) { targetType = targetType.toUpperCase(); - macros.add(targetType); + macros.add("__" + targetType + "__"); } // mmp macros diff -r 88695467fd04 -r 85755749f4f1 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/BuildContextSBSv1.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/BuildContextSBSv1.java Wed Aug 11 14:32:13 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/BuildContextSBSv1.java Wed Aug 11 18:16:36 2010 -0500 @@ -27,6 +27,7 @@ import org.eclipse.core.runtime.Path; import org.osgi.framework.Version; +import com.nokia.carbide.cpp.epoc.engine.preprocessor.DefineFactory; import com.nokia.carbide.cpp.epoc.engine.preprocessor.IDefine; import com.nokia.carbide.cpp.internal.sdk.core.model.SBSv1BuildInfo; import com.nokia.carbide.cpp.internal.sdk.core.model.SDKManager; @@ -677,15 +678,42 @@ @Override public List getBuildMacros() { - // TODO Auto-generated method stub - return null; + ISBSv1BuildInfo sbsv1BuildInfo = (ISBSv1BuildInfo)getSDK().getBuildInfo(ISymbianBuilderID.SBSV1_BUILDER); + List defines = new ArrayList(); + for (String builtinMacro : sbsv1BuildInfo.getVendorSDKMacros()) { + defines.add(DefineFactory.createDefine(builtinMacro)); + } + + for (String builtinMacro : sbsv1BuildInfo.getBuiltinMacros(this)) { + defines.add(DefineFactory.createDefine(builtinMacro)); + } + + for (String variantCFGMacro : getVariantCFGMacros()) { + defines.add(DefineFactory.createDefine(variantCFGMacro)); + } + + for (String platMacro : sbsv1BuildInfo.getPlatformMacros(getPlatformString())) { + defines.add(DefineFactory.createDefine("__" + platMacro + "__")); //$NON-NLS-1$ //$NON-NLS-2$ + } + + return defines; } @Override public List getMetadataMacros() { - // TODO Auto-generated method stub - return null; + ISBSv1BuildInfo sbsv1BuildInfo = (ISBSv1BuildInfo)getSDK().getBuildInfo(ISymbianBuilderID.SBSV1_BUILDER); + List defines = new ArrayList(); + for (String platMacro : sbsv1BuildInfo.getPlatformMacros(getPlatformString())) { + defines.add(DefineFactory.createDefine(platMacro)); //$NON-NLS-1$ //$NON-NLS-2$ + } + + return defines; + } + + @Override + public IDefine getTargetTypeMacro(String targettype) { + ISBSv1BuildInfo sbsv1BuildInfo = (ISBSv1BuildInfo)getSDK().getBuildInfo(ISymbianBuilderID.SBSV1_BUILDER); + return DefineFactory.createDefine(sbsv1BuildInfo.getTargetTypeMacro(targettype)); } - } diff -r 88695467fd04 -r 85755749f4f1 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 Aug 11 14:32:13 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/BuildContextSBSv2.java Wed Aug 11 18:16:36 2010 -0500 @@ -14,11 +14,11 @@ import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.ui.PlatformUI; +import com.nokia.carbide.cpp.epoc.engine.preprocessor.DefineFactory; import com.nokia.carbide.cpp.epoc.engine.preprocessor.IDefine; import com.nokia.carbide.cpp.internal.api.sdk.sbsv2.SBSv2ConfigQueryData; import com.nokia.carbide.cpp.internal.api.sdk.sbsv2.SBSv2MinimumVersionException; import com.nokia.carbide.cpp.internal.api.sdk.sbsv2.SBSv2QueryUtils; -import com.nokia.carbide.cpp.internal.sdk.core.model.SBSv2BuildInfo; import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext; import com.nokia.carbide.cpp.sdk.core.ISymbianBuilderID; import com.nokia.carbide.cpp.sdk.core.ISymbianSDK; @@ -409,14 +409,32 @@ @Override public List getBuildMacros() { - // TODO Auto-generated method stub - return null; + ISBSv2BuildInfo sbsv2BldInfo = ((ISBSv2BuildInfo)getSDK().getBuildInfo(ISymbianBuilderID.SBSV2_BUILDER)); + Map buildMacroMap = sbsv2BldInfo.getBuildMacros(getSBSv2Alias()); + List defines = new ArrayList(); + for (String macroName : buildMacroMap.keySet()){ + defines.add(DefineFactory.createDefine(macroName, buildMacroMap.get(macroName))); + } + + return defines; } @Override public List getMetadataMacros() { - // TODO Auto-generated method stub - return null; + ISBSv2BuildInfo sbsv2BldInfo = ((ISBSv2BuildInfo)getSDK().getBuildInfo(ISymbianBuilderID.SBSV2_BUILDER)); + Map platMacroMap = sbsv2BldInfo.getMetadataMacros(getSBSv2Alias()); + List defines = new ArrayList(); + for (String macroName : platMacroMap.keySet()){ + defines.add(DefineFactory.createDefine(macroName, platMacroMap.get(macroName))); + } + + return defines; + } + + @Override + public IDefine getTargetTypeMacro(String targettype) { + ISBSv2BuildInfo sbsv2BuildInfo = (ISBSv2BuildInfo)sdk.getBuildInfo(ISymbianBuilderID.SBSV2_BUILDER); + return DefineFactory.createDefine(sbsv2BuildInfo.getTargetTypeMacro(targettype)); } diff -r 88695467fd04 -r 85755749f4f1 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/ISBSv1BuildInfo.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/ISBSv1BuildInfo.java Wed Aug 11 14:32:13 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/ISBSv1BuildInfo.java Wed Aug 11 18:16:36 2010 -0500 @@ -66,12 +66,12 @@ ISBVCatalog getSBVCatalog(); /** - * Get a list of macros specific to the given target type, e.g. "__EXE__" or "__DLL__" + * Get the macro for the given target type, e.g. "__EXE__" or "__DLL__" * @param targettype * @return list of macro strings, may be empty * @deprecated */ - List getTargetTypeMacros(String targettype); + String getTargetTypeMacro(String targettype); /** * Get a list of macros that are used to distinguish a SDK. Typically only diff -r 88695467fd04 -r 85755749f4f1 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/ISBSv2BuildInfo.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/ISBSv2BuildInfo.java Wed Aug 11 14:32:13 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/ISBSv2BuildInfo.java Wed Aug 11 18:16:36 2010 -0500 @@ -27,28 +27,39 @@ public interface ISBSv2BuildInfo extends ISDKBuildInfo { /** - * Returns the list of all platform macros for a SDK. + * Returns the list of all platform/metadata macros for a given build alias (sbs configuration). *

- * This is somewhat equivalent to calling "bldmake plat" on the command line - * These are the macros that can be used in MMP and INF files. They are only given by name (no value) + * These are the <metadata/> macros from a query to Raptor with 'sbs --query=config[]. + * These are the macros that can be used in MMP and INF files. *

- * @param platform the platform name - * @return a map of macros and values, which may be empty. + * @param sbs build alias + * @return a map of macros and value pairs, which may be empty. */ - Map getPlatformMacros(String platform); + Map getMetadataMacros(String buildAlias); /** + * Returns the list of all build macros fro a given build alias (sbs configuration). + *

+ * These are the <build/> macros from a query to Raptor with 'sbs --query=config[]. + * These are the macros that can be used in C/C++ files. + *

+ * @param buildAlias + * @return a map of macros and value pairs, which may be empty. + */ + public Map getBuildMacros(String buildAlias); + + /** * Get the full path to the prefix file defined under \epoc32\tools\variant\variant.cfg * @return A path object, or null if the variant.cfg does not exist. This routine does not check to see if the returned path exists. */ public IPath getPrefixFromVariantCfg(); /** - * Get a list of macros specific to the given target type, e.g. "__EXE__" or "__DLL__" + * Get the macro for the given target type, e.g. "__EXE__" or "__DLL__" * @param targettype * @return list of macro strings, may be empty */ - List getTargetTypeMacros(String targettype); + String getTargetTypeMacro(String targettype); /** * Tells whether or not the plug-in installer has sniffed this SDK for eclipse plug-ins to install. diff -r 88695467fd04 -r 85755749f4f1 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SymbianMacroStore.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SymbianMacroStore.java Wed Aug 11 14:32:13 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SymbianMacroStore.java Wed Aug 11 18:16:36 2010 -0500 @@ -193,6 +193,7 @@ * @param osVersion - A version object. Only the major and minor rev are checked. * @param branch - An OS branch (e.g. 'a' or 'b') or an empty string if none. * @return A full list of define macro names (no values). Returns an empty list if the OS version is not in the store + * @deprecated - use {@link ISymbianBuildContext#getVariantHRHDefines()} */ public List getOSMacros(Version osVersion){ List osMacroList = new ArrayList(); diff -r 88695467fd04 -r 85755749f4f1 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBSv1BuildInfo.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBSv1BuildInfo.java Wed Aug 11 14:32:13 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBSv1BuildInfo.java Wed Aug 11 18:16:36 2010 -0500 @@ -153,31 +153,30 @@ return sbvCatalog; } - public List getTargetTypeMacros(String targettype) { + public String getTargetTypeMacro(String targettype) { // this is based on \epoc32\tools\trgtype.pm which changes from // OS version to OS version, but largely remains constant with // regards to the basic type. - List macros = new ArrayList(); // if it's not one of these then it's a DLL if (targettype.compareToIgnoreCase("EPOCEXE") == 0) { - macros.add("__EXEDLL__"); + return "__EXEDLL__"; } else if (targettype.compareToIgnoreCase("EXEDLL") == 0) { - macros.add("__EXEDLL__"); + return "__EXEDLL__"; } else if (targettype.compareToIgnoreCase("EXE") == 0) { - macros.add("__EXE__"); + return "__EXE__"; } else if (targettype.compareToIgnoreCase("EXEXP") == 0) { - macros.add("__EXE__"); + return "__EXE__"; } else if (targettype.compareToIgnoreCase("IMPLIB") == 0) { - macros.add("__IMPLIB__"); + return "__IMPLIB__"; } else if (targettype.compareToIgnoreCase("KLIB") == 0) { - macros.add("__LIB__"); + return "__LIB__"; } else if (targettype.compareToIgnoreCase("LIB") == 0) { - macros.add("__LIB__"); + return "__LIB__"; } else { - macros.add("__DLL__"); + return "__DLL__"; } - return macros; + } public List getVendorSDKMacros() { diff -r 88695467fd04 -r 85755749f4f1 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBSv2BuildInfo.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBSv2BuildInfo.java Wed Aug 11 14:32:13 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBSv2BuildInfo.java Wed Aug 11 18:16:36 2010 -0500 @@ -48,7 +48,10 @@ private ISymbianSDK sdk; private List sbsv2FilteredConetxts = new ArrayList(); private boolean wasScanned = false; - private Map> cachedPlatformMacros = new HashMap>(); + /** from element from sbs --query=config[] */ + private Map> cachedMetadataMacros = new HashMap>(); + /** from element from sbs --query=config[] */ + private Map> cachedBuildMacros = new HashMap>(); private Map aliasToMeaningMap = new HashMap(); private List productList = null; @@ -188,26 +191,47 @@ return meaning; } - public Map getPlatformMacros(String platform) { - Map platformMacros = cachedPlatformMacros.get(platform); + public Map getMetadataMacros(String buildAlias) { + Map platformMacros = cachedMetadataMacros.get(buildAlias); if (platformMacros == null) { platformMacros = new HashMap(); - synchronized (cachedPlatformMacros) { + synchronized (cachedMetadataMacros) { if (sbsv2FilteredConetxts == null || sbsv2FilteredConetxts.size() == 0) { getFilteredBuildConfigurations(); } if (sbsv2FilteredConetxts.size() > 0) { for (ISymbianBuildContext context : sbsv2FilteredConetxts) { - if (context.getPlatformString().equalsIgnoreCase(platform)) { + if (((ISBSv2BuildContext)context).getSBSv2Alias().equalsIgnoreCase(buildAlias)) { platformMacros.putAll(((ISBSv2BuildContext)context).getConfigQueryData().getMetaDataMacros()); } } - cachedPlatformMacros.put(platform, platformMacros); + cachedMetadataMacros.put(buildAlias, platformMacros); } } } return platformMacros; } + + public Map getBuildMacros(String buildAlias) { + Map buildMacros = cachedBuildMacros.get(buildAlias); + if (buildMacros == null) { + buildMacros = new HashMap(); + synchronized (cachedBuildMacros) { + if (sbsv2FilteredConetxts == null || sbsv2FilteredConetxts.size() == 0) { + getFilteredBuildConfigurations(); + } + if (sbsv2FilteredConetxts.size() > 0) { + for (ISymbianBuildContext context : sbsv2FilteredConetxts) { + if (((ISBSv2BuildContext)context).getSBSv2Alias().equalsIgnoreCase(buildAlias)) { + buildMacros.putAll(((ISBSv2BuildContext)context).getConfigQueryData().getBuildMacros()); + } + } + cachedBuildMacros.put(buildAlias, buildMacros); + } + } + } + return buildMacros; + } /** * Get the full path to the prefix file defined under \epoc32\tools\variant\variant.cfg @@ -231,31 +255,30 @@ return cachedVariantHRHFile; } - public List getTargetTypeMacros(String targettype) { + public String getTargetTypeMacro(String targettype) { // this is based on \epoc32\tools\trgtype.pm which changes from // OS version to OS version, but largely remains constant with // regards to the basic type. - List macros = new ArrayList(); // if it's not one of these then it's a DLL if (targettype.compareToIgnoreCase("EPOCEXE") == 0) { - macros.add("__EXEDLL__"); + return "__EXEDLL__"; } else if (targettype.compareToIgnoreCase("EXEDLL") == 0) { - macros.add("__EXEDLL__"); + return "__EXEDLL__"; } else if (targettype.compareToIgnoreCase("EXE") == 0) { - macros.add("__EXE__"); + return "__EXE__"; } else if (targettype.compareToIgnoreCase("EXEXP") == 0) { - macros.add("__EXE__"); + return "__EXE__"; } else if (targettype.compareToIgnoreCase("IMPLIB") == 0) { - macros.add("__IMPLIB__"); + return "__IMPLIB__"; } else if (targettype.compareToIgnoreCase("KLIB") == 0) { - macros.add("__LIB__"); + return "__LIB__"; } else if (targettype.compareToIgnoreCase("LIB") == 0) { - macros.add("__LIB__"); + return "__LIB__"; } else { - macros.add("__DLL__"); + return "__DLL__"; } - return macros; + } public boolean isPreviouslyScanned() { diff -r 88695467fd04 -r 85755749f4f1 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 Wed Aug 11 14:32:13 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/sdk/core/ISymbianBuildContext.java Wed Aug 11 18:16:36 2010 -0500 @@ -147,14 +147,24 @@ /** * This is the list of macros used to preprocess CPP source files. * @return a list of defines. + * @since */ List getBuildMacros(); /** * This is the list of macros used to preprocess Symbian build files (bld.inf & mmp) * @return a list of defines + * @since 3.0 */ List getMetadataMacros(); + /** + * Get a list of macros specific to the given target type, e.g. "__EXE__" or "__DLL__" + * @param targettype + * @return list of macro strings, may be empty + * @since 3.0 + */ + IDefine getTargetTypeMacro(String targettype); + } diff -r 88695467fd04 -r 85755749f4f1 project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/importWizards/ProjectPropertiesPage.java --- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/importWizards/ProjectPropertiesPage.java Wed Aug 11 14:32:13 2010 -0500 +++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/importWizards/ProjectPropertiesPage.java Wed Aug 11 18:16:36 2010 -0500 @@ -16,7 +16,6 @@ */ package com.nokia.carbide.cpp.internal.project.ui.importWizards; -import java.io.File; import java.lang.reflect.InvocationTargetException; import java.util.List; @@ -291,6 +290,10 @@ } public boolean linkedResourcesEnabled(){ + if (linkedResourcesCheck == null){ + return false; + } + return linkedResourcesCheck.getSelection(); }