sbsv2/raptor/python/raptor_meta.py
changeset 641 8dd670a9f34f
parent 630 31ef8a13d4f4
child 674 37ee82a83d43
equal deleted inserted replaced
640:ac0bbc1e5d79 641:8dd670a9f34f
  2597 				self.ApplyOSVariant(buildConfig, epocroot)
  2597 				self.ApplyOSVariant(buildConfig, epocroot)
  2598 			else: # We are ignore OS versions so no detection required, so no variant will be applied
  2598 			else: # We are ignore OS versions so no detection required, so no variant will be applied
  2599 				self.__Raptor.Debug("Automatic OS detection disabled.")
  2599 				self.__Raptor.Debug("Automatic OS detection disabled.")
  2600 
  2600 
  2601 			# is this a feature variant config or an ordinary variant
  2601 			# is this a feature variant config or an ordinary variant
  2602 			fv = evaluator.Get("FEATUREVARIANTNAME")
  2602 			fvn = evaluator.Get("FEATUREVARIANTNAME")
  2603 			if fv:
  2603 			detail['ISFEATUREVARIANT'] = (fvn != None and fvn != '')
  2604 				variantHdr = evaluator.CheckedGet("VARIANT_HRH")
  2604 
       
  2605 			# get the .hrh name from VARIANT_HRH if it is set, otherwise read
       
  2606 			# the name from the contents of the file named in VARIANT_CFG
       
  2607 			variantHdr = evaluator.Get("VARIANT_HRH")
       
  2608 			if variantHdr:
  2605 				variantHRH = generic_path.Path(variantHdr)
  2609 				variantHRH = generic_path.Path(variantHdr)
  2606 				detail['ISFEATUREVARIANT'] = True
       
  2607 			else:
  2610 			else:
  2608 				variantCfg = evaluator.CheckedGet("VARIANT_CFG")
  2611 				variantCfg = evaluator.CheckedGet("VARIANT_CFG")
  2609 				variantCfg = generic_path.Path(variantCfg)
  2612 				variantCfg = generic_path.Path(variantCfg)
  2610 				if not variantCfg in variantCfgs:
  2613 				if not variantCfg in variantCfgs:
  2611 					# get VARIANT_HRH from the variant.cfg file
  2614 					# get VARIANT_HRH from the variant.cfg file
  2614 					# we expect to always build ABIv2
  2617 					# we expect to always build ABIv2
  2615 					if not 'ENABLE_ABIV2_MODE' in varCfg:
  2618 					if not 'ENABLE_ABIV2_MODE' in varCfg:
  2616 						self.__Raptor.Warn("missing flag ENABLE_ABIV2_MODE in %s file. ABIV1 builds are not supported.",
  2619 						self.__Raptor.Warn("missing flag ENABLE_ABIV2_MODE in %s file. ABIV1 builds are not supported.",
  2617 										   str(variantCfg))
  2620 										   str(variantCfg))
  2618 				variantHRH = variantCfgs[variantCfg]
  2621 				variantHRH = variantCfgs[variantCfg]
  2619 				detail['ISFEATUREVARIANT'] = False
       
  2620 
  2622 
  2621 			detail['VARIANT_HRH'] = variantHRH
  2623 			detail['VARIANT_HRH'] = variantHRH
  2622 			self.__Raptor.Info("'%s' uses variant hrh file '%s'", buildConfig.name, variantHRH)
  2624 			self.__Raptor.Info("'%s' uses variant hrh file '%s'", buildConfig.name, variantHRH)
  2623 			detail['SYSTEMINCLUDE'] = evaluator.CheckedGet("SYSTEMINCLUDE")
  2625 			detail['SYSTEMINCLUDE'] = evaluator.CheckedGet("SYSTEMINCLUDE")
  2624             
  2626 
  2625 			detail['TARGET_TYPES'] = evaluator.CheckedGet("TARGET_TYPES")
  2627 			detail['TARGET_TYPES'] = evaluator.CheckedGet("TARGET_TYPES")
  2626 
  2628 
  2627 			# find all the interface names we need
  2629 			# find all the interface names we need
  2628 			ifaceTypes = evaluator.CheckedGet("INTERFACE_TYPES")
  2630 			ifaceTypes = evaluator.CheckedGet("INTERFACE_TYPES")
  2629 			interfaces = ifaceTypes.split()
  2631 			interfaces = ifaceTypes.split()
  2994 
  2996 
  2995 
  2997 
  2996 			destDir = destination.Dir()
  2998 			destDir = destination.Dir()
  2997 			if not destDir.isDir():
  2999 			if not destDir.isDir():
  2998 				os.makedirs(str(destDir))
  3000 				os.makedirs(str(destDir))
  2999 				# preserve permissions
  3001 				shutil.copyfile(source_str, dest_str)
  3000 				shutil.copy(source_str, dest_str)
       
  3001 				return exportwhatlog
  3002 				return exportwhatlog
  3002 
  3003 
  3003 			sourceMTime = 0
  3004 			sourceMTime = 0
  3004 			destMTime = 0
  3005 			destMTime = 0
  3005 			sourceStat = 0
  3006 			sourceStat = 0
  3014 						raise MetaDataError(message)
  3015 						raise MetaDataError(message)
  3015 					else:
  3016 					else:
  3016 						self.__Raptor.Error(message, bldinf=bldInfFile)
  3017 						self.__Raptor.Error(message, bldinf=bldInfFile)
  3017 
  3018 
  3018 			if destMTime == 0 or destMTime < sourceMTime:
  3019 			if destMTime == 0 or destMTime < sourceMTime:
  3019 				# remove old version
       
  3020 				#	- not having ownership prevents chmod
       
  3021 				#	- avoid clobbering the original if it is a hard link
       
  3022 				if os.path.exists(dest_str):
  3020 				if os.path.exists(dest_str):
  3023 					os.unlink(dest_str)
  3021 					os.chmod(dest_str,stat.S_IREAD | stat.S_IWRITE)
  3024 				# preserve permissions
  3022 				shutil.copyfile(source_str, dest_str)
  3025 				shutil.copy(source_str, dest_str)
  3023 
  3026 
  3024 				# Ensure that the destination file remains executable if the source was also:
       
  3025 				os.chmod(dest_str,sourceStat[stat.ST_MODE] | stat.S_IREAD | stat.S_IWRITE | stat.S_IWGRP ) 
  3027 				self.__Raptor.Info("Copied %s to %s", source_str, dest_str)
  3026 				self.__Raptor.Info("Copied %s to %s", source_str, dest_str)
  3028 			else:
  3027 			else:
  3029 				self.__Raptor.Info("Up-to-date: %s", dest_str)
  3028 				self.__Raptor.Info("Up-to-date: %s", dest_str)
  3030 
  3029 
  3031 
  3030