blob: fac91cfc3cfe58183dcaa396e32bceb5d5312bfe [file] [log] [blame]
DESCRIPTION = "SDK type target for building a standalone tarball containing python3, chrpath, make, git and tar. The \
tarball can be used to run bitbake builds on systems which don't meet the usual version requirements."
SUMMARY = "Standalone tarball for running builds on systems with inadequate software"
LICENSE = "MIT"
TOOLCHAIN_TARGET_TASK ?= ""
TOOLCHAIN_HOST_TASK ?= "\
nativesdk-sdk-provides-dummy \
nativesdk-python3-core \
nativesdk-python3-modules \
nativesdk-python3-misc \
nativesdk-python3-git \
nativesdk-python3-jinja2 \
nativesdk-python3-testtools \
nativesdk-python3-subunit \
nativesdk-ncurses-terminfo-base \
nativesdk-chrpath \
nativesdk-tar \
nativesdk-buildtools-perl-dummy \
nativesdk-git \
nativesdk-git-perltools \
nativesdk-pigz \
nativesdk-make \
nativesdk-wget \
nativesdk-ca-certificates \
nativesdk-texinfo \
nativesdk-libnss-nis \
nativesdk-rpcsvc-proto \
nativesdk-patch \
nativesdk-mtools \
nativesdk-zstd \
nativesdk-lz4 \
"
MULTIMACH_TARGET_SYS = "${SDK_ARCH}-nativesdk${SDK_VENDOR}-${SDK_OS}"
PACKAGE_ARCH = "${SDK_ARCH}_${SDK_OS}"
PACKAGE_ARCHS = ""
TARGET_ARCH = "none"
TARGET_OS = "none"
SDK_PACKAGE_ARCHS += "buildtools-dummy-${SDKPKGSUFFIX}"
TOOLCHAIN_OUTPUTNAME ?= "${SDK_ARCH}-buildtools-nativesdk-standalone-${DISTRO_VERSION}"
SDK_TITLE = "Build tools"
RDEPENDS = "${TOOLCHAIN_HOST_TASK}"
EXCLUDE_FROM_WORLD = "1"
inherit populate_sdk
inherit toolchain-scripts-base
inherit nopackages
deltask install
deltask populate_sysroot
do_populate_sdk[stamp-extra-info] = "${PACKAGE_ARCH}"
REAL_MULTIMACH_TARGET_SYS = "none"
create_sdk_files:append () {
rm -f ${SDK_OUTPUT}/${SDKPATH}/site-config-*
rm -f ${SDK_OUTPUT}/${SDKPATH}/environment-setup-*
rm -f ${SDK_OUTPUT}/${SDKPATH}/version-*
# Generate new (mini) sdk-environment-setup file
script=${1:-${SDK_OUTPUT}/${SDKPATH}/environment-setup-${SDK_SYS}}
touch $script
echo 'export PATH=${SDKPATHNATIVE}${bindir_nativesdk}:${SDKPATHNATIVE}${sbindir_nativesdk}:${SDKPATHNATIVE}${base_bindir_nativesdk}:${SDKPATHNATIVE}${base_sbindir_nativesdk}:$PATH' >> $script
echo 'export OECORE_NATIVE_SYSROOT="${SDKPATHNATIVE}"' >> $script
echo 'export GIT_SSL_CAINFO="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script
echo 'export SSL_CERT_FILE="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script
toolchain_create_sdk_version ${SDK_OUTPUT}/${SDKPATH}/version-${SDK_SYS}
cat >> $script <<EOF
if [ -d "\$OECORE_NATIVE_SYSROOT/environment-setup.d" ]; then
for envfile in \$OECORE_NATIVE_SYSROOT/environment-setup.d/*.sh; do
. \$envfile
done
fi
# We have to unset this else it can confuse oe-selftest and other tools
# which may also use the overlapping namespace.
unset OECORE_NATIVE_SYSROOT
EOF
if [ "${SDKMACHINE}" = "i686" ]; then
echo 'export NO32LIBS="0"' >>$script
echo 'echo "$BB_ENV_PASSTHROUGH_ADDITIONS" | grep -q "NO32LIBS"' >>$script
echo '[ $? != 0 ] && export BB_ENV_PASSTHROUGH_ADDITIONS="NO32LIBS $BB_ENV_PASSTHROUGH_ADDITIONS"' >>$script
fi
}
# buildtools-tarball doesn't need config site
TOOLCHAIN_NEED_CONFIGSITE_CACHE = ""
# The recipe doesn't need any default deps
INHIBIT_DEFAULT_DEPS = "1"
# Directory in testsdk that contains testcases
TESTSDK_CASES = "buildtools-cases"
python do_testsdk() {
import oeqa.sdk.testsdk
testsdk = oeqa.sdk.testsdk.TestSDK()
cases_path = os.path.join(os.path.abspath(os.path.dirname(oeqa.sdk.testsdk.__file__)), d.getVar("TESTSDK_CASES"))
testsdk.context_executor_class.default_cases = cases_path
testsdk.run(d)
}
addtask testsdk
do_testsdk[nostamp] = "1"
do_testsdk[network] = "1"
do_testsdk[depends] += "xz-native:do_populate_sysroot"