sbsv2/raptor/python/raptor_xml.py
changeset 625 a1925fb7753a
parent 616 24e4ef208cca
child 674 37ee82a83d43
--- a/sbsv2/raptor/python/raptor_xml.py	Wed Jul 28 13:20:46 2010 +0100
+++ b/sbsv2/raptor/python/raptor_xml.py	Thu Aug 12 09:00:16 2010 +0100
@@ -336,10 +336,10 @@
 				aContainers[parent.tagName] = name
 
 			self.__GetElementContainers(parent, aContainers)
-	
+
 	def __ProcessSystemModelMetaElement(self, aElement):
 		# stub method - may deal with metadata elements at some point in the future
-		return	
+		return
 
 	def __ProcessSystemModelElement(self, aElement):
 		"""Search for XML <unit/> elements with 'bldFile' attributes and resolve concrete bld.inf locations
@@ -353,7 +353,7 @@
 		# The effective "layer" is the item whose parent does not have an id (or name in 2.x and earlier)
 		if not aElement.parentNode.hasAttribute(self.__IdAttribute) :
 			currentLayer = aElement.getAttribute(self.__IdAttribute)
-			
+
 			if not self.__LayerDetails.has_key(currentLayer):
 				self.__LayerDetails[currentLayer] = []
 
@@ -389,8 +389,12 @@
 					if not group.isAbsolute() and bldInfRoot:
 						group = generic_path.Join(bldInfRoot, group)
 				else:
-					# all paths are changed by root var in 3.x
-					if bldInfRoot:
+					# relative paths for v3
+					if not group.isAbsolute():
+						group = generic_path.Join(generic_path.Join(self.__SystemDefinitionFile).Dir(),group)
+					# absolute paths for v3
+					# are relative to bldInfRoot if set, or relative to the drive root otherwise
+					elif bldInfRoot:
 						group = generic_path.Join(bldInfRoot, group)
 
 				bldinf = generic_path.Join(group, "bld.inf").FindCaseless()