[yocto] [PATCH 1/5] scripts/lib/bsp/engine.py: add yocto_layer_create()
Tom Zanussi
tom.zanussi at intel.com
Tue Dec 18 06:33:49 PST 2012
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.
As such, the new tool is named 'yocto-layer' to match the other existing
Yocto BSP tools, 'yocto-bsp' and 'yocto-kernel'.
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