# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
# We have recipes-* directories, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb"

BBFILE_COLLECTIONS += "core"
BBFILE_PATTERN_core = "^${LAYERDIR}/"
BBFILE_PRIORITY_core = "5"

LAYERSERIES_CORENAMES = "whinlatter"

# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_core = "15"
LAYERSERIES_COMPAT_core = "whinlatter"

BBLAYERS_LAYERINDEX_NAME_core = "openembedded-core"

# Set a variable to get to the top of the metadata location
COREBASE = '${@os.path.normpath("${LAYERDIR}/../")}'

# opkg-utils is for update-alternatives :(
SIGGEN_EXCLUDERECIPES_ABISAFE += " \
  sysvinit-inittab \
  busybox-inittab \
  shadow-securetty \
  opkg-arch-config \
  netbase \
  init-ifupdown \
  connman-conf \
  formfactor \
  xserver-xf86-config \
  pointercal-xinput \
  base-files \
  keymaps \
  udev-extraconf \
  packagegroup-x11-xserver \
  systemd-serialgetty \
  initscripts \
  shadow \
  shadow-sysroot \
  base-passwd \
  opkg-utils \
  gstreamer1.0-meta-base \
  ca-certificates \
  shared-mime-info \
  desktop-file-utils \
  os-release \
"

SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
  *->patch-native \
  *->quilt-native \
  *->subversion-native \
  *->git-native \
  gcc-cross-${TARGET_ARCH}->linux-libc-headers \
  ppp-dialin->ppp \
  resolvconf->bash \
  docbook-xsl-stylesheets->perl \
  ca-certificates->openssl \
  initramfs-framework->${VIRTUAL-RUNTIME_base-utils} \
  initramfs-framework->eudev \
  initramfs-framework->systemd \
  initramfs-module-install-efi->dosfstools \
  initramfs-module-install-efi->e2fsprogs \
  initramfs-module-install-efi->parted \
  initramfs-module-install-efi->util-linux \
  initramfs-module-install->e2fsprogs \
  initramfs-module-install->grub \
  initramfs-module-install->parted \
  initramfs-module-install->util-linux \
  initramfs-module-setup-live->udev-extraconf \
  grub-efi->grub-bootconf \
  liberation-fonts->fontconfig \
  cantarell-fonts->fontconfig \
  ttf-bitstream-vera->fontconfig \
  gnome-icon-theme->librsvg \
  font-alias->font-util \
  systemd-boot->systemd-bootconf \
  systemd->systemd-conf \
  weston->weston-init \
  weston-init->weston \
  weston-init->kbd \
  connman->xl2tpd \
  lttng-tools->lttng-modules \
  sato-icon-theme->gdk-pixbuf \
  sato-icon-theme->gtk+3 \
  adwaita-icon-theme->gdk-pixbuf \
  adwaita-icon-theme->gtk+3 \
  run-postinsts->util-linux \
  cantarell-fonts->qemuwrapper-cross \
  liberation-fonts->qemuwrapper-cross \
  ttf-bitstream-vera->qemuwrapper-cross \
"

# Avoid adding bison-native to the sysroot without a specific
# dependency in the recipe. This means indirect dependencies
# (e.g. X -> Y -> binutils-cross -> bison-native) no longer meet the
# dependency incidentally. This improves determinism and avoids build
# failures when people switch to external toolchains.
# libarchive only needs e2fsprogs headers at buildtime
SSTATE_EXCLUDEDEPS_SYSROOT += "\
    .*->autoconf-native \
    .*->automake-native \
    .*->bison-native \
    .*->meson-native \
    .*->ninja-native \
    .*->patch-native \
    .*->pkgconfig-native \
    .*->quilt-native \
    ^(?!gtk-doc-native).*->xmlto-native \
    .*->gperf-native \
    .*->help2man-native \
    .*->gtk-doc-native \
    .*->texinfo-native \
    .*->perlcross-native \
    libarchive-native->e2fsprogs-native \
"
# rpm-sequoia-native does not need most of its build dependencies to run,
# so omit them. The necessary ones are openssl-native, and implicitly,
# libgcc-native and the C runtime. Omitting these build dependencies can save
# significant disk space and speeds up packaging into signed rpms a little.
SSTATE_EXCLUDEDEPS_SYSROOT += "\
    rpm-sequoia-native->(pkgconfig-native|cargo-native|python3-native|rust-native) \
"
# Nothing needs to depend on libc-initial
# base-passwd/shadow-sysroot don't need their dependencies
SSTATE_EXCLUDEDEPS_SYSROOT += "\
    .*->.*-initial.* \
    .*(base-passwd|shadow-sysroot)->.* \
"
# Avoid adding autoconf-archive-native to sysroot without a specific
# dependency in the recipe.
SSTATE_EXCLUDEDEPS_SYSROOT += ".*->autoconf-archive-native"

# We need to keep bitbake tools in PATH
# Avoid empty path entries
BITBAKEPATH := "${@os.path.dirname(bb.utils.which(d.getVar('PATH'),'bitbake'))}"
PATH := "${@'${BITBAKEPATH}:' if '${BITBAKEPATH}' != '' else ''}${HOSTTOOLS_DIR}"

# Only OE-Core should set/change this
BB_GLOBAL_PYMODULES = "os sys time"

addpylib ${LAYERDIR}/lib oe
