[yocto] [PATCH 1/5] scripts/lib/bsp/engine.py: add yocto_layer_create()

Tom Zanussi tom.zanussi at intel.com
Tue Dec 18 08:56:00 PST 2012


On Tue, 2012-12-18 at 11:37 -0500, Philip Balister wrote:
> On 12/18/2012 09:33 AM, Tom Zanussi wrote:
> > On Tue, 2012-12-18 at 09:13 -0500, Philip Balister wrote:
> >> On 12/17/2012 12:51 PM, tom.zanussi at intel.com wrote:
> >>> From: Tom Zanussi <tom.zanussi at intel.com>
> >>>
> >>> Add a new yocto_layer_create() function that will be used to generate
> >>> a generic yocto layer (for the new 'yocto-layer' command).
> >>
> >> How is a "yocto layer" different from an OpenEmbedded layer? If you
> >> insist on "yocto layter", wouldn't "Yocto Project layer" be more accurate.
> >>
> > 
> > Technically it isn't any different, but it's based on the template
> > engine code and templates that make up the 'Yocto BSP Tools', which for
> > various reasons (they create Yocto-compliant BSP layers, something not
> > of interest to OpenEmbedded proper, and it probably doesn't make sense
> > to clutter oe-core with a bunch of 'template data', etc) live in poky
> > and not oe-core.
> 
> Actually, BSP's should work standalone with oe-core, so it is of interest.
> 
> > 
> > As such, the new tool is named 'yocto-layer' to match the other existing
> > Yocto BSP tools, 'yocto-bsp' and 'yocto-kernel'.
> 
> I will now get pedantic. <rday mode on>
> 
> The meta-yocto layer functions as a distro layer. So referring to things
> as yocto this and yocto that, suggests they only work with the
> meta-yocto layer.
> 
> So it doesn't make sense to me to put general purpose tools in a distro
> layer.
> 
> <rday mode off>
> 

Right, none of the yocto- tools has anything to do with the meta-yocto
layer, so if that's how it's taken, then, yeah, it's misleading.

It wouldn't bother me to do a global search and replace of 'yocto' with
'oe' for the tools - I guess that would imply it would all be moving
into oe-core, though.  Is that what you're suggesting?

Tom

> > 
> > Tom
> > 
> > 
> >> One of our goals for next year should be to clean up our terminology to
> >> reduce confusion in the user community.
> >>
> >> Philip
> >>
> >>>
> >>> Signed-off-by: Tom Zanussi <tom.zanussi at intel.com>
> >>> ---
> >>>  scripts/lib/bsp/engine.py | 56 +++++++++++++++++++++++++++++++++++++++++++++++
> >>>  1 file changed, 56 insertions(+)
> >>>
> >>> diff --git a/scripts/lib/bsp/engine.py b/scripts/lib/bsp/engine.py
> >>> index 8985544..d406e79 100644
> >>> --- a/scripts/lib/bsp/engine.py
> >>> +++ b/scripts/lib/bsp/engine.py
> >>> @@ -1352,6 +1352,62 @@ def expand_targets(context, bsp_output_dir):
> >>>      return target_files
> >>>  
> >>>  
> >>> +def yocto_layer_create(layer_name, scripts_path, layer_output_dir, codedump, properties_file):
> >>> +    """
> >>> +    Create yocto layer
> >>> +
> >>> +    layer_name - user-defined layer name
> >>> +    scripts_path - absolute path to yocto /scripts dir
> >>> +    bsp_output_dir - dirname to create for BSP
> >>> +    codedump - dump generated code to bspgen.out
> >>> +    properties_file - use values from here if nonempty i.e no prompting
> >>> +
> >>> +    arch - the arch for a generic layer is 'generic-layer', defined in
> >>> +           scripts/lib/bsp/substrate/target/generic-layer
> >>> +    """
> >>> +    if os.path.exists(bsp_output_dir):
> >>> +        print "\nBSP output dir already exists, exiting. (%s)" % bsp_output_dir
> >>> +        sys.exit(1)
> >>> +
> >>> +    properties = None
> >>> +
> >>> +    if properties_file:
> >>> +        try:
> >>> +            infile = open(properties_file, "r")
> >>> +        except IOError:
> >>> +            print "Couldn't open properties file %s for reading, exiting" % properties_file
> >>> +            sys.exit(1)
> >>> +
> >>> +        properties = json.load(infile)
> >>> +
> >>> +    os.mkdir(bsp_output_dir)
> >>> +
> >>> +    context = create_context(machine, arch, scripts_path)
> >>> +    target_files = expand_targets(context, bsp_output_dir)
> >>> +
> >>> +    input_lines = gather_inputlines(target_files)
> >>> +
> >>> +    program_lines = []
> >>> +
> >>> +    gen_program_header_lines(program_lines)
> >>> +
> >>> +    gen_initial_property_vals(input_lines, program_lines)
> >>> +
> >>> +    if properties:
> >>> +        gen_supplied_property_vals(properties, program_lines)
> >>> +
> >>> +    gen_program_machine_lines(machine, program_lines)
> >>> +
> >>> +    if not properties:
> >>> +        gen_program_input_lines(input_lines, program_lines, context)
> >>> +
> >>> +    gen_program_lines(target_files, program_lines)
> >>> +
> >>> +    run_program_lines(program_lines, codedump)
> >>> +
> >>> +    print "New %s BSP created in %s" % (arch, bsp_output_dir)
> >>> +
> >>> +
> >>>  def yocto_bsp_create(machine, arch, scripts_path, bsp_output_dir, codedump, properties_file):
> >>>      """
> >>>      Create bsp
> >>>
> > 
> > 
> > 
> > 





More information about the yocto mailing list