merged
authorwpaul
Mon, 01 Jun 2009 19:31:04 -0500
changeset 195 ab6393bd82aa
parent 194 5dd39ff8dbd0 (current diff)
parent 193 8b34b48b483f (diff)
child 196 e58c537ddd6e
child 199 36350f873c8e
merged
project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/cpp/epoc/engine/model/sbv/ESBVFlags.java
--- a/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/sbsv2.errors.input.txt	Mon Jun 01 19:15:12 2009 -0500
+++ b/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/sbsv2.errors.input.txt	Mon Jun 01 19:31:04 2009 -0500
@@ -5,6 +5,9 @@
 </info>
 <info>Making J:/epoc32/build/Cone/makefile.default</info>
 
+<info>Regression for bug 9091. Don't report info lines with SBSv2 error checker</info>
+<info>Could not write toolcheck cache: [Errno 2] No such file or directory: u'R:\\\\epoc32\\build\\toolcheck_cache__armv5_udeb.tmp'</info>
+
 <info>Executing 'make -r -f "J:/epoc32/build/Cone/makefile.default" -j 4
 DESCRAMBLE="C:/Symbian/SITK/sbs/bin/sbs_descramble.exe sbs2631027042"'</info>
 
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/DefaultIncludeFileLocator.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/DefaultIncludeFileLocator.java	Mon Jun 01 19:31:04 2009 -0500
@@ -72,7 +72,7 @@
 					}
 				} else if (sbvPlatform != null){
 					
-					Map<IPath, String> platPaths = sbvPlatform.getBuildIncludePaths();
+					LinkedHashMap<IPath, String> platPaths = sbvPlatform.getBuildIncludePaths();
 					Set<IPath> set = platPaths.keySet();
 					for (IPath path : set) {
 						String pathType = platPaths.get(path);
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideLanguageData.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideLanguageData.java	Mon Jun 01 19:31:04 2009 -0500
@@ -179,7 +179,7 @@
 		}
 		else if (sbvPlat != null){
 			
-			Map<IPath, String> platPaths = sbvPlat.getBuildIncludePaths();
+			LinkedHashMap<IPath, String> platPaths = sbvPlat.getBuildIncludePaths();
 			Set<IPath> set = platPaths.keySet();
 			for (IPath path : set) {
 				String pathType = platPaths.get(path);
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java	Mon Jun 01 19:31:04 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<String> argsList = new ArrayList<String>();
 				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<String> argsList = new ArrayList<String>();
 				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<String> argsList = new ArrayList<String>();
 				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<String> argsList = new ArrayList<String>();
 				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);
 				}
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/error/parsers/SBSv2ErrorParser.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/error/parsers/SBSv2ErrorParser.java	Mon Jun 01 19:31:04 2009 -0500
@@ -26,6 +26,7 @@
 
 	private static final Pattern warningPattern = Pattern.compile("<warning>(.*)</warning>"); //$NON-NLS-1$
 	private static final Pattern errorPattern = Pattern.compile("<error>(.*)</error>"); //$NON-NLS-1$
+	private static final Pattern infoPattern = Pattern.compile("<info>(.*)</info>"); //$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("<warning>".length(), line.length() - "</warning>".length()); //$NON-NLS-1$ //$NON-NLS-2$
--- a/core/com.nokia.carbide.cpp.doc.user/html/cheatsheets/install_remote_agent.xml	Mon Jun 01 19:15:12 2009 -0500
+++ b/core/com.nokia.carbide.cpp.doc.user/html/cheatsheets/install_remote_agent.xml	Mon Jun 01 19:31:04 2009 -0500
@@ -23,17 +23,17 @@
          href="/com.nokia.carbide.cpp.doc.user/html/reference/trk/wnd_new_conn_install_tab.htm"
          title="Select the appropriate remote agent">
       <description>
-         Choose the remote agent that matches the OS on the target device.
+         In the <b>Install remote agents</b> tab choose the remote agent that matches the OS on the target device.
       </description>
       <subitem
             label="In the remote agents list, select the remote agent that most closely matches the OS on the target device.">
       </subitem>
       <subitem
-            label="Click Save to download and save the remote agent for installation later. This step is optional as the immediate installation step below is recommended."
-            skip="true">
+            label="Click Install to download and immediately install the selected remote agent to the target device.">
       </subitem>
       <subitem
-            label="Click Install to download and immediately install the selected remote agent to the target device.">
+            label="Or, click Save to download and save the remote agent for installation later. This step is optional, clicking Install is recommended."
+            skip="true">
       </subitem>
    </item>
 </cheatsheet>
--- a/core/com.nokia.carbide.cpp.doc.user/html/cheatsheets/new_remote_conn.xml	Mon Jun 01 19:15:12 2009 -0500
+++ b/core/com.nokia.carbide.cpp.doc.user/html/cheatsheets/new_remote_conn.xml	Mon Jun 01 19:31:04 2009 -0500
@@ -12,12 +12,11 @@
       <description>
          Use the <b>New Connections</b> window to create, edit, and manage remote connection settings to enable on-device debugging and the installation of remote agents.
       </description>
-      <command
-            required="false"
-            serialization="org.eclipse.ui.views.showView(org.eclipse.ui.views.showView.makeFast=com.nokia.carbide.remoteconnections.view.ConnectionsView)"/>
+      <subitem
+            label="Cliick Help &gt; On-Device Connections to open the New Connection window.">
+      </subitem>
    </item>
    <item
-         href="/com.nokia.carbide.cpp.doc.user/html/reference/trk/wnd_new_connection_wizard.htm"
          title="Define the remote connection">
       <description>
          Use the <b>Edit connection name and type</b> page to define basic remote connection settings.
@@ -34,20 +33,18 @@
       </subitem>
    </item>
    <item
-         href="/com.nokia.carbide.cpp.doc.user/html/reference/trk/wnd_new_connection_wizard.htm"
          title="Select serial port and device OS">
       <description>
          In the <b>Connection settings</b> page specify the connection settings, the device OS, and verify the presence of a remote agent.
       </description>
       <subitem
-            label="Select the serial port">
+            label="Select the serial port from the available list. A named COM port (COM4 - BthModem0) indicates an active port.">
      </subitem>
       <subitem
-            label="Select the device OS used by the conenction setting">
+            label="Select the OS used by the device from the dropdown list.">
       </subitem>
    </item>
    <item
-         href="/com.nokia.carbide.cpp.doc.user/html/reference/trk/wnd_new_connection_wizard.htm"
          title="Verify connection and presence of remote agent">
       <description>
          Select service to test and click Initiate service testing
@@ -56,13 +53,13 @@
             label="Select a service in the Select the service to test list.">
       </subitem>
       <subitem
-            label="Click Initiate service test to  test connection.">
+            label="Click Initiate service test to test the connection.">
       </subitem>
       <subitem
-            label="Examine Status box for results.">
+            label="Examine Status box for results. Failures indicate that the COM port is not open. Not responding indicates that no service is running on the device.">
       </subitem>
       <subitem
-            label="Click Finish.">
+            label="Click Finish to create the connection setting and have it appear in the Remote Connections view.">
       </subitem>
    </item>
    <item
--- a/core/com.nokia.carbide.cpp.doc.user/html/cheatsheets/run_mode_cs.xml	Mon Jun 01 19:15:12 2009 -0500
+++ b/core/com.nokia.carbide.cpp.doc.user/html/cheatsheets/run_mode_cs.xml	Mon Jun 01 19:31:04 2009 -0500
@@ -1,59 +1,134 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<cheatsheet title="On-device Run Mode Debugging Setup">
-   <intro href="html/tasks/debugger/run_mode_debug.htm">
+<cheatsheet title="Run Mode On-device Debugging">
+   <intro href="/com.nokia.carbide.cpp.doc.user/html/reference/perspective_debug.htm">
       <description>
          Follow these steps to install on-device run mode debug software and compilers, create ROM images, and define launch configurations.
       </description>
    </intro>
    <item
-         dialog="true"
-         href="/com.nokia.carbide.cpp.doc.user/html/tasks/debugger/run_mode_debug.htm"
-         skip="false"
-         title="Install device connection software">
+         href="/com.nokia.carbide.cpp.doc.user/html/reference/trk/wnd_new_connection_wizard.htm"
+         title="Target Side Requirements">
       <description>
-         Choose one of the these methods to install device connection software on your PC to interact with the target device.
+         Before you can perform run-mode debugging on a target device, be sure that your development setup includes the following:
       </description>
-      <subitem label="Using Bluetooth" skip="true">
+      <subitem
+            label="Select or create a connection setting for the target device. See the cheatsheet Creating On-device Connections for details.">
+         <command
+               required="false"
+               serialization="org.eclipse.ui.cheatsheets.openCheatSheet(cheatSheetId=com.nokia.carbide.cpp.doc.user.com.nokia.carbide.cpp.doc.user.new_remote_connection)"/>
       </subitem>
-      <subitem label="Using Nokia PC Suite software" skip="true">
+      <subitem
+            label="Ensure that the latest remote agent is installed on the target device. If not, see the Installing Remote Agents cheatsheet to download and install the latest debugger remote agent."
+            skip="true">
+         <command
+               required="false"
+               serialization="org.eclipse.ui.cheatsheets.openCheatSheet(cheatSheetId=com.nokia.carbide.cpp.doc.user.install_remote_agent)"/>
       </subitem>
    </item>
-   <item title="Install necessary software and configure it" dialog="true" skip="false" href="/com.nokia.carbide.cpp.doc.user/html/tasks/debugger/run_mode_debug.htm">
+   <item title="Host Side Requirements" dialog="true" skip="false" href="/com.nokia.carbide.cpp.doc.user/html/tasks/start/carbide_requirements.htm">
       <description>
          Before you begin stop mode debugging, make sure all preconditions are met.
       </description>
       <subitem
-            label="Install Perl">
+            label="Install or verify that the correct version of Perl () is installed.">
+      </subitem>
+      <subitem label="Install or verify that the correct SDK is installed for the target device." skip="false">
+      </subitem>
+      <subitem label="Verify that the correct environment variables are set for the SDK. Installers normally set these variables, but if you installed the SDK from a ZIP file you may need to add them yourself." skip="true">
+      </subitem>
+      <subitem label="Setup a virtual drive for those kits that require a subst drive to operate correctly." skip="true">
       </subitem>
-      <subitem label="Install an SDK" skip="false">
+   </item>
+   <item
+         href="/com.nokia.carbide.cpp.doc.user/html/tasks/ImportingProjects.html"
+         title="Import Project into Workspace">
+      <description>
+         Import the bld.inf file into the <b>Project Explorer</b> view to create the project.
+      </description>
+      <subitem
+            label="Click File &gt; Import to open the Import wizard.">
+      </subitem>
+      <subitem
+            label="Select the Symbian OS &gt; Symbian OS Bld.inf file option, then click Next.">
+      </subitem>
+      <subitem
+            label="Locate and select the bld.info file to import, and the Builder to use with the project, then click Next.">
       </subitem>
-      <subitem label="Setup environment variables" skip="false">
+      <subitem
+            label="Select the SDK and Build Configurations to create in the project, then click Next.">
+      </subitem>
+      <subitem
+            label="Select which MMPs to import with the project, then click Next.">
+      </subitem>
+      <subitem
+            label="Name the project and set the root directory, then click Finish.">
       </subitem>
-      <subitem label="Setup a virtual drive" skip="false">
+   </item>
+   <item
+         href="/com.nokia.carbide.cpp.doc.user/html/tasks/projects/prj_build.htm"
+         title="Build Project">
+      <description>
+         Once imported its time to build the project to ensure correct any build issue prior to debugging.
+      </description>
+      <subitem
+            label="Click Project &gt; Build Project to compile and link the project.">
+         <command
+               required="false"
+               serialization="org.eclipse.ui.project.buildProject"/>
+      </subitem>
+      <subitem
+            label="Any problems building the project should be cleared up at this stage.">
       </subitem>
    </item>
    <item
-         dialog="true"
-         href="/com.nokia.carbide.cpp.doc.user/html/tasks/debugger/run_mode_debug.htm"
-         skip="false"
-         title="Install the SISX file on the device">
+         href="/com.nokia.carbide.cpp.doc.user/html/tasks/breakpoints/pgm_bp_setting.htm"
+         title="Set Breakpoint in Project">
       <description>
-         Choose one of these methods to install the SISX file on the target device.
+         <b>Body</b>
       </description>
-      <subitem label="Use Bluetooth" skip="true">
+      <subitem
+            label="Open a source file in the project. It should be one you know will be execuated. Event handling routines are excellent for this.">
       </subitem>
-      <subitem label="Use Nokia PC Suite" skip="true">
+      <subitem
+            label="Right-click the source line and select the Enable Breakpoint option. A breakpoing icon appears at the start of the line.">
       </subitem>
    </item>
    <item
-         dialog="true"
-         href="/com.nokia.carbide.cpp.doc.user/html/tasks/debugger/run_mode_debug.htm"
-         skip="false"
-         title="Create a launch configuration">
+         href="/com.nokia.carbide.cpp.doc.user/html/debugger/debug/cmds_starting.htm"
+         title="Launch Project to Debug">
       <description>
-         Body
+         Launch the project in debug mode to define a  launch configuration, download the executable to the target device, and start debugging the program.
       </description>
-      <command serialization="org.eclipse.debug.ui.commands.OpenDebugConfigurations" confirm="false">
-      </command>
+      <subitem
+            label="Click Project &gt; Debug to launch the New Launch Configuration wizard.">
+         <command
+               required="false"
+               serialization="org.eclipse.debug.ui.commands.DebugLast"/>
+      </subitem>
+      <subitem
+            label="Complete the New Launch Configuration wizard, then click Debug.">
+      </subitem>
+      <subitem
+            label="Download executable to target device.">
+      </subitem>
+      <subitem
+            label="Program is launched on target device and control returns to the Carbide debugger.">
+      </subitem>
    </item>
-</cheatsheet>
+   <item
+         href="/com.nokia.carbide.cpp.doc.user/html/debugger/debug/cmds_resuming.htm"
+         title="Resume Debugging Session">
+      <description>
+         Use the <b>Debug</b> perspective to examine variables, breakpoints, memory, assembly code, and other details of the halted program.
+      </description>
+      <subitem
+            label="Set a new breakpoint in the program.">
+      </subitem>
+      <subitem
+            label="Click Resume to restart the program. The program should execute until the new breakpoint is hit, at which time control again returns to the Carbide debugger.">
+      </subitem>
+      <subitem
+            label="Repeat the above steps as necessary to fully debug your program on the device.">
+      </subitem>
+   </item>
+ </cheatsheet>
--- a/core/com.nokia.carbide.cpp.doc.user/plugin.xml	Mon Jun 01 19:15:12 2009 -0500
+++ b/core/com.nokia.carbide.cpp.doc.user/plugin.xml	Mon Jun 01 19:31:04 2009 -0500
@@ -41,23 +41,20 @@
             name="Carbide.c++ On-device Debugging"/>
        
 		 <cheatsheet
-		   composite="true"
 		   category="com.nokia.carbide.trk.cheatsheets"
            contentFile="html/cheatsheets/new_remote_conn.xml"
            id="com.nokia.carbide.cpp.doc.user.new_remote_connection"
            name="Creating On-device Connections"/>
 
 		 <cheatsheet
-		   composite="true"
 		   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"/>
 
 		 <cheatsheet
-		   composite="true"
 		   category="com.nokia.carbide.trk.cheatsheets"
-           contentFile="html/cheatsheets/trk_appTrk_Using_cs.xml"
+           contentFile="html/cheatsheets/run_mode_cs.xml"
            id="com.nokia.carbide.cpp.doc.user.trk_appTRK_Using"
            name="Run Mode On-Device Debugging"/>
 	   
@@ -69,6 +66,7 @@
 
    </extension>
 
+	<!--
    <extension
          point="org.eclipse.ui.cheatsheets.cheatSheetContent">
 		 
@@ -104,32 +102,7 @@
 
 
    </extension>
-
-<!-- TRK cheatsheets extension -->
- <!-- replaced by newer cheatsheet
-   <extension
-         point="org.eclipse.ui.cheatsheets.cheatSheetContent">
-          <category
-            id="com.nokia.carbide.trk.cheatsheets"
-            name="Carbide.c++ On-device Debugging"/>
-
-
-          <cheatsheet
-            category="com.nokia.carbide.trk.cheatsheets"
-            contentFile="html/cheatsheets/trk_setup_cs.xml"
-            id="com.nokia.carbide.cpp.doc.user.trk_setup"
-            name="On-device Debugging Setup" />
-
-	   	  <cheatsheet
-            category="com.nokia.carbide.trk.cheatsheets"
-			composite="true"
-            contentFile="html/cheatsheets/trk_appTrk_Using_cs.xml"
-            id="com.nokia.carbide.cpp.doc.user.trk_appTRK_Using"
-            name="Run Mode On-device Application Debugging" />
-
-	</extension>
-  -->
-
+	-->
 	
 <!-- =================================================================================== -->
 <!-- CONTEXT IDs for CONTEXTUAL HELP in windows, dialogs, and views                      -->
--- a/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SBVCatalogTest.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SBVCatalogTest.java	Mon Jun 01 19:31:04 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<IPath, String> systemPaths = platform.getBuildIncludePaths();
+		LinkedHashMap<IPath, String> systemPaths = platform.getBuildIncludePaths();
+
+		Set<IPath> 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<IPath> set = systemPaths.keySet();
 		for (IPath path : set) {
 			String pathType = systemPaths.get(path);
@@ -121,7 +146,8 @@
 		
 		assertEquals(16, platform.getROMBuildIncludePaths().size());
 		
-	}	
+		
+	}
 	
 	/**
 	 * @param built
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SymbianBuildContext.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SymbianBuildContext.java	Mon Jun 01 19:31:04 2009 -0500
@@ -383,7 +383,7 @@
 							systemPaths.add(path.toFile());
 						}
 					} else if (sbvPlat != null) {
-						Map<IPath, String> platPaths = sbvPlat.getBuildIncludePaths();
+						LinkedHashMap<IPath, String> platPaths = sbvPlat.getBuildIncludePaths();
 						Set<IPath> set = platPaths.keySet();
 						for (IPath path : set) {
 							String pathType = platPaths.get(path);
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBVPlatform.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBVPlatform.java	Mon Jun 01 19:31:04 2009 -0500
@@ -197,9 +197,9 @@
 		
 	}
 	
-	protected Map<IPath, String> getBuildIncludePathsFromParents(){
+	protected LinkedHashMap<IPath, String> getBuildIncludePathsFromParents(){
 		
-		Map<IPath, String> parentBuildIncludes = new HashMap<IPath, String>();
+		LinkedHashMap<IPath, String> parentBuildIncludes = new LinkedHashMap<IPath, String>();
 		
 		ISBVPlatform platform = getExtendedVariant();
 		ISBVPlatform prevPlat;
@@ -255,9 +255,9 @@
 		return sdkIncludePath.toOSString();
 	}
 	
-	public Map<IPath, String> getBuildIncludePaths(){
+	public LinkedHashMap<IPath, String> getBuildIncludePaths(){
 		
-		Map<IPath, String> fullPathMap = new HashMap<IPath, String>();
+		LinkedHashMap<IPath, String> fullPathMap = new LinkedHashMap<IPath, String>();
 		
 		fullPathMap.putAll(systemBuildIncludePaths);
 		fullPathMap.putAll(getBuildIncludePathsFromParents());
@@ -265,8 +265,8 @@
 		return fullPathMap;
 	}
 	
-	public Map<IPath, String> getROMBuildIncludePaths(){
-		Map<IPath, String> fullPathMap = new HashMap<IPath, String>();
+	public LinkedHashMap<IPath, String> getROMBuildIncludePaths(){
+		LinkedHashMap<IPath, String> fullPathMap = new LinkedHashMap<IPath, String>();
 		
 		fullPathMap.putAll(romBuildIncludePaths);
 		fullPathMap.putAll(getROMBuildIncludePathsFromParents());
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SymbianSDK.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SymbianSDK.java	Mon Jun 01 19:31:04 2009 -0500
@@ -1156,7 +1156,7 @@
 	}
 	
 	public boolean isEKA1() {
-		return !isEKA2();
+		return !isEKA2() && getOSVersion().getMajor() < 9 && getOSVersion().getMajor() >= 6;
 	}
 	
 	public boolean isEKA2() {
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/sdk/core/ISBVPlatform.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/sdk/core/ISBVPlatform.java	Mon Jun 01 19:31:04 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<IPath, String> getBuildIncludePaths();
+	LinkedHashMap<IPath, String> getBuildIncludePaths();
 	
 	/**
 	 * The MAP of ROM_INCLUDE paths from the variant and all it's parents
 	 * @return list of paths
 	 */
-	Map<IPath, String> getROMBuildIncludePaths();
+	LinkedHashMap<IPath, String> getROMBuildIncludePaths();
 	
 }
--- a/project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/cpp/epoc/engine/model/sbv/ESBVFlags.java	Mon Jun 01 19:15:12 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
-}
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/ExportsPage.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/ExportsPage.java	Mon Jun 01 19:31:04 2009 -0500
@@ -105,4 +105,8 @@
 		return testExports;
 	}
 
+	public String getErrorMesaage() {
+		return getManagedForm().getForm().getMessage();
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/OverviewPage.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/OverviewPage.java	Mon Jun 01 19:31:04 2009 -0500
@@ -194,4 +194,8 @@
 		return testMakMakeFiles;
 	}
 
+	public String getErrorMesaage() {
+		return getManagedForm().getForm().getMessage();
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/ExpportsPageTester.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/ExpportsPageTester.java	Mon Jun 01 19:31:04 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
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/OverviewPageTester.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/OverviewPageTester.java	Mon Jun 01 19:31:04 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
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/LibrariesPage.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/LibrariesPage.java	Mon Jun 01 19:31:04 2009 -0500
@@ -156,4 +156,8 @@
 		return debugLibraries;
 	}
 
+	public String getErrorMesaage() {
+		return getManagedForm().getForm().getMessage();
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/OptionsPage.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/OptionsPage.java	Mon Jun 01 19:31:04 2009 -0500
@@ -127,4 +127,8 @@
 		return kernelSectionPart;
 	}
 
+	public String getErrorMesaage() {
+		return getManagedForm().getForm().getMessage();
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/OverviewPage.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/OverviewPage.java	Mon Jun 01 19:31:04 2009 -0500
@@ -452,5 +452,9 @@
 	public ImageHyperlink getOptionsHyperlink() {
 		return optionsImageHyperlink;
 	}
-	
+
+	public String getErrorMesaage() {
+		return getManagedForm().getForm().getMessage();
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/SourcesPage.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/SourcesPage.java	Mon Jun 01 19:31:04 2009 -0500
@@ -136,4 +136,8 @@
 		return missingSourcesSectionPart;
 	}
 
+	public String getErrorMesaage() {
+		return getManagedForm().getForm().getMessage();
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/LibrariesPageTester.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/LibrariesPageTester.java	Mon Jun 01 19:31:04 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
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/OptionsPageTester.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/OptionsPageTester.java	Mon Jun 01 19:31:04 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
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/OverviewPageTester.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/OverviewPageTester.java	Mon Jun 01 19:31:04 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
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/SourcesPageTester.java	Mon Jun 01 19:15:12 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/SourcesPageTester.java	Mon Jun 01 19:31:04 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