# HG changeset patch # User fturovic # Date 1244058891 18000 # Node ID bd0210e4c71e833dc57d4cb24101982eaec43318 # Parent 9a882d9560d4e4589b6ac14bfef1070afcae8b0d# Parent e58c537ddd6e4ad695a0662552448ded5cac24aa merge heads diff -r 9a882d9560d4 -r bd0210e4c71e builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/sbsv2.errors.input.txt --- a/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/sbsv2.errors.input.txt Wed Jun 03 14:53:56 2009 -0500 +++ b/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/sbsv2.errors.input.txt Wed Jun 03 14:54:51 2009 -0500 @@ -5,6 +5,9 @@ Making J:/epoc32/build/Cone/makefile.default +Regression for bug 9091. Don't report info lines with SBSv2 error checker +Could not write toolcheck cache: [Errno 2] No such file or directory: u'R:\\\\epoc32\\build\\toolcheck_cache__armv5_udeb.tmp' + Executing 'make -r -f "J:/epoc32/build/Cone/makefile.default" -j 4 DESCRAMBLE="C:/Symbian/SITK/sbs/bin/sbs_descramble.exe sbs2631027042"' diff -r 9a882d9560d4 -r bd0210e4c71e builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/DefaultIncludeFileLocator.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/DefaultIncludeFileLocator.java Wed Jun 03 14:53:56 2009 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/DefaultIncludeFileLocator.java Wed Jun 03 14:54:51 2009 -0500 @@ -72,7 +72,7 @@ } } else if (sbvPlatform != null){ - Map platPaths = sbvPlatform.getBuildIncludePaths(); + LinkedHashMap platPaths = sbvPlatform.getBuildIncludePaths(); Set set = platPaths.keySet(); for (IPath path : set) { String pathType = platPaths.get(path); diff -r 9a882d9560d4 -r bd0210e4c71e 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 Jun 03 14:53:56 2009 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideLanguageData.java Wed Jun 03 14:54:51 2009 -0500 @@ -179,7 +179,7 @@ } else if (sbvPlat != null){ - Map platPaths = sbvPlat.getBuildIncludePaths(); + LinkedHashMap platPaths = sbvPlat.getBuildIncludePaths(); Set set = platPaths.keySet(); for (IPath path : set) { String pathType = platPaths.get(path); diff -r 9a882d9560d4 -r bd0210e4c71e 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 03 14:53:56 2009 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java Wed Jun 03 14:54:51 2009 -0500 @@ -1190,10 +1190,20 @@ // run abld build platform for each component for (IPath path : normalMakMakePaths) { - + + String buildPlatform = ""; + if ( buildConfig.getPlatformString().startsWith(ISymbianBuildContext.ARMV5_PLATFORM) && + EpocEngineHelper.hasFeatureVariantKeyword(buildConfig.getCarbideProject(), path)) { + + buildPlatform = buildConfig.getPlatformString().toLowerCase(); + + } else { + buildPlatform = buildConfig.getBasePlatformForVariation().toLowerCase(); + } + List argsList = new ArrayList(); argsList.add(BUILD_CMD); - argsList.add(buildConfig.getPlatformString().toLowerCase()); + argsList.add(buildPlatform); argsList.add(buildConfig.getTargetString().toLowerCase()); argsList.add(path.removeFileExtension().lastSegment()); @@ -1212,11 +1222,21 @@ // run abld build platform target for each test component for (IPath path : testMakMakePaths) { - + + String buildPlatform = ""; + if ( buildConfig.getPlatformString().startsWith(ISymbianBuildContext.ARMV5_PLATFORM) && + EpocEngineHelper.hasFeatureVariantKeyword(buildConfig.getCarbideProject(), path)) { + + buildPlatform = buildConfig.getPlatformString().toLowerCase(); + + } else { + buildPlatform = buildConfig.getBasePlatformForVariation().toLowerCase(); + } + List argsList = new ArrayList(); argsList.add(TEST_CMD); argsList.add(BUILD_CMD); - argsList.add(buildConfig.getPlatformString().toLowerCase()); + argsList.add(buildPlatform); argsList.add(buildConfig.getTargetString().toLowerCase()); argsList.add(path.removeFileExtension().lastSegment()); @@ -1716,10 +1736,20 @@ // run abld clean/reallyclean for each component for (IPath path : normalMakMakePaths) { - + + String buildPlatform = ""; + if ( buildConfig.getPlatformString().startsWith(ISymbianBuildContext.ARMV5_PLATFORM) && + EpocEngineHelper.hasFeatureVariantKeyword(buildConfig.getCarbideProject(), path)) { + + buildPlatform = buildConfig.getPlatformString().toLowerCase(); + + } else { + buildPlatform = buildConfig.getBasePlatformForVariation().toLowerCase(); + } + List argsList = new ArrayList(); argsList.add(abldCleanCmd); - argsList.add(buildConfig.getPlatformString().toLowerCase()); + argsList.add(buildPlatform); argsList.add(buildConfig.getTargetString().toLowerCase()); argsList.add(path.removeFileExtension().lastSegment()); @@ -1881,10 +1911,20 @@ // run abld freeze for each component for (IPath path : normalMakMakePaths) { - + + String buildPlatform = ""; + if ( buildConfig.getPlatformString().startsWith(ISymbianBuildContext.ARMV5_PLATFORM) && + EpocEngineHelper.hasFeatureVariantKeyword(buildConfig.getCarbideProject(), path)) { + + buildPlatform = buildConfig.getPlatformString().toLowerCase(); + + } else { + buildPlatform = buildConfig.getBasePlatformForVariation().toLowerCase(); + } + List argsList = new ArrayList(); argsList.add(FREEZE_CMD); - argsList.add(buildConfig.getPlatformString().toLowerCase()); + argsList.add(buildPlatform); argsList.add(path.removeFileExtension().lastSegment()); for (String arg : buildConfig.getBuildArgumentsInfo().getAbldFreezeArgs().split(" ")) { @@ -2351,8 +2391,16 @@ abldArgs.add(TEST_CMD); //$NON-NLS-1$ } + String buildPlatform = ""; + if ( config.getPlatformString().startsWith(ISymbianBuildContext.ARMV5_PLATFORM) && + EpocEngineHelper.hasFeatureVariantKeyword(config.getCarbideProject(), componentPath)){ + buildPlatform = config.getPlatformString().toLowerCase(); + } else { + buildPlatform = config.getBasePlatformForVariation().toLowerCase(); + } + abldArgs.add(MAKEFILE_CMD); //$NON-NLS-1$ - abldArgs.add(config.getPlatformString().toLowerCase()); + abldArgs.add(buildPlatform); abldArgs.add(componentPath.removeFileExtension().lastSegment()); for (String arg : config.getBuildArgumentsInfo().getAbldMakefileArgs().split(" ")) { @@ -2780,6 +2828,9 @@ int firstInclude = rcompCmd.indexOf("-I"); int dashU = rcompCmd.lastIndexOf("-u"); int dashO = rcompCmd.lastIndexOf("-o$@"); + if (dashO < 0){ + dashO = rcompCmd.lastIndexOf("-o\"$@\""); + } if (firstInclude < 0 || dashU < 0 || dashO < 0) { throw new CoreException(new Status(IStatus.ERROR, CarbideBuilderPlugin.PLUGIN_ID, 0, "Failed trying to build cpp command", null)); //$NON-NLS-1$ } @@ -2862,7 +2913,7 @@ // cleanup the __PRODUCT_INCLUDE__ macro if necessary macros = macros.replaceFirst("\\\\\"", "\"<" + makefilePath.getDevice()); macros = macros.replaceFirst("\\\\\"", ">\""); - macros = macros.replaceAll("\\\\", "\\\\\\\\"); + macros = macros.replaceAll("\\\\", "/"); newRule = newRule.replaceFirst("-u ", macros); } diff -r 9a882d9560d4 -r bd0210e4c71e builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/error/parsers/SBSv2ErrorParser.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/error/parsers/SBSv2ErrorParser.java Wed Jun 03 14:53:56 2009 -0500 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/error/parsers/SBSv2ErrorParser.java Wed Jun 03 14:54:51 2009 -0500 @@ -26,6 +26,7 @@ private static final Pattern warningPattern = Pattern.compile("(.*)"); //$NON-NLS-1$ private static final Pattern errorPattern = Pattern.compile("(.*)"); //$NON-NLS-1$ + private static final Pattern infoPattern = Pattern.compile("(.*)"); //$NON-NLS-1$ public SBSv2ErrorParser() { } @@ -34,7 +35,11 @@ initialise(); - Matcher matcher = warningPattern.matcher(line); + Matcher matcher = infoPattern.matcher(line); + if (matcher.matches()) { + return true; // just ignore info messages + } + matcher = warningPattern.matcher(line); if (matcher.matches()) { // strip the tags String text = line.substring("".length(), line.length() - "".length()); //$NON-NLS-1$ //$NON-NLS-2$ diff -r 9a882d9560d4 -r bd0210e4c71e core/com.nokia.carbide.cpp.doc.user/plugin.xml --- a/core/com.nokia.carbide.cpp.doc.user/plugin.xml Wed Jun 03 14:53:56 2009 -0500 +++ b/core/com.nokia.carbide.cpp.doc.user/plugin.xml Wed Jun 03 14:54:51 2009 -0500 @@ -50,11 +50,11 @@ category="com.nokia.carbide.trk.cheatsheets" contentFile="html/cheatsheets/install_remote_agent.xml" id="com.nokia.carbide.cpp.doc.user.install_remote_agent" - name="Installing Remote Agents"/> + name="Downloading and Installing Remote Agents"/> @@ -102,32 +102,7 @@ - - - - + --> diff -r 9a882d9560d4 -r bd0210e4c71e core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SBVCatalogTest.java --- a/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SBVCatalogTest.java Wed Jun 03 14:53:56 2009 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SBVCatalogTest.java Wed Jun 03 14:54:51 2009 -0500 @@ -18,8 +18,7 @@ package com.nokia.carbide.cpp.sdk.core.test; import java.net.URL; -import java.util.Map; -import java.util.Set; +import java.util.*; import junit.framework.TestCase; @@ -106,12 +105,38 @@ platform = catalog.findPlatform("wilma88"); assertNull(platform); + } + + /** + * Test the number and order of build include paths + * @throws Exception + */ + public void testBuildIncludePaths() throws Exception { + setupForSDK(new Path("Data/var/group1")); + ISBVPlatform[] platforms = catalog.getPlatforms(); + assertEquals(7, platforms.length); + + ISBVPlatform platform; + // test build include paths platform = catalog.findPlatform("dino79"); assertNotNull(platform); assertEquals(4, platform.getBuildIncludePaths().size()); - Map systemPaths = platform.getBuildIncludePaths(); + LinkedHashMap systemPaths = platform.getBuildIncludePaths(); + + Set pathSet = systemPaths.keySet(); + Object[] paths = pathSet.toArray(); + IPath p; + p = (IPath)paths[0]; + assertTrue("Variant build include Paths possibly in wrong order", p.toPortableString().contains("epoc32/include/config/flintstone500/dino79")); + p = (IPath)paths[1]; + assertTrue("Variant build include Paths possibly in wrong order", p.toPortableString().contains("/epoc32/include/config/flintstone500")); + p = (IPath)paths[2]; + assertTrue("Variant build include Paths possibly in wrong order", p.toPortableString().contains("/epoc32/include/config")); + p = (IPath)paths[3]; + assertTrue("Variant build include Paths possibly in wrong order", p.toPortableString().contains("/epoc32/include")); + Set set = systemPaths.keySet(); for (IPath path : set) { String pathType = systemPaths.get(path); @@ -121,7 +146,8 @@ assertEquals(16, platform.getROMBuildIncludePaths().size()); - } + + } /** * @param built diff -r 9a882d9560d4 -r bd0210e4c71e 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 Wed Jun 03 14:53:56 2009 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SymbianBuildContext.java Wed Jun 03 14:54:51 2009 -0500 @@ -383,7 +383,7 @@ systemPaths.add(path.toFile()); } } else if (sbvPlat != null) { - Map platPaths = sbvPlat.getBuildIncludePaths(); + LinkedHashMap platPaths = sbvPlat.getBuildIncludePaths(); Set set = platPaths.keySet(); for (IPath path : set) { String pathType = platPaths.get(path); diff -r 9a882d9560d4 -r bd0210e4c71e core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBVPlatform.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBVPlatform.java Wed Jun 03 14:53:56 2009 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBVPlatform.java Wed Jun 03 14:54:51 2009 -0500 @@ -197,9 +197,9 @@ } - protected Map getBuildIncludePathsFromParents(){ + protected LinkedHashMap getBuildIncludePathsFromParents(){ - Map parentBuildIncludes = new HashMap(); + LinkedHashMap parentBuildIncludes = new LinkedHashMap(); ISBVPlatform platform = getExtendedVariant(); ISBVPlatform prevPlat; @@ -255,9 +255,9 @@ return sdkIncludePath.toOSString(); } - public Map getBuildIncludePaths(){ + public LinkedHashMap getBuildIncludePaths(){ - Map fullPathMap = new HashMap(); + LinkedHashMap fullPathMap = new LinkedHashMap(); fullPathMap.putAll(systemBuildIncludePaths); fullPathMap.putAll(getBuildIncludePathsFromParents()); @@ -265,8 +265,8 @@ return fullPathMap; } - public Map getROMBuildIncludePaths(){ - Map fullPathMap = new HashMap(); + public LinkedHashMap getROMBuildIncludePaths(){ + LinkedHashMap fullPathMap = new LinkedHashMap(); fullPathMap.putAll(romBuildIncludePaths); fullPathMap.putAll(getROMBuildIncludePathsFromParents()); diff -r 9a882d9560d4 -r bd0210e4c71e core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SymbianSDK.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SymbianSDK.java Wed Jun 03 14:53:56 2009 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SymbianSDK.java Wed Jun 03 14:54:51 2009 -0500 @@ -1156,7 +1156,7 @@ } public boolean isEKA1() { - return !isEKA2(); + return !isEKA2() && getOSVersion().getMajor() < 9 && getOSVersion().getMajor() >= 6; } public boolean isEKA2() { diff -r 9a882d9560d4 -r bd0210e4c71e core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/sdk/core/ISBVPlatform.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/sdk/core/ISBVPlatform.java Wed Jun 03 14:53:56 2009 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/sdk/core/ISBVPlatform.java Wed Jun 03 14:54:51 2009 -0500 @@ -12,12 +12,12 @@ */ package com.nokia.carbide.cpp.sdk.core; -import java.util.List; -import java.util.Map; +import java.util.LinkedHashMap; import org.eclipse.core.runtime.IPath; import com.nokia.carbide.cpp.epoc.engine.EpocEnginePlugin; +import com.nokia.carbide.cpp.epoc.engine.model.sbv.ISBVView; /** * This interface defines a single Symbian Binary Variation (SBV) platform. @@ -81,12 +81,12 @@ * The MAP of BUILD_INCLUDE paths from the variant and all it's parents * @return Map of IPaths and the operation to perform (set, prepend, append) */ - Map getBuildIncludePaths(); + LinkedHashMap getBuildIncludePaths(); /** * The MAP of ROM_INCLUDE paths from the variant and all it's parents * @return list of paths */ - Map getROMBuildIncludePaths(); + LinkedHashMap getROMBuildIncludePaths(); } diff -r 9a882d9560d4 -r bd0210e4c71e core/com.nokia.carbide.cpp/src/com/nokia/carbide/cpp/logging/LoggingPreferencesPage.java --- a/core/com.nokia.carbide.cpp/src/com/nokia/carbide/cpp/logging/LoggingPreferencesPage.java Wed Jun 03 14:53:56 2009 -0500 +++ b/core/com.nokia.carbide.cpp/src/com/nokia/carbide/cpp/logging/LoggingPreferencesPage.java Wed Jun 03 14:54:51 2009 -0500 @@ -18,11 +18,14 @@ import java.io.File; import java.io.IOException; +import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; import org.eclipse.core.filesystem.EFS; import org.eclipse.core.filesystem.IFileStore; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.jface.viewers.CheckStateChangedEvent; @@ -58,6 +61,8 @@ public class LoggingPreferencesPage extends PreferencePage implements IWorkbenchPreferencePage { + public static final String REFRESH_LOG_ITEM = "Refresh Log"; + class TreeContentProvider implements IStructuredContentProvider, ITreeContentProvider { public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } @@ -66,7 +71,10 @@ } public Object[] getElements(Object inputElement) { - return DiagnosticLogManager.getDiagnosticLogManager().getLogGroups(); + Collection elements = new ArrayList(); + elements.addAll(Arrays.asList(DiagnosticLogManager.getDiagnosticLogManager().getLogGroups())); + elements.add(REFRESH_LOG_ITEM); + return elements.toArray(); } public Object[] getChildren(Object parentElement) { @@ -198,6 +206,10 @@ DiagnosticLog log = (DiagnosticLog) element; enableLog(log, event.getChecked()); } + else if (element.equals(REFRESH_LOG_ITEM)) { + String prefId = ResourcesPlugin.PI_RESOURCES + ".refresh.log"; + ResourcesPlugin.getPlugin().getPluginPreferences().setValue(prefId, event.getChecked()); + } updateGroupsCheckedState(); } @@ -228,6 +240,12 @@ logPath.setText(log.getFile().getCanonicalPath()); } catch (IOException e) { e.printStackTrace(); } } + else if (firstElement.equals(REFRESH_LOG_ITEM)) { + IPath path = ResourcesPlugin.getWorkspace().getRoot().getLocation().append("refresh.log"); + try { + logPath.setText(path.toFile().getCanonicalPath()); + } catch (IOException e) {e.printStackTrace(); } + } } } @@ -251,7 +269,15 @@ IDE.openEditorOnFileStore(activePage, fileStore); } catch (PartInitException e) { e.printStackTrace(); } } - } + } + else if (object.equals(REFRESH_LOG_ITEM)) { + IPath path = ResourcesPlugin.getWorkspace().getRoot().getLocation().append("refresh.log"); + File f = path.toFile(); + IFileStore fileStore= EFS.getLocalFileSystem().getStore(Path.fromOSString(f.getAbsolutePath())); + try { + IDE.openEditorOnFileStore(activePage, fileStore); + } catch (PartInitException e) { e.printStackTrace(); } + } } } @@ -272,7 +298,9 @@ checkboxTreeViewer.setChecked(logGroup, allChecked); checkboxTreeViewer.setGrayed(logGroup, anyChecked && !allChecked); } - + String prefId = ResourcesPlugin.PI_RESOURCES + ".refresh.log"; + boolean prefState = ResourcesPlugin.getPlugin().getPluginPreferences().getBoolean(prefId); + checkboxTreeViewer.setChecked(REFRESH_LOG_ITEM, prefState); } protected void mailLogs() { diff -r 9a882d9560d4 -r bd0210e4c71e debuggercdi/com.nokia.cdt.debug.cw.symbian/plugin.xml --- a/debuggercdi/com.nokia.cdt.debug.cw.symbian/plugin.xml Wed Jun 03 14:53:56 2009 -0500 +++ b/debuggercdi/com.nokia.cdt.debug.cw.symbian/plugin.xml Wed Jun 03 14:54:51 2009 -0500 @@ -183,5 +183,21 @@ - + + + + + + + + + + + + + + diff -r 9a882d9560d4 -r bd0210e4c71e debuggercdi/com.nokia.cdt.debug.cw.symbian/src/com/nokia/cdt/debug/cw/symbian/CarbideExecutableImporter.java --- a/debuggercdi/com.nokia.cdt.debug.cw.symbian/src/com/nokia/cdt/debug/cw/symbian/CarbideExecutableImporter.java Wed Jun 03 14:53:56 2009 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* -* Copyright (c) 2009 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.cdt.debug.cw.symbian; - -import org.eclipse.cdt.debug.core.executables.StandardExecutableImporter; -import org.eclipse.core.runtime.IPath; - -public class CarbideExecutableImporter extends StandardExecutableImporter { - - private CarbideExecutablesProvider exeProvider; - - public CarbideExecutableImporter(CarbideExecutablesProvider provider ) { - exeProvider = provider; - } - - @Override - public boolean AllowImport(IPath path) { - if ( super.AllowImport(path) ) - { - return (!exeProvider.executableExists(path)); - } - return false; - } - - public int getPriority(String[] fileNames) { - return HIGH_PRIORITY; - } - -} diff -r 9a882d9560d4 -r bd0210e4c71e debuggercdi/com.nokia.cdt.debug.cw.symbian/src/com/nokia/cdt/debug/cw/symbian/CarbideExecutablesProvider.java --- a/debuggercdi/com.nokia.cdt.debug.cw.symbian/src/com/nokia/cdt/debug/cw/symbian/CarbideExecutablesProvider.java Wed Jun 03 14:53:56 2009 -0500 +++ b/debuggercdi/com.nokia.cdt.debug.cw.symbian/src/com/nokia/cdt/debug/cw/symbian/CarbideExecutablesProvider.java Wed Jun 03 14:54:51 2009 -0500 @@ -21,139 +21,80 @@ import java.util.ArrayList; import java.util.List; +import org.eclipse.cdt.core.CCProjectNature; +import org.eclipse.cdt.core.CProjectNature; import org.eclipse.cdt.debug.core.executables.Executable; -import org.eclipse.cdt.debug.core.executables.ExecutablesManager; -import org.eclipse.cdt.debug.core.executables.StandardExecutableProvider; +import org.eclipse.cdt.debug.core.executables.IProjectExecutablesProvider; import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IWorkspaceRoot; -import org.eclipse.core.resources.ResourcesPlugin; 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.jobs.IJobChangeEvent; -import org.eclipse.core.runtime.jobs.IJobChangeListener; -import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.SubMonitor; import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin; import com.nokia.carbide.cdt.builder.EpocEngineHelper; -import com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration; import com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo; -public class CarbideExecutablesProvider extends StandardExecutableProvider implements IJobChangeListener { +public class CarbideExecutablesProvider implements IProjectExecutablesProvider { - private ArrayList executables = new ArrayList(); - private ArrayList activeExecutables = new ArrayList(); + List supportedNatureIds = new ArrayList(); public CarbideExecutablesProvider() { - super(); - Job.getJobManager().addJobChangeListener(this); - } - - public int getPriority() { - return HIGH_PRIORITY; + supportedNatureIds.add(CProjectNature.C_NATURE_ID); + supportedNatureIds.add(CCProjectNature.CC_NATURE_ID); + supportedNatureIds.add(CarbideBuilderPlugin.CARBIDE_PROJECT_NATURE_ID); + supportedNatureIds.add(CarbideBuilderPlugin.CARBIDE_SBSV2_PROJECT_NATURE_ID); } - - public boolean executableExists(IPath exePath) { - for (Executable executable : executables) { - if (executable.getPath().equals(exePath)) - return true; - } - return false; + + public List getProjectNatures() { + return supportedNatureIds; } - public Executable[] getExecutables(IProgressMonitor monitor) { + public List getExecutables(IProject project, IProgressMonitor monitor) { + List executables = new ArrayList(); - synchronized (executables) { - executables.clear(); - activeExecutables.clear(); - - IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); - IProject[] projects = root.getProjects(); + if (CarbideBuilderPlugin.getBuildManager().isCarbideProject(project)) { + ICarbideProjectInfo cpi = CarbideBuilderPlugin.getBuildManager().getProjectInfo(project); + if (cpi != null) { + List mmps = EpocEngineHelper.getMMPFilesForBuildConfiguration(cpi.getDefaultConfiguration()); - monitor.beginTask("Checking Carbide Projects", projects.length); - - for (IProject project : projects) { - - if (monitor.isCanceled()) - break; + SubMonitor progress = SubMonitor.convert(monitor, mmps.size()); - try { - if (CarbideBuilderPlugin.getBuildManager().isCarbideProject(project)) { - ICarbideProjectInfo cpi = CarbideBuilderPlugin.getBuildManager().getProjectInfo(project); - if (cpi != null) { - ICarbideBuildConfiguration defaultConfig = cpi.getDefaultConfiguration(); - List buildConfigList = cpi.getBuildConfigurations(); - for (ICarbideBuildConfiguration currConfig : buildConfigList) { - if (monitor.isCanceled()) - break; + for (IPath mmp : mmps) { + if (progress.isCanceled()) { + break; + } + + progress.subTask("Parsing " + mmp.lastSegment()); - for (IPath mmp : EpocEngineHelper.getMMPFilesForBuildConfiguration(currConfig)) { - if (monitor.isCanceled()) - break; - - IPath hp = EpocEngineHelper.getHostPathForExecutable(currConfig, mmp); - if (hp != null) { - File hpFile = hp.toFile(); - if (hpFile.exists()) - { - Executable exe = new Executable(new Path(hpFile.getCanonicalPath()), project, null); - executables.add(exe); - if (currConfig == defaultConfig) - activeExecutables.add(exe); - } - } - } + IPath hp = EpocEngineHelper.getHostPathForExecutable(cpi.getDefaultConfiguration(), mmp); + if (hp != null) { + File hpFile = hp.toFile(); + if (hpFile.exists()) { + try { + Executable exe = new Executable(new Path(hpFile.getCanonicalPath()), project, null); + executables.add(exe); + } catch (Exception e) { } } - } - } catch (Exception e) { - e.printStackTrace(); - } - monitor.worked(1); - } - - monitor.done(); - } - return activeExecutables.toArray(new Executable[activeExecutables.size()]); - } - - public void aboutToRun(IJobChangeEvent event) {} - - public void awake(IJobChangeEvent event) {} - - /** - * This is the lower case name of the build job for "Build Target Only". This is used here to avoid - * having a reference to com.nokia.cdt.carbide.builder.utils. - * @see com.nokia.carbide.cdt.build.utils.popup.actions.AbldCommandAction#runAbldActionOnProject(...) - */ - private static final String BUILD_TARGET_ONLY_JOB_NAME_LOWER = "performing targeted build for configuration"; - - /** - * This is the lower case name of the build job for "Build Symbian Component". This is used here to avoid - * having a reference to com.nokia.cdt.carbide.builder.utils. - * @see com.nokia.carbide.cdt.build.utils.popup.actions.AbldCommandAction#doBuildSingleMMPComponent(...) - */ - private static final String BUILD_SYMBIAN_COMPONENT_JOB_NAME_LOWER = "building selected component"; - - private static final String BUILD_ALL_CONFIGURATIONS_JOB_NAME_LOWER = "building all configurations for project"; - - public void done(IJobChangeEvent event) { - - if (event.getJob().belongsTo(ResourcesPlugin.FAMILY_MANUAL_BUILD) || - event.getJob().getName().toLowerCase().startsWith(BUILD_TARGET_ONLY_JOB_NAME_LOWER) || - event.getJob().getName().toLowerCase().startsWith(BUILD_ALL_CONFIGURATIONS_JOB_NAME_LOWER) || - event.getJob().getName().toLowerCase().startsWith(BUILD_SYMBIAN_COMPONENT_JOB_NAME_LOWER)) { - { - ExecutablesManager.getExecutablesManager().scheduleRefresh(this, 1000); + + progress.worked(1); } } } - - public void running(IJobChangeEvent event) {} + + return executables; + } - public void scheduled(IJobChangeEvent event) {} - - public void sleeping(IJobChangeEvent event) {} - + public IStatus removeExecutable(Executable executable, IProgressMonitor monitor) { + try { + executable.getPath().toFile().delete(); + } catch (Exception e) { + return new Status(IStatus.WARNING, SymbianPlugin.PLUGIN_ID, "An error occured trying to delete " + executable.getPath().toOSString()); + } + return Status.OK_STATUS; + } } diff -r 9a882d9560d4 -r bd0210e4c71e debuggercdi/com.nokia.cdt.debug.cw.symbian/src/com/nokia/cdt/debug/cw/symbian/ui/executables/CarbideSourceFilesProvider.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debuggercdi/com.nokia.cdt.debug.cw.symbian/src/com/nokia/cdt/debug/cw/symbian/ui/executables/CarbideSourceFilesProvider.java Wed Jun 03 14:54:51 2009 -0500 @@ -0,0 +1,45 @@ +/* +* Copyright (c) 2009 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.cdt.debug.cw.symbian.ui.executables; + +import java.util.ArrayList; + +import org.eclipse.cdt.debug.core.executables.Executable; +import org.eclipse.cdt.debug.core.executables.ISourceFilesProvider; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.PlatformObject; + +import com.nokia.cdt.debug.cw.symbian.symbolreader.ISymbolFile; +import com.nokia.cdt.debug.cw.symbian.symbolreader.SymbolReaderManager; + +public class CarbideSourceFilesProvider extends PlatformObject implements + ISourceFilesProvider { + + public String[] getSourceFiles(Executable executable, + IProgressMonitor monitor) { + ArrayList sourceFiles = new ArrayList(); + ISymbolFile symFile = SymbolReaderManager.getSymbolReaderManager().openSymbolFile(executable.getPath().toOSString()); + String[] sourceArray = symFile.getSourceFiles(); + symFile.close(); + return sourceArray; + } + + public int getPriority(Executable executable) { + return ISourceFilesProvider.HIGH_PRIORITY; + } + +} diff -r 9a882d9560d4 -r bd0210e4c71e debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/CarbideSourceFilesProvider.java --- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/CarbideSourceFilesProvider.java Wed Jun 03 14:53:56 2009 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* -* Copyright (c) 2009 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.cdt.internal.debug.launch; - -import java.util.ArrayList; - -import org.eclipse.cdt.debug.core.executables.Executable; -import org.eclipse.cdt.debug.core.executables.ISourceFilesProvider; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.PlatformObject; - -import com.nokia.cdt.debug.cw.symbian.symbolreader.ISymbolFile; -import com.nokia.cdt.debug.cw.symbian.symbolreader.SymbolReaderManager; - -public class CarbideSourceFilesProvider extends PlatformObject implements - ISourceFilesProvider { - - public String[] getSourceFiles(Executable executable, - IProgressMonitor monitor) { - ArrayList sourceFiles = new ArrayList(); - ISymbolFile symFile = SymbolReaderManager.getSymbolReaderManager().openSymbolFile(executable.getPath().toOSString()); - String[] sourceArray = symFile.getSourceFiles(); - symFile.close(); - return sourceArray; - } - - public int getPriority(Executable executable) { - return ISourceFilesProvider.HIGH_PRIORITY; - } - -} diff -r 9a882d9560d4 -r bd0210e4c71e debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/LaunchPlugin.java --- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/LaunchPlugin.java Wed Jun 03 14:53:56 2009 -0500 +++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/LaunchPlugin.java Wed Jun 03 14:54:51 2009 -0500 @@ -21,7 +21,6 @@ import org.eclipse.cdt.core.model.*; import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants; import org.eclipse.cdt.debug.core.executables.Executable; -import org.eclipse.cdt.debug.core.executables.ExecutablesManager; import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.*; @@ -46,10 +45,8 @@ import com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo; import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext; import com.nokia.carbide.remoteconnections.RemoteConnectionsActivator; -import com.nokia.carbide.remoteconnections.interfaces.IConnectionTypeProvider; import com.nokia.carbide.remoteconnections.interfaces.IService; import com.nokia.cdt.debug.cw.symbian.*; -import com.nokia.cdt.debug.cw.symbian.ui.executables.SymbianSourceFileRemapping; import com.nokia.cdt.internal.debug.launch.wizard.LaunchCreationWizard; import com.nokia.cpp.internal.api.utils.core.Logging; @@ -435,15 +432,6 @@ @Override public IStatus runInUIThread(IProgressMonitor monitor) { listenForVariablesView(); - - CarbideExecutablesProvider provider = new CarbideExecutablesProvider(); - ExecutablesManager em = ExecutablesManager.getExecutablesManager(); - em.addSourceFileRemapping(new SymbianSourceFileRemapping()); - em.addExecutablesProvider(provider); - em.addExecutableImporter(new CarbideExecutableImporter(provider)); - em.scheduleRefresh(provider, 0); - em.addSourceFilesProvider(new CarbideSourceFilesProvider()); - return Status.OK_STATUS; }}; earlyJob.schedule(); diff -r 9a882d9560d4 -r bd0210e4c71e debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/NokiaAbstractLaunchDelegate.java --- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/NokiaAbstractLaunchDelegate.java Wed Jun 03 14:53:56 2009 -0500 +++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/NokiaAbstractLaunchDelegate.java Wed Jun 03 14:54:51 2009 -0500 @@ -30,7 +30,6 @@ import org.eclipse.cdt.core.model.CModelException; import org.eclipse.cdt.core.model.IBinary; import org.eclipse.cdt.core.model.ICProject; -import org.eclipse.cdt.debug.core.executables.ExecutablesManager; import org.eclipse.cdt.launch.AbstractCLaunchDelegate; import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.core.resources.IProject; @@ -221,7 +220,6 @@ protected IPath[] getOtherExecutables(ICProject project, IPath exePath, ILaunchConfiguration config, IProgressMonitor monitor) throws CModelException { ArrayList targetedBinaries = new ArrayList(); - ExecutablesManager.getExecutablesManager().setRefreshNeeded(true); targetedBinaries.addAll(getBldInfExecutables(project, exePath, config, monitor)); return (IPath[]) targetedBinaries.toArray(new IPath[targetedBinaries .size()]); diff -r 9a882d9560d4 -r bd0210e4c71e debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/ExecutablesTab.java --- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/ExecutablesTab.java Wed Jun 03 14:53:56 2009 -0500 +++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/ExecutablesTab.java Wed Jun 03 14:54:51 2009 -0500 @@ -26,7 +26,6 @@ import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants; import org.eclipse.cdt.debug.core.executables.Executable; import org.eclipse.cdt.debug.core.executables.ExecutablesManager; -import org.eclipse.cdt.debug.core.executables.IExecutablesChangeEvent; import org.eclipse.cdt.debug.core.executables.IExecutablesChangeListener; import org.eclipse.cdt.launch.AbstractCLaunchDelegate; import org.eclipse.cdt.launch.ui.CLaunchConfigurationTab; @@ -124,7 +123,7 @@ public ExecutablesTab(boolean supportsTargetAll) { this.supportsTargetAll = supportsTargetAll; - executablesToTarget = Collections.EMPTY_LIST; // avoid NPE if accessed before filled + executablesToTarget = Collections.emptyList(); // avoid NPE if accessed before filled } /* (non-Javadoc) @@ -401,14 +400,12 @@ try { String launchExeName = AbstractCLaunchDelegate.getProgramName(configuration); if (launchExeName == null) - return Collections.EMPTY_LIST; + return Collections.emptyList(); // ignore 'urel', 'udeb' and 'lib' directories when getting the binaries for the same target // removeLastSegments(2) will strip the filename and 'urel', 'udeb' or 'lib' IPath launchExeTargetPath = new Path(new File(launchExeName).getCanonicalPath()).removeLastSegments(2); - Executable[] exes = ExecutablesManager.getExecutablesManager().getExecutables(); - for (int i = 0; i < exes.length; i++) { - Executable executable = exes[i]; + for (Executable executable : ExecutablesManager.getExecutablesManager().getExecutables()) { IPath exePath = executable.getPath(); if (launchExeTargetPath.isPrefixOf(exePath)) files.add(new ExeFileToDebug(exePath.toOSString(), true)); @@ -447,11 +444,14 @@ getControl().setFocus(); } - public void executablesChanged(IExecutablesChangeEvent event) { - changeTargetingRule(targetingRule); - } - public ILaunchConfiguration getLaunchConfiguration() { return configuration; } + + public void executablesChanged(List executables) { + } + + public void executablesListChanged() { + changeTargetingRule(targetingRule); + } } diff -r 9a882d9560d4 -r bd0210e4c71e project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/cpp/epoc/engine/model/sbv/ESBVFlags.java --- a/project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/cpp/epoc/engine/model/sbv/ESBVFlags.java Wed Jun 03 14:53:56 2009 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -/* -* Copyright (c) 2007-2009 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.cpp.epoc.engine.model.sbv; - -/** - * This enumeration defines all the flags which may appear in the SBV (.var) - * grammar. - * - */ -public enum ESBVFlags { - COMPILEWITHPARENT, - COMPILEALONE, - VIRTUALVARIANT, - VARIANT -} diff -r 9a882d9560d4 -r bd0210e4c71e project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/ExportsPage.java --- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/ExportsPage.java Wed Jun 03 14:53:56 2009 -0500 +++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/ExportsPage.java Wed Jun 03 14:54:51 2009 -0500 @@ -105,4 +105,8 @@ return testExports; } + public String getErrorMesaage() { + return getManagedForm().getForm().getMessage(); + } + } diff -r 9a882d9560d4 -r bd0210e4c71e project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/OverviewPage.java --- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/OverviewPage.java Wed Jun 03 14:53:56 2009 -0500 +++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/OverviewPage.java Wed Jun 03 14:54:51 2009 -0500 @@ -194,4 +194,8 @@ return testMakMakeFiles; } + public String getErrorMesaage() { + return getManagedForm().getForm().getMessage(); + } + } diff -r 9a882d9560d4 -r bd0210e4c71e project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/ExpportsPageTester.java --- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/ExpportsPageTester.java Wed Jun 03 14:53:56 2009 -0500 +++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/ExpportsPageTester.java Wed Jun 03 14:54:51 2009 -0500 @@ -32,6 +32,19 @@ public class ExpportsPageTester { /** + * Retrieves any error message from the Exports page. + * @param page - Exports page provided by caller + * @return error message string if success, null otherwise + */ + public static String getErrorMesaage(FormPage page) { + if (page != null && page instanceof ExportsPage) { + ExportsPage exportsPage = (ExportsPage) page; + return exportsPage.getErrorMesaage(); + } + return null; + } + + /** * Retrieves the Exports section from an Exports page. * @param page - Exports page provided by caller * @return - Exports section if success, null otherwise diff -r 9a882d9560d4 -r bd0210e4c71e project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/OverviewPageTester.java --- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/OverviewPageTester.java Wed Jun 03 14:53:56 2009 -0500 +++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/OverviewPageTester.java Wed Jun 03 14:54:51 2009 -0500 @@ -35,6 +35,19 @@ public class OverviewPageTester { /** + * Retrieves any error message from the Overview page. + * @param page - Overview page provided by caller + * @return error message string if success, null otherwise + */ + public static String getErrorMesaage(FormPage page) { + if (page != null && page instanceof OverviewPage) { + OverviewPage overviewPage = (OverviewPage) page; + return overviewPage.getErrorMesaage(); + } + return null; + } + + /** * Retrieves the "Active Build Configuration" label from the Overview page. * @param page - Overview page provided by caller * @return - label widget if success, null otherwise diff -r 9a882d9560d4 -r bd0210e4c71e project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/LibrariesPage.java --- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/LibrariesPage.java Wed Jun 03 14:53:56 2009 -0500 +++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/LibrariesPage.java Wed Jun 03 14:54:51 2009 -0500 @@ -156,4 +156,8 @@ return debugLibraries; } + public String getErrorMesaage() { + return getManagedForm().getForm().getMessage(); + } + } diff -r 9a882d9560d4 -r bd0210e4c71e project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/OptionsPage.java --- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/OptionsPage.java Wed Jun 03 14:53:56 2009 -0500 +++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/OptionsPage.java Wed Jun 03 14:54:51 2009 -0500 @@ -127,4 +127,8 @@ return kernelSectionPart; } + public String getErrorMesaage() { + return getManagedForm().getForm().getMessage(); + } + } diff -r 9a882d9560d4 -r bd0210e4c71e project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/OverviewPage.java --- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/OverviewPage.java Wed Jun 03 14:53:56 2009 -0500 +++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/OverviewPage.java Wed Jun 03 14:54:51 2009 -0500 @@ -452,5 +452,9 @@ public ImageHyperlink getOptionsHyperlink() { return optionsImageHyperlink; } - + + public String getErrorMesaage() { + return getManagedForm().getForm().getMessage(); + } + } diff -r 9a882d9560d4 -r bd0210e4c71e project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/SourcesPage.java --- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/SourcesPage.java Wed Jun 03 14:53:56 2009 -0500 +++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/SourcesPage.java Wed Jun 03 14:54:51 2009 -0500 @@ -136,4 +136,8 @@ return missingSourcesSectionPart; } + public String getErrorMesaage() { + return getManagedForm().getForm().getMessage(); + } + } diff -r 9a882d9560d4 -r bd0210e4c71e project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/LibrariesPageTester.java --- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/LibrariesPageTester.java Wed Jun 03 14:53:56 2009 -0500 +++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/LibrariesPageTester.java Wed Jun 03 14:54:51 2009 -0500 @@ -32,6 +32,19 @@ public class LibrariesPageTester { /** + * Retrieves any error message from the Libraries page. + * @param page - Libraries page provided by caller + * @return error message string if success, null otherwise + */ + public static String getErrorMesaage(FormPage page) { + if (page != null && page instanceof LibrariesPage) { + LibrariesPage librariesPage = (LibrariesPage) page; + return librariesPage.getErrorMesaage(); + } + return null; + } + + /** * Retrieves the "Libraries" section of the Libraries page. * @param page - Libraries page provided by caller * @return - section part if success, null otherwise diff -r 9a882d9560d4 -r bd0210e4c71e project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/OptionsPageTester.java --- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/OptionsPageTester.java Wed Jun 03 14:53:56 2009 -0500 +++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/OptionsPageTester.java Wed Jun 03 14:54:51 2009 -0500 @@ -37,6 +37,19 @@ public class OptionsPageTester { /** + * Retrieves any error message from the Options page. + * @param page - Options page provided by caller + * @return error message string if success, null otherwise + */ + public static String getErrorMesaage(FormPage page) { + if (page != null && page instanceof OptionsPage) { + OptionsPage optionsPage = (OptionsPage) page; + return optionsPage.getErrorMesaage(); + } + return null; + } + + /** * Retrieves the "Runtime" section of the Options page. * @param page - Options page provided by caller * @return - section part if success, null otherwise diff -r 9a882d9560d4 -r bd0210e4c71e project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/OverviewPageTester.java --- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/OverviewPageTester.java Wed Jun 03 14:53:56 2009 -0500 +++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/OverviewPageTester.java Wed Jun 03 14:54:51 2009 -0500 @@ -32,6 +32,19 @@ public class OverviewPageTester { /** + * Retrieves any error message from the Overview page. + * @param page - Overview page provided by caller + * @return error message string if success, null otherwise + */ + public static String getErrorMesaage(FormPage page) { + if (page != null && page instanceof OverviewPage) { + OverviewPage overviewPage = (OverviewPage) page; + return overviewPage.getErrorMesaage(); + } + return null; + } + + /** * Retrieves the "Active Build Configuration" label of the Overview page. * @param page - Overview page provided by caller * @return - label widget if success, null otherwise diff -r 9a882d9560d4 -r bd0210e4c71e project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/SourcesPageTester.java --- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/SourcesPageTester.java Wed Jun 03 14:53:56 2009 -0500 +++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/SourcesPageTester.java Wed Jun 03 14:54:51 2009 -0500 @@ -35,6 +35,19 @@ public class SourcesPageTester { /** + * Retrieves any error message from the Sources page. + * @param page - Sources page provided by caller + * @return error message string if success, null otherwise + */ + public static String getErrorMesaage(FormPage page) { + if (page != null && page instanceof SourcesPage) { + SourcesPage sourcesPage = (SourcesPage) page; + return sourcesPage.getErrorMesaage(); + } + return null; + } + + /** * Retrieves the "C/C++ Sources" section of the Sources page. * @param page - Overview page provided by caller * @return - section part if success, null otherwise