From patchwork Fri Jul 25 10:27:54 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: christian.braunersorensen@prevas.dk X-Patchwork-Id: 373646 X-Patchwork-Delegate: chbs@prevas.dk Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from hugin.dotsrc.org (hugin.dotsrc.org [IPv6:2001:878:346::102]) by ozlabs.org (Postfix) with ESMTP id 5A7B21400D2 for ; Fri, 25 Jul 2014 20:27:58 +1000 (EST) Received: from hugin.dotsrc.org (localhost [127.0.0.1]) by hugin.dotsrc.org (Postfix) with ESMTP id D087B3FB51 for ; Fri, 25 Jul 2014 12:27:56 +0200 (CEST) X-Original-To: dev@oe-lite.org Delivered-To: dev@oe-lite.org Received: from mail02.prevas.se (mail02.prevas.se [62.95.78.10]) by hugin.dotsrc.org (Postfix) with ESMTPS id 18C763FB51 for ; Fri, 25 Jul 2014 12:27:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=prevas.dk; i=@prevas.dk; l=5879; q=dns/txt; s=ironport2; t=1406284077; x=1437820077; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=SATZRNul0PWQZl512qoVWWhO+Wqdjzan/dtRRHZXnno=; b=vOE/nQfCkheJCP26vWetcOuq+d3BARnp4vAwQWT+/nDLez0cqA/IPCes ikmuOLlt2GLi3GkU16hfWvOctQ26TYllQPKhe/zINUYQbHO81VXqwnUx0 zFaaZipCeP0b0zlYCAP1G9AURHjs96dNa+0g4DzBHg8uUP+RGdr/GNPgd 0=; X-IronPort-AV: E=Sophos;i="5.01,730,1400018400"; d="scan'208";a="915458" Received: from vmprevas3.prevas.se (HELO smtp.prevas.se) ([172.16.8.103]) by ironport2.prevas.se with ESMTP/TLS/AES128-SHA; 25 Jul 2014 12:27:56 +0200 Received: from VMPREVAS1.prevas.se ([fe80::d582:e193:281c:3bc9]) by VMPREVAS3.prevas.se ([172.16.8.103]) with mapi id 14.02.0387.000; Fri, 25 Jul 2014 12:27:55 +0200 From: =?iso-8859-1?Q?Christian_Br=E4uner_S=F8rensen?= To: Svend Aage Vedstesen , "dev@oe-lite.org" Subject: RE: [PATCH 14/15] qt5-sdk-script/setup.sh: Better error detection, Win aware, and more Thread-Topic: [PATCH 14/15] qt5-sdk-script/setup.sh: Better error detection, Win aware, and more Thread-Index: AQHPm1GVkmr2XBvPqU2bJ9FHkeBompuwr4Zu Date: Fri, 25 Jul 2014 10:27:54 +0000 Message-ID: References: , In-Reply-To: Accept-Language: en-GB, sv-SE, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.16.11.11] MIME-Version: 1.0 X-BeenThere: dev@oe-lite.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: OE-lite development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dev-bounces@oe-lite.org Errors-To: dev-bounces@oe-lite.org Hi Svend Aaage Thanks for the patch! Merged to master. /Christian diff --git a/recipes/sdk/qt5-sdk-script/setup.sh b/recipes/sdk/qt5-sdk-script/setup.sh index b2d41d9..6539e0f 100755 --- a/recipes/sdk/qt5-sdk-script/setup.sh +++ b/recipes/sdk/qt5-sdk-script/setup.sh @@ -1,18 +1,62 @@ #!/bin/bash -MACHINE_ARCH=${CROSS_COMPILE::-1} +# Script used to setup the enviroment for Qmake +# Preconditions: +# The following environemt settings are needed prior to invoking the script: +# * CROSS_COMPILE must be set, e.g. CROSS_COMPILE=arm-cortexa9neont-linux-gnueabi- +# * Host executeable must be in the path (/bin) +# +# Note: The script can be run on Windows too with MSYS installed +# The script generates a qt.conf file which will be placed in + +CURRENT_OS=$(uname) + +echo "Script detected it is running on:" +if [[ $CURRENT_OS == Linux* ]] ; then + echo "Linux" +else + echo "Windows" +fi + +echo "CROSS_COMPILE is '$CROSS_COMPILE'" +if [ -z $CROSS_COMPILE ]; then + echo "Error: 'CROSS_COMPILE' must be set!" >&2 + exit 1 +fi + +# Determine the tools dir +GCC_TO_USE=$(which ${CROSS_COMPILE}gcc) +if [ -z $GCC_TO_USE ]; then + echo "Error: Cannot find the cross compiler directory!" >&2 + exit 1 +fi + +export TOOL=$(dirname $(which ${CROSS_COMPILE}gcc))"/../" +if [ ! -d $TOOL ]; then + echo "Error: Tool dir '$TOOL' does not exist!" >&2 + exit 1 +fi + +# Strip off the last character +MACHINE_ARCH=${CROSS_COMPILE:0:$((${#CROSS_COMPILE}-1))} +echo "Machine arch is: $MACHINE_ARCH" + +SYS_REL_TOOL=${MACHINE_ARCH}/sysroot +export SYS=${TOOL}/${SYS_REL_TOOL} + +if [ ! -d $SYS ]; then + echo "Error: Sysroot dir '$SYS' does not exist!" >&2 + exit 1 +fi export AR=${CROSS_COMPILE}ar export CC=${CROSS_COMPILE}gcc export CXX=${CROSS_COMPILE}g++ export STRIP=${CROSS_COMPILE}strip -export TOOL=$(dirname $(which ${CROSS_COMPILE}gcc))"/../" -export SYS=${TOOL}${MACHINE_ARCH}/sysroot/ -export PKG_CONFIG_LIBDIR=${SYS}usr/lib/pkgconfig -export PKG_CONFIG_PATH=${SYS}usr/lib/pkgconfig +export PKG_CONFIG_LIBDIR=${SYS}/usr/lib/pkgconfig +export PKG_CONFIG_PATH=${SYS}/usr/lib/pkgconfig export PKG_CONFIG_SYSROOT_DIR=${SYS} -export QMAKESPEC="${SYS}usr/share/qt5/mkspecs/linux-oe-g++" export OE_QMAKE_UIC="${TOOL}bin/uic" export OE_QMAKE_MOC="${TOOL}bin/moc" export OE_QMAKE_RCC="${TOOL}bin/rcc" @@ -23,15 +67,32 @@ export OE_QMAKE_CXX="${CXX}" export OE_QMAKE_AR="${AR}" export OE_QMAKE_STRIP="${STRIP}" -echo "[Paths]" > qt.conf -echo "Prefix = /usr" >> qt.conf -echo "Headers = ${SYS}usr/include/qt5" >> qt.conf -echo "Libraries = ${SYS}usr/lib" >> qt.conf -echo "ArchData = ${SYS}usr/lib" >> qt.conf -echo "Data = ${SYS}usr/share" >> qt.conf -echo "Plugins = ${SYS}usr/lib/qt5/plugins" >> qt.conf -echo "HostBinaries = ${TOOL}bin" >> qt.conf -echo "HostData = ${SYS}usr/share/qt5/" >> qt.conf -echo "HostSpec = ${SYS}usr/share/qt5/mkspecs/linux-oe-g++" >> qt.conf -echo "TargetSpec = ${SYS}usr/share/qt5/mkspecs/linux-oe-g++" >> qt.conf -export QT_CONF_PATH="${TOOL}qt.conf" +# Must we differentiate here? +if [[ $CURRENT_OS == Linux* ]] ; then + export QMAKESPEC="${SYS}usr/share/qt5/mkspecs/linux-oe-g++" +else + export QMAKESPEC="linux-oe-g++" +fi + +QT_CONF_FILE=${TOOL}/qt.conf +touch ${QT_CONF_FILE} || exit 1 + +echo "[Paths]" > ${QT_CONF_FILE} +# Give prefix relative to the tools dir +echo "Prefix = ../" >> ${QT_CONF_FILE} +echo "Headers = ${SYS_REL_TOOL}/usr/include/qt5" >> ${QT_CONF_FILE} +echo "Libraries = ${SYS_REL_TOOL}/usr/lib" >> ${QT_CONF_FILE} +echo "ArchData = ${SYS_REL_TOOL}/usr/lib" >> ${QT_CONF_FILE} +echo "Data = ${SYS_REL_TOOL}/usr/share" >> ${QT_CONF_FILE} +echo "Plugins = ${SYS_REL_TOOL}/usr/lib/qt5/plugins" >> ${QT_CONF_FILE} +echo "HostBinaries = bin" >> ${QT_CONF_FILE} +echo "HostData = ${SYS_REL_TOOL}/usr/share/qt5" >> ${QT_CONF_FILE} +if [[ $CURRENT_OS == Linux* ]] ; then + echo "HostSpec = ${SYS_REL_TOOL}/usr/share/qt5/mkspecs/linux-oe-g++" >> ${QT_CONF_FILE} +else + echo "HostSpec = ${SYS_REL_TOOL}/usr/share/qt5/mkspecs/win32-g++" >> ${QT_CONF_FILE} +fi +echo "TargetSpec = ${SYS_REL_TOOL}/usr/share/qt5/mkspecs/linux-oe-g++" >> ${QT_CONF_FILE} + +# Set the paths to the config file +export QT_CONF_PATH="${QT_CONF_FILE}"