require conf/distro/poky.conf

# Discrete version values.
YOCTO_MAJOR = "4"
YOCTO_MINOR = "0"
DEY_RELEASE = "5"
DEY_BUILD = "1"

# Firmware version of the system.
DEY_FIRMWARE_VERSION ?= "${YOCTO_MAJOR}.${YOCTO_MINOR}.${DEY_RELEASE}.${DEY_BUILD}"

# Distribution info.
DISTRO = "dey"
DISTRO_NAME = "Digi Embedded Yocto"
DISTRO_VERSION = "${YOCTO_MAJOR}.${YOCTO_MINOR}-r${DEY_RELEASE}"

SDK_VENDOR = "-deysdk"

MAINTAINER = "Digi Support <tech.support@digi.com>"

TARGET_VENDOR = "-dey"

POKY_DEFAULT_EXTRA_RDEPENDS = "packagegroup-dey-core"
POKY_DEFAULT_EXTRA_RRECOMMENDS = ""

#
# Rework distro features for DEY distribution
#
MACHINE_DISTRO_FEATURES_ADD ?= ""
MACHINE_DISTRO_FEATURES_REMOVE ?= ""
DISTRO_FEATURES:append = " cellular gstreamer pam ${MACHINE_DISTRO_FEATURES_ADD}"
DISTRO_FEATURES:remove = "3g nfc nfs ptest zeroconf ${MACHINE_DISTRO_FEATURES_REMOVE}"

GRAPHICAL_BACKEND = "${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', \
                        bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \
                        bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', 'fb', d), d), d)}"

# Recovery initramfs image name.
RECOVERY_INITRAMFS_IMAGE ?= "dey-image-recovery-initramfs"

# DEY image features (alphabetical order)
FEATURE_PACKAGES_dey-audio = "packagegroup-dey-audio"
FEATURE_PACKAGES_dey-bluetooth = "packagegroup-dey-bluetooth"
FEATURE_PACKAGES_dey-crank = "packagegroup-dey-crank"
FEATURE_PACKAGES_dey-debug = "packagegroup-dey-debug"
FEATURE_PACKAGES_dey-examples = "packagegroup-dey-examples"
FEATURE_PACKAGES_dey-gstreamer = "packagegroup-dey-gstreamer"
FEATURE_PACKAGES_dey-lvgl = "packagegroup-dey-lvgl"
FEATURE_PACKAGES_dey-network = "packagegroup-dey-network"
FEATURE_PACKAGES_dey-qt = "packagegroup-dey-qt"
FEATURE_PACKAGES_dey-trustfence = "packagegroup-dey-trustfence"
FEATURE_PACKAGES_dey-webkit = "packagegroup-dey-webkit"
FEATURE_PACKAGES_dey-wireless = "packagegroup-dey-wireless"

# Our layer only provides version 5.41, which we want to keep because
# it was used for Bluetooth certification. However by default the newer
# 5.65 version should be used, which is provided by the poky layer.
PREFERRED_VERSION_bluez5 ?= "5.65"

# The latest available versions of swupdate and libubootenv are 2023.12 and
# 0.3.5, respectively. However, our custom patches haven't been ported or
# tested for these versions yet, so until then, continue using the versions
# we've been using in DEY 4.0 (2023.05 and 0.3.2) to guarantee stability.
PREFERRED_VERSION_swupdate ?= "2023.05"
PREFERRED_VERSION_libubootenv ?= "0.3.2"

# There's a generic opencl-headers recipe in the thud branch of
# meta-openembedded, but we should use the package provided by the imx-gpu-viv
# recipe in case there are NXP-specific changes in it
PREFERRED_PROVIDER_opencl-headers ?= "imx-gpu-viv"

# Use the FDO backend for WPE WebKit
PREFERRED_PROVIDER_virtual/wpebackend = "wpebackend-fdo"

SDKPATHINSTALL = "/opt/${DISTRO}/${SDK_VERSION}/${MACHINE}"

# Some packages need this (e.g. gstreamer1.0-plugins-ugly)
LICENSE_FLAGS_ACCEPTED += "commercial"

# Use systemd init manager by default
INIT_MANAGER ?= "systemd"

# Enable examples for some QT packages
PACKAGECONFIG:append:class-target:pn-qtbase        = " examples"
PACKAGECONFIG:append:class-target:pn-qtdeclarative = " examples"
PACKAGECONFIG:append:class-target:pn-qtquick3d     = " examples"
PACKAGECONFIG:append:class-target:pn-qtwebengine   = " examples"
# libarchive is using "zstd" in its package config.
# This is not used in the swupdate that is the only consumer of the libarchive package.
# Remove it to reduce the size of the recovery image.
PACKAGECONFIG:remove:class-target:pn-libarchive   = " zstd"
