# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"

# We have recipes-* directories, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
            ${LAYERDIR}/recipes-*/*/*.bbappend"

BBFILE_COLLECTIONS += "phosphor-layer"
BBFILE_PATTERN_phosphor-layer = "^${LAYERDIR}/"
LAYERVERSION_phosphor-layer = "1"
LAYERSERIES_COMPAT_phosphor-layer = "thud"

# Provide a variable that points the base of the phosphor layer.
PHOSPHORBASE = '${@os.path.normpath("${LAYERDIR}/")}'

IMAGE_FEATURES[validitems] += "tools-profile"

# Let us add layer-specific bbappends which are only applied when that
# layer is included in our configuration
BBFILES += "${@' '.join('${LAYERDIR}/%s/recipes*/*/*.bbappend' % layer \
               for layer in BBFILE_COLLECTIONS.split())}"
# Add layer-specific bb files too
BBFILES += "${@' '.join('${LAYERDIR}/%s/recipes*/*/*.bb' % layer \
               for layer in BBFILE_COLLECTIONS.split())}"
