#!/bin/sh ############################################################################# ## ## Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ## ## This file is part of the Qt Enterprise Embedded Scripts of the Qt ## framework. ## ## $QT_BEGIN_LICENSE$ ## Commercial License Usage Only ## Licensees holding valid commercial Qt license agreements with Digia ## with an appropriate addendum covering the Qt Enterprise Embedded Scripts, ## may use this file in accordance with the terms contained in said license ## agreement. ## ## For further information use the contact form at ## http://www.qt.io/contact-us. ## ## ## $QT_END_LICENSE$ ## ############################################################################# set -e usage() { echo "Usage: $(basename $0) COMMAND [ARGS]" echo echo "Initialize build environment:" echo " $(basename $0) init --device [--reference ]" echo "Initialize local mirror:" echo " $(basename $0) mirror" echo "List available devices:" echo " $(basename $0) list-devices" } while test -n "$1"; do case "$1" in "help" | "--help" | "-h") usage exit 0 ;; "--reference" | "-r") shift REFERENCE=$1 ;; "--device" | "-d") shift DEVICE=$1 ;; *) if [ -n "$COMMAND" ]; then echo "Unknown argument: $1" usage exit 1 fi COMMAND=$1 ;; esac shift done if [ -z "${COMMAND}" ]; then usage exit 1 fi DIR=$(readlink -f $(dirname $0)) if [ -n "${REFERENCE}" ]; then REFERENCE="--reference $(readlink -f ${REFERENCE})" fi get_repo() { REPO="./repo" if [ -n "$(command -v repo)" ]; then REPO="repo" elif [ ! -x "./repo" ]; then curl -s https://storage.googleapis.com/git-repo-downloads/repo > "./repo" chmod +x ./repo fi } get_groups() { case ${DEVICE} in all) PROJECT_GROUPS="all" ;; apalis-imx6|colibri-vf) PROJECT_GROUPS="toradex" ;; imx53qsb|imx6qsabresd|imx6dlsabresd|nitrogen6x) PROJECT_GROUPS="fsl" ;; tibidabo) PROJECT_GROUPS="architech" ;; beagleboard|am335x-evm) PROJECT_GROUPS="ti" ;; beaglebone) PROJECT_GROUPS="bbb" ;; raspberrypi) PROJECT_GROUPS="rpi" ;; emulator) PROJECT_GROUPS="emulator" ;; *) echo "Unknown device configuration, including all meta layers" PROJECT_GROUPS="all" ;; esac PROJECT_GROUPS="${PROJECT_GROUPS} default" } list_devices() { echo "Available device configurations:" for device in $(ls $DIR/conf/distro/include/*.conf); do echo " $(basename ${device%%.conf})" done } mirror() { mkdir -p .repo/manifests cp ${DIR}/scripts/manifest.xml .repo/manifests/ MANIFEST="manifest.xml" ${REPO} init -u ${PWD}/.repo/repo -b default -m ${MANIFEST} -g all --mirror ${REPO} sync } patch_poky() { cd sources/poky found=$(git rev-list --grep="bitbake: cooker: add support for using % as a wildcard in bbappend filename" HEAD) if [ -z "$found" ]; then git cherry-pick 381d5920188398bc53b2454843054c8690bca243 > /dev/null fi found=$(git rev-list --grep="bitbake: cooker: Fix support for wildcards in bbappend filenames" HEAD) if [ -z "$found" ]; then git cherry-pick f91a3f46a1ee586e330be0868e8fbc4d2e78d361 > /dev/null fi cd - } init() { if [ -z "${DEVICE}" ]; then echo "device not defined" usage exit 1 fi get_groups mkdir -p .repo/manifests cp ${DIR}/scripts/manifest*.xml .repo/manifests if [ -f .repo/manifests/manifest_${DEVICE}.xml ]; then MANIFEST="manifest_${DEVICE}.xml" else MANIFEST="manifest.xml" fi ${REPO} init -u ${PWD}/.repo/repo -b default -m ${MANIFEST} -g "${PROJECT_GROUPS}" ${REFERENCE} ${REPO} sync patch_poky if [ ! -e "sources/meta-b2qt" ]; then ln -s ${DIR} sources/meta-b2qt fi cp ${DIR}/scripts/setup-environment.sh . } get_repo case "$COMMAND" in "init") init ;; "mirror") mirror ;; "list-devices") list_devices ;; *) echo "Unknown command" usage exit 1 ;; esac