fix bug 8478 (again, now for symbian foundation structure)
authortimkelly
Mon, 13 Apr 2009 14:53:58 -0500
changeset 87 c606acbe8b76
parent 80 61ef8f7de1aa
child 90 032594a9a391
fix bug 8478 (again, now for symbian foundation structure)
core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/processes/CheckS60CustKitSupport.java
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/processes/CheckS60CustKitSupport.java	Thu Apr 09 14:14:03 2009 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/processes/CheckS60CustKitSupport.java	Mon Apr 13 14:53:58 2009 -0500
@@ -32,8 +32,16 @@
 	
 	private static final String SELECTED_BUILD_CONFIGS_VALUE_KEY = "selectedBuildConfigs"; //$NON-NLS-1$
 	private static final String S60_50_BUILD_MACROS = "S60_50_CustomBuildIncludes";
+	
 	private static final String S60_INC_MACROS = "#include <data_caging_paths.hrh>\n#include <domain/osextensions/platform_paths.hrh>\nMW_LAYER_SYSTEMINCLUDE";
 	private static final String S60_MIDDWARE_INC = "epoc32/include/middleware";
+	
+	private static final String S60_MIDDWARE_INC2 =  "epoc32/include/mw";
+	private static final String S60_INC_MACROS2 = "#include <domain/osextensions/platform_paths.hrh>\nAPP_LAYER_SYSTEMINCLUDE";
+
+	private static final String S60_SF_FOLDER =  "sf";
+	private static final String S60_INC_MACROS_SF = "#include <platform_paths.hrh>\n#include <data_caging_paths.hrh>\nAPP_LAYER_SYSTEMINCLUDE";
+
 	protected IProject project;
 
 	@Override
@@ -66,15 +74,36 @@
 				Check.checkContract(obj instanceof ISymbianBuildContext);
 				ISymbianBuildContext symbianBuildContext = (ISymbianBuildContext)obj;
 				ISymbianSDK sdk = symbianBuildContext.getSDK();
-				if (sdk != null){
+				if (sdk != null) {
 					File middleWareInclude = new File(sdk.getEPOCROOT() + S60_MIDDWARE_INC);
-					// NOTE: Here we need to check the SDK major version becuase the 3.2 CustKit
-					// has the middleware folder but doesn't use the new build macros for include paths
-					if (sdk.getSDKVersion().getMajor() >= 5 && middleWareInclude.exists()){
+					
+					// NOTE: Here we need to check the SDK major version becuase
+					// the 3.2 CustKit
+					// has the middleware folder but doesn't use the new build
+					// macros for include paths
+					if (sdk.getSDKVersion().getMajor() >= 5 && middleWareInclude.exists()) {
 						// add symbol as at least one build config is a CustKit
 						S60_50_Macros_String = S60_INC_MACROS;
 						break;
 					}
+					
+					middleWareInclude = new File(sdk.getEPOCROOT() + S60_MIDDWARE_INC2);
+					File sfoPath = new File(sdk.getEPOCROOT() + S60_SF_FOLDER);
+					// check for middleware paths and /sf path (if SFO kit)
+					if (sdk.getSDKVersion().getMajor() >= 5 && middleWareInclude.exists() && sfoPath.exists()) {
+						// add symbol as at least one build config is a CustKit
+						S60_50_Macros_String = S60_INC_MACROS_SF;
+						break;
+					}
+					
+					// try newer middleware paths moved to app layer includes
+					
+					if (sdk.getSDKVersion().getMajor() >= 5 && middleWareInclude.exists()) {
+						// add symbol as at least one build config is a CustKit
+						S60_50_Macros_String = S60_INC_MACROS2;
+						break;
+					}
+
 				}
 			}
 		}