DISTRO = "dey"
DISTRO_NAME = "Digi Embedded Yocto"
DISTRO_VERSION = "2.6-r2"
DISTRO_CODENAME = "thud"
SDK_VENDOR = "-deysdk"
SDK_VERSION := "${@'${DISTRO_VERSION}'}"

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

TARGET_VENDOR = "-dey"

LOCALCONF_VERSION = "1"

DISTRO_VERSION[vardepsexclude] = "DATE"
SDK_VERSION[vardepsexclude] = "DATE"

# Override these in poky based distros
POKY_DEFAULT_DISTRO_FEATURES = "largefile opengl ptest multiarch wayland bluez5 cellular"
POKY_DEFAULT_EXTRA_RDEPENDS = "packagegroup-dey-core"
POKY_DEFAULT_EXTRA_RRECOMMENDS = ""

DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC} ${POKY_DEFAULT_DISTRO_FEATURES}"

# Removed DISTRO_FEATURES
#   'wayland' -> only supported on the i.MX8 QXP
#   'ptest'   -> fails to build QT5 toolchain
DISTRO_FEATURES_DEFAULT_remove = "3g nfc nfs zeroconf"
POKY_DEFAULT_DISTRO_FEATURES_remove = "ptest wayland"

GRAPHICAL_BACKEND = "${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', \
                        bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'fb', 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-debug = "packagegroup-dey-debug"
FEATURE_PACKAGES_dey-examples = "packagegroup-dey-examples"
FEATURE_PACKAGES_dey-gstreamer = "packagegroup-dey-gstreamer"
FEATURE_PACKAGES_dey-network = "packagegroup-dey-network"
FEATURE_PACKAGES_dey-qt = "packagegroup-dey-qt"
FEATURE_PACKAGES_dey-trustfence = "packagegroup-dey-trustfence"
FEATURE_PACKAGES_dey-wireless = "packagegroup-dey-wireless"

# Use GCC compiler version 7.x to maintain compatibility with
# several packages without support yet like gstreamer-imx plugins
GCCVERSION ?= "7.%"

# 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.50 version should be used, which is provided by the poky layer.
PREFERRED_VERSION_bluez5 ?= "5.50"

# Set the PREFERRED_PROVIDER for jpeg functionality based on the MACHINE
# architecture.  For armv7a devices libjpeg-turbo should be used to take
# advantage of the SIMD instructions.
PREFERRED_PROVIDER_jpeg ?= "jpeg"
PREFERRED_PROVIDER_jpeg_armv7a ?= "libjpeg-turbo"

PREFERRED_VERSION_linux-yocto ?= "4.18%"

# Some features (swupdate, environment encryption) depends on this specific
# provider for u-boot-fw-tools
PREFERRED_PROVIDER_u-boot-fw-utils ?= "u-boot-fw-utils"

# Use git recipe for libsoc
PREFERRED_VERSION_libsoc = "git"

# 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"

SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}"

DISTRO_EXTRA_RDEPENDS += " ${POKY_DEFAULT_EXTRA_RDEPENDS}"
DISTRO_EXTRA_RRECOMMENDS += " ${POKY_DEFAULT_EXTRA_RRECOMMENDS}"

POKYQEMUDEPS = "${@bb.utils.contains("INCOMPATIBLE_LICENSE", "GPL-3.0", "", "packagegroup-core-device-devel",d)}"
DISTRO_EXTRA_RDEPENDS_append_qemuarm = " ${POKYQEMUDEPS}"
DISTRO_EXTRA_RDEPENDS_append_qemuarm64 = " ${POKYQEMUDEPS}"
DISTRO_EXTRA_RDEPENDS_append_qemumips = " ${POKYQEMUDEPS}"
DISTRO_EXTRA_RDEPENDS_append_qemuppc = " ${POKYQEMUDEPS}"
DISTRO_EXTRA_RDEPENDS_append_qemux86 = " ${POKYQEMUDEPS}"
DISTRO_EXTRA_RDEPENDS_append_qemux86-64 = " ${POKYQEMUDEPS}"

TCLIBCAPPEND = ""

QEMU_TARGETS ?= "arm aarch64 i386 mips mipsel mips64 mips64el nios2 ppc x86_64"
# Other QEMU_TARGETS "sh4"

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

PREMIRRORS ??= "\
bzr://.*/.*   http://downloads.yoctoproject.org/mirror/sources/ \n \
cvs://.*/.*   http://downloads.yoctoproject.org/mirror/sources/ \n \
git://.*/.*   http://downloads.yoctoproject.org/mirror/sources/ \n \
gitsm://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
hg://.*/.*    http://downloads.yoctoproject.org/mirror/sources/ \n \
osc://.*/.*   http://downloads.yoctoproject.org/mirror/sources/ \n \
p4://.*/.*    http://downloads.yoctoproject.org/mirror/sources/ \n \
svn://.*/.*   http://downloads.yoctoproject.org/mirror/sources/ \n"

MIRRORS =+ "\
ftp://.*/.*      http://downloads.yoctoproject.org/mirror/sources/ \n \
http://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n \
https://.*/.*    http://downloads.yoctoproject.org/mirror/sources/ \n"

# The CONNECTIVITY_CHECK_URI's are used to test whether we can successfully
# fetch from the network (and warn you if not). To disable the test set
# the variable to be empty.
# Git example url: git://git.yoctoproject.org/yocto-firewall-test;protocol=git;rev=master
CONNECTIVITY_CHECK_URIS ?= "https://www.example.com/"

SANITY_TESTED_DISTROS ?= " \
            poky-2.5 \n \
            poky-2.6 \n \
            ubuntu-16.04 \n \
            ubuntu-18.04 \n \
            fedora-28 \n \
            centos-7 \n \
            debian-8 \n \
            debian-9 \n \
            opensuse-42.3 \n \
            "
#
# OELAYOUT_ABI allows us to notify users when the format of TMPDIR changes in
# an incompatible way. Such changes should usually be detailed in the commit
# that breaks the format and have been previously discussed on the mailing list
# with general agreement from the core team.
#
OELAYOUT_ABI = "12"

# add poky sanity bbclass
INHERIT += "poky-sanity"

# QA check settings - a little stricter than the OE-Core defaults
WARN_TO_ERROR_QA = "already-stripped compile-host-path install-host-path \
                    installed-vs-shipped ldflags pn-overrides rpaths staticdev \
                    unknown-configure-option useless-rpaths"
WARN_QA_remove = "${WARN_TO_ERROR_QA}"
ERROR_QA_append = " ${WARN_TO_ERROR_QA}"

require conf/distro/include/poky-world-exclude.inc
require conf/distro/include/no-static-libs.inc
require conf/distro/include/yocto-uninative.inc
require conf/distro/include/security_flags.inc
INHERIT += "uninative"

# Enable removal of libtool '*.la' files (this is the default starting in 2.3)
INHERIT += "remove-libtool"
