core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/BuildContextSBSv2.java
branchC3_BUILDER_WORK
changeset 1643 3fb715ff2227
parent 1621 393b985a50f3
child 1644 2db4594b310f
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/BuildContextSBSv2.java	Thu Jul 15 23:28:04 2010 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/BuildContextSBSv2.java	Mon Jul 19 21:06:20 2010 -0500
@@ -27,7 +27,7 @@
 import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils;
 
 public class BuildContextSBSv2 implements ISBSv2BuildContext {
-	
+
 	private String platform;
 	private String target;
 	private String sbsv2Alias;
@@ -261,7 +261,8 @@
 	}
 	
 	private void setPlatformAndTargetFromOutputPath() {
-		if (configQueryData.getOutputPathString() == null) {
+		String pathString = configQueryData.getOutputPathString();
+		if (pathString == null || pathString.length() == 0) {
 			platform = "";
 			target = "";
 			return;
@@ -305,7 +306,33 @@
 		return configQueryData;
 	}
 
+	@Override
 	public ISBSv2ConfigQueryData getConfigQueryData() {
 		return configQueryData;
 	}
+
+	@Override
+	public String getToolChain() {
+		Map<String, String> buildMacros = configQueryData.getBuildMacros();
+		if (buildMacros != null) {
+			// try to figure out the tool chain using macros from Raptor config query
+			if (buildMacros.containsKey(MACRO_ARM)) {
+				return TOOLCHAIN_ARM;
+			} else if (buildMacros.containsKey(MACRO_GCCE)) {
+				return TOOLCHAIN_GCCE;
+			} else if (buildMacros.containsKey(MACRO_WINSCW)) {
+				return TOOLCHAIN_WINSCW;
+			}
+		} else {
+			// if no macros available, use alais name instead
+			if (sbsv2Alias.toUpperCase().contains(TOOLCHAIN_ARM)) {
+				return TOOLCHAIN_ARM;
+			} else if (sbsv2Alias.toUpperCase().contains(TOOLCHAIN_GCCE)) {
+				return TOOLCHAIN_GCCE;
+			} else if (sbsv2Alias.toUpperCase().contains(TOOLCHAIN_WINSCW)) {
+				return TOOLCHAIN_WINSCW;
+			}
+		}
+		return TOOLCHAIN_UNKNOWN;
+	}
 }