\subsection{Using BSP layers}

\begin{frame}[fragile]
\frametitle{folder layout}
\begin{verbatim}
meta-mylayer
+ conf
|  + layer.conf
+ classes
|  + class1.bbclass
|  + class2.bbclass
+ recipes-category1
|  + package-1
|      + package-1.bb
|  + package-2
|      + package-2.bb
+ recipes-category2
| ..
\end{verbatim}
\end{frame}

\begin{frame}[fragile]
\frametitle{meta-*/conf/layer.conf}
each layer needs a configuration file
\begin{itemize}
\item add conf and class directories to BBPATH
\begin{verbatim}BBPATH =. "${LAYERDIR}"\end{verbatim}
\item add recipe directories to BBFILES
\begin{verbatim}BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
        ${LAYERDIR}/recipes-*/*/*.bbappend"\end{verbatim}
\item add layer name to BBFILE\_COLLECTIONS
\begin{verbatim}BBFILE_COLLECTIONS += "mylayer"\end{verbatim}
\item set root of the layer
\begin{verbatim}BBFILE_PATTERN_mylayer = "^${LAYERDIR}/"\end{verbatim}
\item set default priority of the layer
\begin{verbatim}BBFILE_PRIORITY_mylayer = "5"\end{verbatim}
\item set version of layer (only increment if dependencies with other
        layers are affected)
\begin{verbatim}LAYERVERSION_mylayer = "2"\end{verbatim}
\item set dependencies to other layers
\begin{verbatim}LAYERDEPENDS_mylayer = "meta-yocto"\end{verbatim}
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{bitbake-layers}
is useful to debug relations between different layers, options are:
\begin{description}
\item [show-layers] shows the current configured layers
\item [show-recipes] lists available recipes and the layers that provide them.
\item [show-overlayed] lists overlayed recipes
\item [show-appends] lists .bbappend files
        and the recipe files to which they apply
\item [show-cross-depends] lists dependency relationships
        between recipes that cross layer boundaries
\item [flatten] flattens the layer configuration
        into a separate output directory.
\end{description}
\end{frame}

\begin{frame}
\frametitle{definitions}
\begin{itemize}
\item It is possible for a recipe with a lower version number PV in a layer
that has a higher priority to take precedence.
\item Also, the layer priority does not currently affect the precedence
order of .conf or .bbclass files. Future versions of BitBake might address this.
\end{itemize}
\end{frame}
