Hi Davis, On Tue, 18 Oct 2016 18:37:50 Davis Roman wrote: > I'm a yocto newbie and so I'm becoming familiar with the documentation. > > I came across a bitbake feature that is somewhat confusing to me regarding > the difference between optional/required inclusion versus inheritance. > > As far as optional/required inclusion is concerned, the documentation > states quite clearly that the main difference is that the former will not > issue an error message if the specified file is not found while the latter > will so there is no issue here. > > My issue has to do with the 'inherit' command. Sounds to me like 'include' > and 'require' already do the trick so I'm curious to know what value does > 'inherit' bring ?
The answer is that they are very similar - but tend to be used for slightly different purposes. inherit is for where you have some functionality that you expect to be applicable across a number of recipes, so it should show up in a standard location in a reasonably standard format. The technical differences really stem from that: * Classes must appear in a classes subdirectory somewhere along BBPATH * Classes must be named <something>.bbclass * Classes can use EXPORT_FUNCTIONS so you can still call the original function from your overridden version * It's easy to query from python code whether a recipe inherits a class (and it's something we do in quite a number of places); it's technically possible to do the same for include/require but more difficult include/require are much more generic and applicable for any other kind of shared or encapsulated functionality or configuration that doesn't suit a .bbclass. Note that not all classes are typically inherited from individual recipes with inherit - there are classes that are usually applied globally by adding their names to INHERIT (e.g. buildhistory). Hope that helps. Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre -- _______________________________________________ yocto mailing list [email protected] https://lists.yoctoproject.org/listinfo/yocto
