# HG changeset patch # User Jon Chatten # Date 1267027466 0 # Node ID 692d9a4eefc440c70ac9e819c489e01a635087bb # Parent 019dafe54c232457e0417c220325202581467025 Resurrect COMPONENT_NAME and LAYER_NAME output in logs when bld.inf files are gathered from system definition files. Update tests. diff -r 019dafe54c23 -r 692d9a4eefc4 sbsv2/raptor/python/raptor.py --- a/sbsv2/raptor/python/raptor.py Tue Feb 23 16:57:47 2010 +0000 +++ b/sbsv2/raptor/python/raptor.py Wed Feb 24 16:04:26 2010 +0000 @@ -238,7 +238,7 @@ class Component(ModelNode): """A group of projects or, in symbian-speak, a bld.inf. """ - def __init__(self, filename): + def __init__(self, filename, layername="", componentname=""): super(Component,self).__init__(filename) # Assume that components are specified in bld.inf files for now # One day that tyranny might end. @@ -249,21 +249,34 @@ self.exportspecs = [] self.depfiles = [] self.unfurled = False # We can parse this + + # Extra metadata optionally supplied with system definition file gathered components + self.layername = layername + self.componentname = componentname def AddMMP(self, filename): self.children.add(Project(filename)) class Layer(ModelNode): - """ Some components that should be built togther + """ Some components that should be built togther e.g. a Layer in the system definition. + + Components that come from system definition files can + have extra surrounding metadata that we need to pass + on for use in log output. """ def __init__(self, name, componentlist=[]): super(Layer,self).__init__(name) self.name = name for c in componentlist: - self.children.add(Component(c)) + if isinstance(c, raptor_xml.SystemModelComponent): + # this component came from a system_definition.xml + self.children.add(Component(c, c.GetContainerName("layer"), c.GetContainerName("component"))) + else: + # this is a plain old bld.inf file from the command-line + self.children.add(Component(c)) def unfurl(self, build): """Discover the children of this layer. This involves parsing the component MetaData (bld.infs, mmps). diff -r 019dafe54c23 -r 692d9a4eefc4 sbsv2/raptor/python/raptor_meta.py --- a/sbsv2/raptor/python/raptor_meta.py Tue Feb 23 16:57:47 2010 +0000 +++ b/sbsv2/raptor/python/raptor_meta.py Wed Feb 24 16:04:26 2010 +0000 @@ -2686,15 +2686,6 @@ specName = getSpecName(component.bldinf_filename, fullPath=True) - if isinstance(component.bldinf, raptor_xml.SystemModelComponent): - # this component came from a system_definition.xml - layer = component.bldinf.GetContainerName("layer") - componentName = component.bldinf.GetContainerName("component") - else: - # this is a plain old bld.inf file from the command-line - layer = "" - componentName = "" - # exports are independent of build platform for i,ep in enumerate(self.ExportPlatforms): specNode = raptor_data.Specification(name = specName) @@ -2705,8 +2696,8 @@ # add some basic data in a component-wide variant var = raptor_data.Variant(name='component-wide') var.AddOperation(raptor_data.Set("COMPONENT_META", str(component.bldinf_filename))) - var.AddOperation(raptor_data.Set("COMPONENT_NAME", componentName)) - var.AddOperation(raptor_data.Set("COMPONENT_LAYER", layer)) + var.AddOperation(raptor_data.Set("COMPONENT_NAME", component.componentname)) + var.AddOperation(raptor_data.Set("COMPONENT_LAYER", component.layername)) specNode.AddVariant(var) # add this bld.inf Specification to the export platform @@ -2737,8 +2728,8 @@ # add some basic data in a component-wide variant var = raptor_data.Variant(name='component-wide-settings-' + plat) var.AddOperation(raptor_data.Set("COMPONENT_META",str(component.bldinf_filename))) - var.AddOperation(raptor_data.Set("COMPONENT_NAME", componentName)) - var.AddOperation(raptor_data.Set("COMPONENT_LAYER", layer)) + var.AddOperation(raptor_data.Set("COMPONENT_NAME", component.componentname)) + var.AddOperation(raptor_data.Set("COMPONENT_LAYER", component.layername)) var.AddOperation(raptor_data.Set("MODULE", modulename)) var.AddOperation(raptor_data.Append("OUTPUTPATHOFFSET", outputDir, '/')) var.AddOperation(raptor_data.Append("OUTPUTPATH", outputDir, '/')) diff -r 019dafe54c23 -r 692d9a4eefc4 sbsv2/raptor/test/smoke_suite/sysdef_layers.py --- a/sbsv2/raptor/test/smoke_suite/sysdef_layers.py Tue Feb 23 16:57:47 2010 +0000 +++ b/sbsv2/raptor/test/smoke_suite/sysdef_layers.py Wed Feb 24 16:04:26 2010 +0000 @@ -1,5 +1,5 @@ # -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# Copyright (c) 2009-2010 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" @@ -20,11 +20,10 @@ t = SmokeTest() t.id = "48" t.name = "sysdef_layers" - t.description = "Test system_definition.xml layer processing" - t.command = 'sbs -s ' + \ - 'smoke_suite/test_resources/sysdef/system_definition_order_layer_test.xml' + \ - ' -l "Metadata Export" -l "Build Generated Source" -l ' + \ - '"Component with Layer Dependencies" -o' + t.usebash = True + t.description = "Test system_definition.xml layer processing and log reporting" + t.command = 'sbs -f- -s smoke_suite/test_resources/sysdef/system_definition_order_layer_test.xml ' + \ + '-l "Metadata Export" -l "Build Generated Source" -l "Component with Layer Dependencies" -o' t.targets = [ "$(SBS_HOME)/test/smoke_suite/test_resources/sysdef/build_gen_source/exported.inf", "$(SBS_HOME)/test/smoke_suite/test_resources/sysdef/build_gen_source/exported.mmh", @@ -88,5 +87,9 @@ "helloworld_exe/winscw/urel/helloworld_UID_.o", "helloworld_reg_exe/helloworld_reg__private_10003a3f_apps_sc.rpp" ]) + t.countmatch = [ + ["", 43], + ["", 7] + ] t.run() return t