[yocto] [PATCH 1/5] scripts/lib/bsp/engine.py: add yocto_layer_create()
Philip Balister
philip at balister.org
Tue Dec 18 09:32:10 PST 2012
On 12/18/2012 11:56 AM, Tom Zanussi wrote:
> 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?
I am not sure what the best way to clear up terminology is at the
moment, and given it is he week before Christmas, a number of people I
would like to discuss this with are on holiday, so we can defer the
solution until next year.
In the meantime, I have no problem with people getting work done, so I
have no objection to the patch moving forward.
Philip
>
> 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