diff --git a/meta-qt5/COPYING.MIT b/meta-qt5/COPYING.MIT new file mode 100644 index 0000000000..fb950dc69f --- /dev/null +++ b/meta-qt5/COPYING.MIT @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/meta-qt5/README b/meta-qt5/README new file mode 100644 index 0000000000..06335bba5a --- /dev/null +++ b/meta-qt5/README @@ -0,0 +1,32 @@ +This layer depends on: + +URI: git://github.com/openembedded/oe-core.git +branch: master +revision: HEAD + +URI: git://github.com/openembedded/meta-oe.git +layers: meta-ruby +branch: master +revision: HEAD + +When building stuff like qtdeclarative, qtquick, qtwebkit, make sure that +you have required PACKAGECONFIG options enabled in qtbase build, see qtbase.inc +for detail. + +Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-qt5]' in the subject' + +When sending single patches, please using something like: +'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-qt5][PATCH' + +You are encouraged to fork the mirror on github[1] to share your +patches. This is preferred for patch sets consisting of more than one +patch. Other services like gitorious, repo.or.cz or self hosted setups +are of course accepted as well, 'git fetch ' works the same on +all of them. We recommend github because it is free, easy to use, has +been proven to be reliable and has a really good web GUI. + +1. https://github.com/meta-qt5/meta-qt5/ + +Main layer maintainers: + Martin 'JaMa' Jansa + Otavio Salvador diff --git a/meta-qt5/classes/cmake_qt5.bbclass b/meta-qt5/classes/cmake_qt5.bbclass new file mode 100644 index 0000000000..94a60dcf1d --- /dev/null +++ b/meta-qt5/classes/cmake_qt5.bbclass @@ -0,0 +1,33 @@ +inherit cmake +inherit qmake5_paths + +EXTRA_OECMAKE += " \ + -DOE_QMAKE_PATH_PREFIX=${OE_QMAKE_PATH_PREFIX} \ + -DOE_QMAKE_PATH_HEADERS=${OE_QMAKE_PATH_HEADERS} \ + -DOE_QMAKE_PATH_LIBS=${OE_QMAKE_PATH_LIBS} \ + -DOE_QMAKE_PATH_ARCHDATA=${OE_QMAKE_PATH_ARCHDATA} \ + -DOE_QMAKE_PATH_DATA=${OE_QMAKE_PATH_DATA} \ + -DOE_QMAKE_PATH_BINS=${OE_QMAKE_PATH_BINS} \ + -DOE_QMAKE_PATH_LIBEXECS=${OE_QMAKE_PATH_LIBEXECS} \ + -DOE_QMAKE_PATH_PLUGINS=${OE_QMAKE_PATH_PLUGINS} \ + -DOE_QMAKE_PATH_IMPORTS=${OE_QMAKE_PATH_IMPORTS} \ + -DOE_QMAKE_PATH_QML=${OE_QMAKE_PATH_QML} \ + -DOE_QMAKE_PATH_TRANSLATIONS=${OE_QMAKE_PATH_TRANSLATIONS} \ + -DOE_QMAKE_PATH_DOCS=${OE_QMAKE_PATH_DOCS} \ + -DOE_QMAKE_PATH_SETTINGS=${OE_QMAKE_PATH_SETTINGS} \ + -DOE_QMAKE_PATH_EXAMPLES=${OE_QMAKE_PATH_EXAMPLES} \ + -DOE_QMAKE_PATH_TESTS=${OE_QMAKE_PATH_TESTS} \ + -DOE_QMAKE_PATH_HOST_PREFIX=${OE_QMAKE_PATH_HOST_PREFIX} \ + -DOE_QMAKE_PATH_HOST_BINS=${OE_QMAKE_PATH_HOST_BINS} \ + -DOE_QMAKE_PATH_HOST_DATA=${OE_QMAKE_PATH_HOST_DATA} \ + -DOE_QMAKE_PATH_HOST_LIBS=${OE_QMAKE_PATH_HOST_LIBS} \ + -DOE_QMAKE_PATH_EXTERNAL_HOST_BINS=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} \ + -DOE_QMAKE_PATH_QT_HEADERS=${OE_QMAKE_PATH_QT_HEADERS} \ + -DOE_QMAKE_PATH_QT_ARCHDATA=${OE_QMAKE_PATH_QT_ARCHDATA} \ + -DOE_QMAKE_PATH_QT_DATA=${OE_QMAKE_PATH_QT_DATA} \ + -DOE_QMAKE_PATH_QT_BINS=${OE_QMAKE_PATH_QT_BINS} \ + -DOE_QMAKE_PATH_QT_TRANSLATIONS=${OE_QMAKE_PATH_QT_TRANSLATIONS} \ + -DOE_QMAKE_PATH_QT_DOCS=${OE_QMAKE_PATH_QT_DOCS} \ + -DOE_QMAKE_PATH_QT_SETTINGS=${OE_QMAKE_PATH_QT_SETTINGS} \ + -DOE_QMAKE_PATH_QT_EXAMPLES=${OE_QMAKE_PATH_QT_EXAMPLES} \ + -DOE_QMAKE_PATH_QT_TESTS=${OE_QMAKE_PATH_QT_TESTS}" diff --git a/meta-qt5/classes/populate_sdk_qt5.bbclass b/meta-qt5/classes/populate_sdk_qt5.bbclass new file mode 100644 index 0000000000..c9219830e5 --- /dev/null +++ b/meta-qt5/classes/populate_sdk_qt5.bbclass @@ -0,0 +1,56 @@ +# Copyright (C) 2014 O.S. Systems Software LTDA. + +TOOLCHAIN_HOST_TASK += "nativesdk-packagegroup-qt5-toolchain-host" +TOOLCHAIN_TARGET_TASK += "packagegroup-qt5-toolchain-target" + +# This allow reuse of Qt paths +inherit qmake5_paths + +toolchain_create_sdk_env_script_append () { + echo 'export PATH=${SDKPATHNATIVE}${OE_QMAKE_PATH_HOST_BINS}:$PATH' >> $script + echo 'export OE_QMAKE_CFLAGS="$CFLAGS"' >> $script + echo 'export OE_QMAKE_CXXFLAGS="$CXXFLAGS"' >> $script + echo 'export OE_QMAKE_LDFLAGS="$LDFLAGS"' >> $script + echo 'export OE_QMAKE_CC=$CC' >> $script + echo 'export OE_QMAKE_CXX=$CXX' >> $script + echo 'export OE_QMAKE_LINK=$CXX' >> $script + echo 'export OE_QMAKE_AR=$AR' >> $script + echo 'export OE_QMAKE_LIBDIR_QT=${SDKTARGETSYSROOT}${OE_QMAKE_PATH_LIBS}' >> $script + echo 'export OE_QMAKE_INCDIR_QT=${SDKTARGETSYSROOT}${OE_QMAKE_PATH_QT_HEADERS}' >> $script + echo 'export OE_QMAKE_MOC=${SDKPATHNATIVE}${OE_QMAKE_PATH_HOST_BINS}/moc' >> $script + echo 'export OE_QMAKE_UIC=${SDKPATHNATIVE}${OE_QMAKE_PATH_HOST_BINS}/uic' >> $script + echo 'export OE_QMAKE_RCC=${SDKPATHNATIVE}${OE_QMAKE_PATH_HOST_BINS}/rcc' >> $script + echo 'export OE_QMAKE_QDBUSCPP2XML=${SDKPATHNATIVE}${OE_QMAKE_PATH_HOST_BINS}/qdbuscpp2xml' >> $script + echo 'export OE_QMAKE_QDBUSXML2CPP=${SDKPATHNATIVE}${OE_QMAKE_PATH_HOST_BINS}/qdbusxml2cpp' >> $script + echo 'export OE_QMAKE_QT_CONFIG=${SDKTARGETSYSROOT}${OE_QMAKE_PATH_LIBS}/${QT_DIR_NAME}/mkspecs/qconfig.pri' >> $script + echo 'export QMAKESPEC=${SDKTARGETSYSROOT}${OE_QMAKE_PATH_LIBS}/${QT_DIR_NAME}/mkspecs/linux-oe-g++' >> $script + echo 'export QT_CONF_PATH=${SDKPATHNATIVE}${OE_QMAKE_PATH_HOST_BINS}/qt.conf' >> $script + + # make a symbolic link to mkspecs for compatibility with QTCreator + (cd ${SDK_OUTPUT}/${SDKPATHNATIVE}; \ + ln -sf ${SDKTARGETSYSROOT}${libdir}/${QT_DIR_NAME}/mkspecs mkspecs;) + + # Generate a qt.conf file to be deployed with the SDK + qtconf=${SDK_OUTPUT}/${SDKPATHNATIVE}${OE_QMAKE_PATH_HOST_BINS}/qt.conf + touch $qtconf + echo '[Paths]' >> $qtconf + echo 'Prefix = ${SDKTARGETSYSROOT}' >> $qtconf + echo 'Headers = ${SDKTARGETSYSROOT}${OE_QMAKE_PATH_QT_HEADERS}' >> $qtconf + echo 'Libraries = ${SDKTARGETSYSROOT}${OE_QMAKE_PATH_LIBS}' >> $qtconf + echo 'ArchData = ${SDKTARGETSYSROOT}${OE_QMAKE_PATH_QT_ARCHDATA}' >> $qtconf + echo 'Data = ${SDKTARGETSYSROOT}${OE_QMAKE_PATH_QT_DATA}' >> $qtconf + echo 'Binaries = ${SDKTARGETSYSROOT}${OE_QMAKE_PATH_QT_BINS}' >> $qtconf + echo 'LibraryExecutables = ${SDKTARGETSYSROOT}${OE_QMAKE_PATH_LIBEXECS}' >> $qtconf + echo 'Plugins = ${SDKTARGETSYSROOT}${OE_QMAKE_PATH_PLUGINS}' >> $qtconf + echo 'Imports = ${SDKTARGETSYSROOT}${OE_QMAKE_PATH_IMPORTS}' >> $qtconf + echo 'Qml2Imports = ${SDKTARGETSYSROOT}${OE_QMAKE_PATH_QML}' >> $qtconf + echo 'Translations = ${SDKTARGETSYSROOT}${OE_QMAKE_PATH_QT_TRANSLATIONS}' >> $qtconf + echo 'Documentation = ${SDKTARGETSYSROOT}${OE_QMAKE_PATH_QT_DOCS}' >> $qtconf + echo 'Settings = ${SDKTARGETSYSROOT}${OE_QMAKE_PATH_QT_SETTINGS}' >> $qtconf + echo 'Examples = ${SDKTARGETSYSROOT}${OE_QMAKE_PATH_QT_EXAMPLES}' >> $qtconf + echo 'Tests = ${SDKTARGETSYSROOT}${OE_QMAKE_PATH_QT_TESTS}' >> $qtconf + echo 'HostPrefix = ${SDKPATHNATIVE}' >> $qtconf + echo 'HostBinaries = ${SDKPATHNATIVE}${OE_QMAKE_PATH_HOST_BINS}' >> $qtconf +} + +PACKAGE_GROUP_qtcreator-debug = "packagegroup-qt5-qtcreator-debug" diff --git a/meta-qt5/classes/qmake5.bbclass b/meta-qt5/classes/qmake5.bbclass new file mode 100644 index 0000000000..b056ea755d --- /dev/null +++ b/meta-qt5/classes/qmake5.bbclass @@ -0,0 +1,15 @@ +# +# QMake variables for Qt +# +inherit qmake5_base + +QT5TOOLSDEPENDS ?= "qtbase-native" +DEPENDS_prepend = "${QT5TOOLSDEPENDS} " + +do_configure() { + qmake5_base_do_configure +} + +do_install() { + qmake5_base_do_install +} diff --git a/meta-qt5/classes/qmake5_base.bbclass b/meta-qt5/classes/qmake5_base.bbclass new file mode 100644 index 0000000000..3861cd01af --- /dev/null +++ b/meta-qt5/classes/qmake5_base.bbclass @@ -0,0 +1,186 @@ +# This is useful for target recipes to reference native mkspecs +QMAKE_MKSPEC_PATH_NATIVE = "${STAGING_LIBDIR_NATIVE}/${QT_DIR_NAME}" +QMAKE_MKSPEC_PATH_TARGET = "${STAGING_LIBDIR}/${QT_DIR_NAME}" + +QMAKE_MKSPEC_PATH = "${QMAKE_MKSPEC_PATH_TARGET}" +QMAKE_MKSPEC_PATH_class-native = "${QMAKE_MKSPEC_PATH_NATIVE}" +QMAKE_MKSPEC_PATH_class-nativesdk = "${QMAKE_MKSPEC_PATH_NATIVE}" + +# hardcode linux, because that's what 0001-Add-linux-oe-g-platform.patch adds +OE_QMAKE_PLATFORM_NATIVE = "linux-oe-g++" +OE_QMAKE_PLATFORM = "linux-oe-g++" + +# Add -d to show debug output from every qmake call, but it prints *a lot*, better to add it only to debugged recipe +OE_QMAKE_DEBUG_OUTPUT ?= "" + +# Paths in .prl files contain SYSROOT value +SSTATE_SCAN_FILES += "*.pri *.prl" + +# drop default -e and add needed OE_QMAKE vars explicitly +# the problem is that when generated Makefile has: +# CFLAGS = -pipe $(OE_QMAKE_CFLAGS) -O2 -pthread -D_REENTRANT -Wall -W -fPIC $(DEFINES) +# then OE_QMAKE_CFLAGS are exported and used correctly, but then whole CFLAGS is overwritten from env (and -fPIC lost and build fails) +EXTRA_OEMAKE = " \ + MAKEFLAGS='${PARALLEL_MAKE}' \ + OE_QMAKE_COMPILER='${OE_QMAKE_COMPILER}' \ + OE_QMAKE_CC='${OE_QMAKE_CC}' \ + OE_QMAKE_CXX='${OE_QMAKE_CXX}' \ + OE_QMAKE_CFLAGS='${OE_QMAKE_CFLAGS}' \ + OE_QMAKE_CXXFLAGS='${OE_QMAKE_CXXFLAGS}' \ + OE_QMAKE_LINK='${OE_QMAKE_LINK}' \ + OE_QMAKE_LDFLAGS='${OE_QMAKE_LDFLAGS}' \ + OE_QMAKE_AR='${OE_QMAKE_AR}' \ + OE_QMAKE_STRIP='${OE_QMAKE_STRIP}' \ + OE_QMAKE_WAYLAND_SCANNER='${OE_QMAKE_WAYLAND_SCANNER}' \ +" + +OE_QMAKESPEC = "${QMAKE_MKSPEC_PATH_NATIVE}/mkspecs/${OE_QMAKE_PLATFORM_NATIVE}" +OE_XQMAKESPEC = "${QMAKE_MKSPEC_PATH}/mkspecs/${OE_QMAKE_PLATFORM}" +OE_QMAKE_QMAKE = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/qmake" +OE_QMAKE_COMPILER = "${CC}" +OE_QMAKE_CC = "${CC}" +OE_QMAKE_CFLAGS = "${CFLAGS}" +OE_QMAKE_CXX = "${CXX}" +OE_QMAKE_CXXFLAGS = "${CXXFLAGS}" +OE_QMAKE_LINK = "${CXX}" +OE_QMAKE_LDFLAGS = "${LDFLAGS}" +OE_QMAKE_AR = "${AR}" +OE_QMAKE_STRIP = "echo" +OE_QMAKE_WAYLAND_SCANNER = "${STAGING_BINDIR_NATIVE}/wayland-scanner" + +# this one needs to be exported, because qmake reads it from shell env +export QT_CONF_PATH = "${WORKDIR}/qt.conf" + +inherit qmake5_paths + +do_generate_qt_config_file() { + cat > ${QT_CONF_PATH} < ${CONFIGURESTAMPFILE} + fi +} + +EXTRAQCONFFUNCS ??= "" + +do_configure[prefuncs] += "qmake5_base_preconfigure ${EXTRAQCONFFUNCS}" +do_configure[postfuncs] += "qmake5_base_postconfigure" + +addtask generate_qt_config_file after do_patch before do_configure + +qmake5_base_do_configure () { + if [ -z "${QMAKE_PROFILES}" ]; then + PROFILES="`ls ${S}/*.pro`" + else + PROFILES="${QMAKE_PROFILES}" + bbnote "qmake using profiles: '${QMAKE_PROFILES}'" + fi + + if [ ! -z "${EXTRA_QMAKEVARS_POST}" ]; then + AFTER="-after" + QMAKE_VARSUBST_POST="${EXTRA_QMAKEVARS_POST}" + bbnote "qmake postvar substitution: '${EXTRA_QMAKEVARS_POST}'" + fi + + if [ ! -z "${EXTRA_QMAKEVARS_PRE}" ]; then + QMAKE_VARSUBST_PRE="${EXTRA_QMAKEVARS_PRE}" + bbnote "qmake prevar substitution: '${EXTRA_QMAKEVARS_PRE}'" + fi + + # for config.tests to read this + export QMAKE_MAKE_ARGS="${EXTRA_OEMAKE}" + + CMD="${OE_QMAKE_QMAKE} -makefile -o Makefile ${OE_QMAKE_DEBUG_OUTPUT} -r $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST" + ${OE_QMAKE_QMAKE} -makefile -o Makefile ${OE_QMAKE_DEBUG_OUTPUT} -r $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST || die "Error calling $CMD" +} + +qmake5_base_do_install() { + # Fix install paths for all + find -name "Makefile*" | xargs sed -i "s,(INSTALL_ROOT)${STAGING_DIR_TARGET},(INSTALL_ROOT),g" + + oe_runmake install INSTALL_ROOT=${D} + + # everything except HostData and HostBinaries is prefixed with sysroot value, + # but we cannot remove sysroot override, because that's useful for pkg-config etc + # In some cases like QtQmlDevTools in qtdeclarative, the sed above does not work, + # fix them manually + if [ -d ${D}${STAGING_DIR_TARGET} ] ; then + echo "Some files are installed in wrong directory ${D}${STAGING_DIR_TARGET}" + cp -ra ${D}${STAGING_DIR_TARGET}/* ${D} + rm -rf ${D}${STAGING_DIR_TARGET} + # remove empty dirs + TMP=`dirname ${D}/${STAGING_DIR_TARGET}` + while test ${TMP} != ${D}; do + rmdir ${TMP} + TMP=`dirname ${TMP}`; + done + fi +} diff --git a/meta-qt5/classes/qmake5_paths.bbclass b/meta-qt5/classes/qmake5_paths.bbclass new file mode 100644 index 0000000000..8f91e93823 --- /dev/null +++ b/meta-qt5/classes/qmake5_paths.bbclass @@ -0,0 +1,41 @@ +# If your distribution supports only qt5, or you don't care +# about conflicts with qt4, then you can add qmake5_paths.bbclass +# to your distro layer and flatten all QT_DIR_NAME directories + +QT_DIR_NAME ?= "qt5" + +OE_QMAKE_PATH_PREFIX = "${prefix}" +OE_QMAKE_PATH_HEADERS = "${includedir}/${QT_DIR_NAME}" +OE_QMAKE_PATH_LIBS = "${libdir}" +OE_QMAKE_PATH_ARCHDATA = "${libdir}" +OE_QMAKE_PATH_DATA = "${datadir}" +OE_QMAKE_PATH_BINS = "${bindir}" +OE_QMAKE_PATH_LIBEXECS = "${libdir}/${QT_DIR_NAME}/libexec" +OE_QMAKE_PATH_PLUGINS = "${libdir}/${QT_DIR_NAME}/plugins" +OE_QMAKE_PATH_IMPORTS = "${libdir}/${QT_DIR_NAME}/imports" +OE_QMAKE_PATH_QML = "${libdir}/${QT_DIR_NAME}/qml" +OE_QMAKE_PATH_TRANSLATIONS = "${datadir}/translations" +OE_QMAKE_PATH_DOCS = "${docdir}" +OE_QMAKE_PATH_SETTINGS = "${sysconfdir}" +OE_QMAKE_PATH_EXAMPLES = "${datadir}/examples" +OE_QMAKE_PATH_TESTS = "${datadir}/tests" +OE_QMAKE_PATH_HOST_PREFIX = "" +OE_QMAKE_PATH_HOST_BINS = "${bindir}/${QT_DIR_NAME}" +OE_QMAKE_PATH_HOST_DATA = "${QMAKE_MKSPEC_PATH_TARGET}" +OE_QMAKE_PATH_HOST_LIBS = "${STAGING_LIBDIR}" +OE_QMAKE_PATH_EXTERNAL_HOST_BINS = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}" + +# for qt5 components we're using QT_DIR_NAME subdirectory in more +# variables, because we don't want conflicts with qt4 +# This block is usefull for components which install their +# own files without QT_DIR_NAME but need to reference paths e.g. +# with QT headers +OE_QMAKE_PATH_QT_HEADERS = "${includedir}/${QT_DIR_NAME}" +OE_QMAKE_PATH_QT_ARCHDATA = "${libdir}/${QT_DIR_NAME}" +OE_QMAKE_PATH_QT_DATA = "${datadir}/${QT_DIR_NAME}" +OE_QMAKE_PATH_QT_BINS = "${bindir}/${QT_DIR_NAME}" +OE_QMAKE_PATH_QT_TRANSLATIONS = "${datadir}/${QT_DIR_NAME}/translations" +OE_QMAKE_PATH_QT_DOCS = "${docdir}/${QT_DIR_NAME}" +OE_QMAKE_PATH_QT_SETTINGS = "${sysconfdir}/${QT_DIR_NAME}" +OE_QMAKE_PATH_QT_EXAMPLES = "${datadir}/${QT_DIR_NAME}/examples" +OE_QMAKE_PATH_QT_TESTS = "${datadir}/${QT_DIR_NAME}/tests" diff --git a/meta-qt5/conf/distro/include/qt5-versions.inc b/meta-qt5/conf/distro/include/qt5-versions.inc new file mode 100644 index 0000000000..b684a6b8ed --- /dev/null +++ b/meta-qt5/conf/distro/include/qt5-versions.inc @@ -0,0 +1,23 @@ +# Select which version you prefer by defining QT5_VERSION and including this file +# possible values now "5.2.1", "5.2.1+git%" + +QT5_VERSION ?= "5.2.1" + +PREFERRED_VERSION_qtbase-native = "${QT5_VERSION}" +PREFERRED_VERSION_qtbase = "${QT5_VERSION}" +PREFERRED_VERSION_qtdeclarative = "${QT5_VERSION}" +PREFERRED_VERSION_qtjsbackend = "${QT5_VERSION}" +PREFERRED_VERSION_qtjsbackend-native = "${QT5_VERSION}" +PREFERRED_VERSION_qtgraphicaleffects = "${QT5_VERSION}" +PREFERRED_VERSION_qtimageformats = "${QT5_VERSION}" +PREFERRED_VERSION_qtmultimedia = "${QT5_VERSION}" +PREFERRED_VERSION_qtquick1 = "${QT5_VERSION}" +PREFERRED_VERSION_qtquickcontrols = "${QT5_VERSION}" +PREFERRED_VERSION_qtsensors = "${QT5_VERSION}" +PREFERRED_VERSION_qtserialport = "${QT5_VERSION}" +PREFERRED_VERSION_qtscript = "${QT5_VERSION}" +PREFERRED_VERSION_qtsvg = "${QT5_VERSION}" +PREFERRED_VERSION_qttools-native = "${QT5_VERSION}" +PREFERRED_VERSION_qtwebkit = "${QT5_VERSION}" +PREFERRED_VERSION_qtwebkit-examples = "${QT5_VERSION}" +PREFERRED_VERSION_qtxmlpatterns = "${QT5_VERSION}" diff --git a/meta-qt5/conf/layer.conf b/meta-qt5/conf/layer.conf new file mode 100644 index 0000000000..aacfd7843d --- /dev/null +++ b/meta-qt5/conf/layer.conf @@ -0,0 +1,28 @@ +# It really depends on order of the layers appearing in BBLAYERS +# variable in toplevel bblayers.conf file, where bitbake will search +# for .inc files and others where bitbake uses BBPATH since it will +# search the directories from first to last as specified in BBPATH +# Therefore if you want a given layer to be considered high priority +# for the .inc and .conf etc. then consider it adding at the beginning +# of BBPATH. For bblayers bitbake will use BBFILES_PRIORITY to resolve +# the recipe contention so the order of directories in BBFILES does +# not matter. + +# We have a conf and classes directory, append to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have a recipes directory, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "qt5-layer" +BBFILE_PATTERN_qt5-layer := "^${LAYERDIR}/" + +# Define the priority for recipes (.bb files) from this layer, +# choosing carefully how this layer interacts with all of the +# other layers. + +BBFILE_PRIORITY_qt5-layer = "7" + +LICENSE_PATH += "${LAYERDIR}/licenses" + +IMAGE_FEATURES[validitems] += "qtcreator-debug" diff --git a/meta-qt5/licenses/DIGIA-TPLA-2.4 b/meta-qt5/licenses/DIGIA-TPLA-2.4 new file mode 100644 index 0000000000..c71a330e4a --- /dev/null +++ b/meta-qt5/licenses/DIGIA-TPLA-2.4 @@ -0,0 +1,628 @@ +TECHNOLOGY PREVIEW LICENSE AGREEMENT + +For individuals and/or legal entities resident in the Americas (North +America, Central America and South America), the applicable licensing +terms are specified under the heading "Technology Preview License +Agreement: The Americas". + +For individuals and/or legal entities not resident in The Americas, the +applicable licensing terms are specified under the heading "Technology +Preview License Agreement: Rest of the World". + + +TECHNOLOGY PREVIEW LICENSE AGREEMENT: The Americas +Agreement version 2.4 + +This Technology Preview License Agreement ("Agreement")is a legal agreement +between Digia USA, Inc. ("Digia"), with its registered office at 32 W. +Loockerman Street, Suite 201, City of Dover, County of Kent, Delaware 19904, +U.S.A. and you (either an individual or a legal entity) ("Licensee") +for the Licensed Software (as defined below). + +1. DEFINITIONS + +"Affiliate" of a Party shall mean an entity (i) which is directly or +indirectly controlling such Party; (ii) which is under the same direct +or indirect ownership or control as such Party; or (iii) which is +directly or indirectly owned or controlled by such Party. For these +purposes, an entity shall be treated as being controlled by another if +that other entity has fifty percent (50 %) or more of the votes in such +entity, is able to direct its affairs and/or to control the composition +of its board of directors or equivalent body. + +"Applications" shall mean Licensee's software products created using the +Licensed Software which may include portions of the Licensed Software. + +"Term" shall mean the period of time six (6) months from the later of +(a) the Effective Date; or (b) the date the Licensed Software was +initially delivered to Licensee by Digia. If no specific Effective Date +is set forth in the Agreement, the Effective Date shall be deemed to be +the date the Licensed Software was initially delivered to Licensee. + +"Licensed Software" shall mean the computer software, "online" or +electronic documentation, associated media and printed materials, +including the source code, example programs and the documentation +delivered by Digia to Licensee in conjunction with this Agreement. + +"Party" or "Parties" shall mean Licensee and/or Digia. + + +2. OWNERSHIP + +The Licensed Software is protected by copyright laws and international +copyright treaties, as well as other intellectual property laws and +treaties. The Licensed Software is licensed, not sold. + +If Licensee provides any findings, proposals, suggestions or other +feedback ("Feedback") to Digia regarding the Licensed Software, Digia +shall own all right, title and interest including the intellectual +property rights in and to such Feedback, excluding however any existing +patent rights of Licensee. To the extent Licensee owns or controls any +patents for such Feedback Licensee hereby grants to Digia and its +Affiliates, a worldwide, perpetual, non-transferable, sublicensable, +royalty-free license to (i) use, copy and modify Feedback and to create +derivative works thereof, (ii) to make (and have made), use, import, +sell, offer for sale, lease, dispose, offer for disposal or otherwise +exploit any products or services of Digia containing Feedback, and +(iii) sublicense all the foregoing rights to third party licensees and +customers of Digia and/or its Affiliates. + + +3. VALIDITY OF THE AGREEMENT + +By installing, copying, or otherwise using the Licensed Software, +Licensee agrees to be bound by the terms of this Agreement. If Licensee +does not agree to the terms of this Agreement, Licensee may not install, +copy, or otherwise use the Licensed Software. Upon Licensee's acceptance +of the terms and conditions of this Agreement, Digia grants Licensee the +right to use the Licensed Software in the manner provided below. + + +4. LICENSES + +4.1. Using and Copying + +Digia grants to Licensee a non-exclusive, non-transferable, time-limited +license to use and copy the Licensed Software for sole purpose of +designing, developing and testing Applications, and evaluating and the +Licensed Software during the Term. + +Licensee may install copies of the Licensed Software on an unlimited +number of computers provided that (a) if an individual, only such +individual; or (b) if a legal entity only its employees; use the +Licensed Software for the authorized purposes. + +4.2 No Distribution or Modifications + +Licensee may not disclose, modify, sell, market, commercialise, +distribute, loan, rent, lease, or license the Licensed Software or any +copy of it or use the Licensed Software for any purpose that is not +expressly granted in this Section 4. Licensee may not alter or remove +any details of ownership, copyright, trademark or other property right +connected with the Licensed Software. Licensee may not distribute any +software statically or dynamically linked with the Licensed Software. + +4.3 No Technical Support + +Digia has no obligation to furnish Licensee with any technical support +whatsoever. Any such support is subject to separate agreement between +the Parties. + + +5. PRE-RELEASE CODE +The Licensed Software contains pre-release code that is not at the level +of performance and compatibility of a final, generally available, +product offering. The Licensed Software may not operate correctly and +may be substantially modified prior to the first commercial product +release, if any. Digia is not obligated to make this or any later +version of the Licensed Software commercially available. The License +Software is "Not for Commercial Use" and may only be used for the +purposes described in Section 4. The Licensed Software may not be used +in a live operating environment where it may be relied upon to perform +in the same manner as a commercially released product or with data that +has not been sufficiently backed up. + +6. THIRD PARTY SOFTWARE + +The Licensed Software may provide links to third party libraries or code +(collectively "Third Party Software") to implement various functions. +Third Party Software does not comprise part of the Licensed Software. In +some cases, access to Third Party Software may be included along with +the Licensed Software delivery as a convenience for development and +testing only. Such source code and libraries may be listed in the +".../src/3rdparty" source tree delivered with the Licensed Software or +documented in the Licensed Software where the Third Party Software is +used, as may be amended from time to time, do not comprise the Licensed +Software. Licensee acknowledges (1) that some part of Third Party +Software may require additional licensing of copyright and patents from +the owners of such, and (2) that distribution of any of the Licensed +Software referencing any portion of a Third Party Software may require +appropriate licensing from such third parties. + + +7. LIMITED WARRANTY AND WARRANTY DISCLAIMER + +The Licensed Software is licensed to Licensee "as is". To the maximum +extent permitted by applicable law, Digia on behalf of itself and its +suppliers, disclaims all warranties and conditions, either express or +implied, including, but not limited to, implied warranties of +merchantability, fitness for a particular purpose, title and +non-infringement with regard to the Licensed Software. + + +8. LIMITATION OF LIABILITY + +If, Digia's warranty disclaimer notwithstanding, Digia is held liable to +Licensee, whether in contract, tort or any other legal theory, based on +the Licensed Software, Digia's entire liability to Licensee and +Licensee's exclusive remedy shall be, at Digia's option, either (A) +return of the price Licensee paid for the Licensed Software, or (B) +repair or replacement of the Licensed Software, provided Licensee +returns to Digia all copies of the Licensed Software as originally +delivered to Licensee. Digia shall not under any circumstances be liable +to Licensee based on failure of the Licensed Software if the failure +resulted from accident, abuse or misapplication, nor shall Digia under +any circumstances be liable for special damages, punitive or exemplary +damages, damages for loss of profits or interruption of business or for +loss or corruption of data. Any award of damages from Digia to Licensee +shall not exceed the total amount Licensee has paid to Digia in +connection with this Agreement. + + +9. CONFIDENTIALITY + +Each party acknowledges that during the Term of this Agreement it shall +have access to information about the other party's business, business +methods, business plans, customers, business relations, technology, and +other information, including the terms of this Agreement, that is +confidential and of great value to the other party, and the value of +which would be significantly reduced if disclosed to third parties (the +"Confidential Information"). Accordingly, when a party (the "Receiving +Party") receives Confidential Information from another party (the +"Disclosing Party"), the Receiving Party shall, and shall obligate its +employees and agents and employees and agents of its Affiliates to: (i) +maintain the Confidential Information in strict confidence; (ii) not +disclose the Confidential Information to a third party without the +Disclosing Party's prior written approval; and (iii) not, directly or +indirectly, use the Confidential Information for any purpose other than +for exercising its rights and fulfilling its responsibilities pursuant +to this Agreement. Each party shall take reasonable measures to protect +the Confidential Information of the other party, which measures shall +not be less than the measures taken by such party to protect its own +confidential and proprietary information. + +"Confidential Information" shall not include information that (a) is or +becomes generally known to the public through no act or omission of the +Receiving Party; (b) was in the Receiving Party's lawful possession +prior to the disclosure hereunder and was not subject to limitations on +disclosure or use; (c) is developed by the Receiving Party without +access to the Confidential Information of the Disclosing Party or by +persons who have not had access to the Confidential Information of the +Disclosing Party as proven by the written records of the Receiving +Party; (d) is lawfully disclosed to the Receiving Party without +restrictions, by a third party not under an obligation of +confidentiality; or (e) the Receiving Party is legally compelled to +disclose the information, in which case the Receiving Party shall assert +the privileged and confidential nature of the information and cooperate +fully with the Disclosing Party to protect against and prevent +disclosure of any Confidential Information and to limit the scope of +disclosure and the dissemination of disclosed Confidential Information +by all legally available means. + +The obligations of the Receiving Party under this Section shall continue +during the Initial Term and for a period of five (5) years after +expiration or termination of this Agreement. To the extent that the +terms of the Non-Disclosure Agreement between Digia and Licensee +conflict with the terms of this Section 9, this Section 9 shall be +controlling over the terms of the Non-Disclosure Agreement. + + +10. GENERAL PROVISIONS + +10.1 No Assignment + +Licensee shall not be entitled to assign or transfer all or any of its +rights, benefits and obligations under this Agreement without the prior +written consent of Digia, which shall not be unreasonably withheld. + +10.2 Termination + +Digia may terminate the Agreement at any time immediately upon written +notice by Digia to Licensee if Licensee breaches this Agreement. + +Upon termination of this Agreement, Licensee shall return to Digia all +copies of Licensed Software that were supplied by Digia. All other +copies of Licensed Software in the possession or control of Licensee +must be erased or destroyed. An officer of Licensee must promptly +deliver to Digia a written confirmation that this has occurred. + +10.3 Surviving Sections + +Any terms and conditions that by their nature or otherwise reasonably +should survive a cancellation or termination of this Agreement shall +also be deemed to survive. Such terms and conditions include, but are +not limited to the following Sections: 2, 5, 6, 7, 8, 9, 10.2, 10.3, 10.4, +10.5, 10.6, 10.7, and 10.8 of this Agreement. + +10.4 Entire Agreement + +This Agreement constitutes the complete agreement between the parties +and supersedes all prior or contemporaneous discussions, +representations, and proposals, written or oral, with respect to the +subject matters discussed herein, with the exception of the +non-disclosure agreement executed by the parties in connection with this +Agreement ("Non-Disclosure Agreement"), if any, shall be subject to +Section 9. No modification of this Agreement shall be effective unless +contained in a writing executed by an authorized representative of each +party. No term or condition contained in Licensee's purchase order shall +apply unless expressly accepted by Digia in writing. If any provision of +the Agreement is found void or unenforceable, the remainder shall remain +valid and enforceable according to its terms. If any remedy provided is +determined to have failed for its essential purpose, all limitations of +liability and exclusions of damages set forth in this Agreement shall +remain in effect. + +10.5 Export Control + +Licensee acknowledges that the Licensed Software may be subject to +export control restrictions of various countries. Licensee shall fully +comply with all applicable export license restrictions and requirements +as well as with all laws and regulations relating to the importation of +the Licensed Software and shall procure all necessary governmental +authorizations, including without limitation, all necessary licenses, +approvals, permissions or consents, where necessary for the +re-exportation of the Licensed Software., + +10.6 Governing Law and Legal Venue + +This Agreement shall be governed by and construed in accordance with the +federal laws of the United States of America and the internal laws of +the State of New York without given effect to any choice of law rule +that would result in the application of the laws of any other +jurisdiction. The United Nations Convention on Contracts for the +International Sale of Goods (CISG) shall not apply. Each Party (a) +hereby irrevocably submits itself to and consents to the jurisdiction of +the United States District Court for the Southern District of New York +(or if such court lacks jurisdiction, the state courts of the State of +New York) for the purposes of any action, claim, suit or proceeding +between the Parties in connection with any controversy, claim, or +dispute arising out of or relating to this Agreement; and (b) hereby +waives, and agrees not to assert by way of motion, as a defense or +otherwise, in any such action, claim, suit or proceeding, any claim that +is not personally subject to the jurisdiction of such court(s), that the +action, claim, suit or proceeding is brought in an inconvenient forum or +that the venue of the action, claim, suit or proceeding is improper. +Notwithstanding the foregoing, nothing in this Section 9.6 is intended +to, or shall be deemed to, constitute a submission or consent to, or +selection of, jurisdiction, forum or venue for any action for patent +infringement, whether or not such action relates to this Agreement. + +10.7 No Implied License + +There are no implied licenses or other implied rights granted under this +Agreement, and all rights, save for those expressly granted hereunder, +shall remain with Digia and its licensors. In addition, no licenses or +immunities are granted to the combination of the Licensed Software with +any other software or hardware not delivered by Digia under this +Agreement. + +10.8 Government End Users + +A "U.S. Government End User" shall mean any agency or entity of the +government of the United States. The following shall apply if Licensee +is a U.S. Government End User. The Licensed Software is a "commercial +item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), +consisting of "commercial computer software" and "commercial computer +software documentation," as such terms are used in 48 C.F.R. 12.212 +(Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 +through 227.7202-4 (June 1995), all U.S. Government End Users acquire +the Licensed Software with only those rights set forth herein. The +Licensed Software (including related documentation) is provided to U.S. +Government End Users: (a) only as a commercial end item; and (b) only +pursuant to this Agreement. + + + + + +TECHNOLOGY PREVIEW LICENSE AGREEMENT: Rest of the World +Agreement version 2.4 + +This Technology Preview License Agreement ("Agreement") is a legal +agreement between Digia Finland Ltd ("Digia"), with its registered office at +Valimotie 21,FI-00380 Helsinki, Finland and you (either an individual or a +legal entity) ("Licensee") for the Licensed Software. + +1. DEFINITIONS + +"Affiliate" of a Party shall mean an entity (i) which is directly or +indirectly controlling such Party; (ii) which is under the same direct +or indirect ownership or control as such Party; or (iii) which is +directly or indirectly owned or controlled by such Party. For these +purposes, an entity shall be treated as being controlled by another if +that other entity has fifty percent (50 %) or more of the votes in such +entity, is able to direct its affairs and/or to control the composition +of its board of directors or equivalent body. + +"Applications" shall mean Licensee's software products created using the +Licensed Software which may include portions of the Licensed Software. + +"Term" shall mean the period of time six (6) months from the later of +(a) the Effective Date; or (b) the date the Licensed Software was +initially delivered to Licensee by Digia. If no specific Effective Date +is set forth in the Agreement, the Effective Date shall be deemed to be +the date the Licensed Software was initially delivered to Licensee. + +"Licensed Software" shall mean the computer software, "online" or +electronic documentation, associated media and printed materials, +including the source code, example programs and the documentation +delivered by Digia to Licensee in conjunction with this Agreement. + +"Party" or "Parties" shall mean Licensee and/or Digia. + + +2. OWNERSHIP + +The Licensed Software is protected by copyright laws and international +copyright treaties, as well as other intellectual property laws and +treaties. The Licensed Software is licensed, not sold. + +If Licensee provides any findings, proposals, suggestions or other +feedback ("Feedback") to Digia regarding the Licensed Software, Digia +shall own all right, title and interest including the intellectual +property rights in and to such Feedback, excluding however any existing +patent rights of Licensee. To the extent Licensee owns or controls any +patents for such Feedback Licensee hereby grants to Digia and its +Affiliates, a worldwide, perpetual, non-transferable, sublicensable, +royalty-free license to (i) use, copy and modify Feedback and to create +derivative works thereof, (ii) to make (and have made), use, import, +sell, offer for sale, lease, dispose, offer for disposal or otherwise +exploit any products or services of Digia containing Feedback, and +(iii) sublicense all the foregoing rights to third party licensees and +customers of Digia and/or its Affiliates. + +3. VALIDITY OF THE AGREEMENT + +By installing, copying, or otherwise using the Licensed Software, +Licensee agrees to be bound by the terms of this Agreement. If Licensee +does not agree to the terms of this Agreement, Licensee may not install, +copy, or otherwise use the Licensed Software. Upon Licensee's acceptance +of the terms and conditions of this Agreement, Digia grants Licensee the +right to use the Licensed Software in the manner provided below. + + +4. LICENSES + +4.1. Using and Copying + +Digia grants to Licensee a non-exclusive, non-transferable, time-limited +license to use and copy the Licensed Software for sole purpose of +designing, developing and testing Applications, and evaluating and the +Licensed Software during the Term. + +Licensee may install copies of the Licensed Software on an unlimited +number of computers provided that (a) if an individual, only such +individual; or (b) if a legal entity only its employees; use the +Licensed Software for the authorized purposes. + +4.2 No Distribution or Modifications + +Licensee may not disclose, modify, sell, market, commercialise, +distribute, loan, rent, lease, or license the Licensed Software or any +copy of it or use the Licensed Software for any purpose that is not +expressly granted in this Section 4. Licensee may not alter or remove +any details of ownership, copyright, trademark or other property right +connected with the Licensed Software. Licensee may not distribute any +software statically or dynamically linked with the Licensed Software. + +4.3 No Technical Support + +Digia has no obligation to furnish Licensee with any technical support +whatsoever. Any such support is subject to separate agreement between +the Parties. + + +5. PRE-RELEASE CODE + +The Licensed Software contains pre-release code that is not at the level +of performance and compatibility of a final, generally available, +product offering. The Licensed Software may not operate correctly and +may be substantially modified prior to the first commercial product +release, if any. Digia is not obligated to make this or any later +version of the Licensed Software commercially available. The License +Software is "Not for Commercial Use" and may only be used for the +purposes described in Section 4. The Licensed Software may not be used +in a live operating environment where it may be relied upon to perform +in the same manner as a commercially released product or with data that +has not been sufficiently backed up. + +6. THIRD PARTY SOFTWARE + +The Licensed Software may provide links to third party libraries or code +(collectively "Third Party Software") to implement various functions. +Third Party Software does not comprise part of the Licensed Software. In +some cases, access to Third Party Software may be included along with +the Licensed Software delivery as a convenience for development and +testing only. Such source code and libraries may be listed in the +".../src/3rdparty" source tree delivered with the Licensed Software or +documented in the Licensed Software where the Third Party Software is +used, as may be amended from time to time, do not comprise the Licensed +Software. Licensee acknowledges (1) that some part of Third Party +Software may require additional licensing of copyright and patents from +the owners of such, and (2) that distribution of any of the Licensed +Software referencing any portion of a Third Party Software may require +appropriate licensing from such third parties. + + +7. LIMITED WARRANTY AND WARRANTY DISCLAIMER + +The Licensed Software is licensed to Licensee "as is". To the maximum +extent permitted by applicable law, Digia on behalf of itself and its +suppliers, disclaims all warranties and conditions, either express or +implied, including, but not limited to, implied warranties of +merchantability, fitness for a particular purpose, title and +non-infringement with regard to the Licensed Software. + + +8. LIMITATION OF LIABILITY + +If, Digia's warranty disclaimer notwithstanding, Digia is held liable to +Licensee, whether in contract, tort or any other legal theory, based on +the Licensed Software, Digia's entire liability to Licensee and +Licensee's exclusive remedy shall be, at Digia's option, either (A) +return of the price Licensee paid for the Licensed Software, or (B) +repair or replacement of the Licensed Software, provided Licensee +returns to Digia all copies of the Licensed Software as originally +delivered to Licensee. Digia shall not under any circumstances be liable +to Licensee based on failure of the Licensed Software if the failure +resulted from accident, abuse or misapplication, nor shall Digia under +any circumstances be liable for special damages, punitive or exemplary +damages, damages for loss of profits or interruption of business or for +loss or corruption of data. Any award of damages from Digia to Licensee +shall not exceed the total amount Licensee has paid to Digia in +connection with this Agreement. + + +9. CONFIDENTIALITY + +Each party acknowledges that during the Term of this Agreement it shall +have access to information about the other party's business, business +methods, business plans, customers, business relations, technology, and +other information, including the terms of this Agreement, that is +confidential and of great value to the other party, and the value of +which would be significantly reduced if disclosed to third parties (the +"Confidential Information"). Accordingly, when a party (the "Receiving +Party") receives Confidential Information from another party (the +"Disclosing Party"), the Receiving Party shall, and shall obligate its +employees and agents and employees and agents of its Affiliates to: (i) +maintain the Confidential Information in strict confidence; (ii) not +disclose the Confidential Information to a third party without the +Disclosing Party's prior written approval; and (iii) not, directly or +indirectly, use the Confidential Information for any purpose other than +for exercising its rights and fulfilling its responsibilities pursuant +to this Agreement. Each party shall take reasonable measures to protect +the Confidential Information of the other party, which measures shall +not be less than the measures taken by such party to protect its own +confidential and proprietary information. + +"Confidential Information" shall not include information that (a) is or +becomes generally known to the public through no act or omission of the +Receiving Party; (b) was in the Receiving Party's lawful possession +prior to the disclosure hereunder and was not subject to limitations on +disclosure or use; (c) is developed by the Receiving Party without +access to the Confidential Information of the Disclosing Party or by +persons who have not had access to the Confidential Information of the +Disclosing Party as proven by the written records of the Receiving +Party; (d) is lawfully disclosed to the Receiving Party without +restrictions, by a third party not under an obligation of +confidentiality; or (e) the Receiving Party is legally compelled to +disclose the information, in which case the Receiving Party shall assert +the privileged and confidential nature of the information and cooperate +fully with the Disclosing Party to protect against and prevent +disclosure of any Confidential Information and to limit the scope of +disclosure and the dissemination of disclosed Confidential Information +by all legally available means. + +The obligations of the Receiving Party under this Section shall continue +during the Initial Term and for a period of five (5) years after +expiration or termination of this Agreement. To the extent that the +terms of the Non-Disclosure Agreement between Digia and Licensee +conflict with the terms of this Section 9, this Section 9 shall be +controlling over the terms of the Non-Disclosure Agreement. + + +10. GENERAL PROVISIONS + +10.1 No Assignment + +Licensee shall not be entitled to assign or transfer all or any of its +rights, benefits and obligations under this Agreement without the prior +written consent of Digia, which shall not be unreasonably withheld. + +10.2 Termination + +Digia may terminate the Agreement at any time immediately upon written +notice by Digia to Licensee if Licensee breaches this Agreement. + +Upon termination of this Agreement, Licensee shall return to Digia all +copies of Licensed Software that were supplied by Digia. All other +copies of Licensed Software in the possession or control of Licensee +must be erased or destroyed. An officer of Licensee must promptly +deliver to Digia a written confirmation that this has occurred. + +10.3 Surviving Sections + +Any terms and conditions that by their nature or otherwise reasonably +should survive a cancellation or termination of this Agreement shall +also be deemed to survive. Such terms and conditions include, but are +not limited to the following Sections: 2, 5, 6, 7, 8, 9, 10.2, 10.3, 10.4, +10.5, 10.6, 10.7, and 10.8 of this Agreement. + +10.4 Entire Agreement + +This Agreement constitutes the complete agreement between the parties +and supersedes all prior or contemporaneous discussions, +representations, and proposals, written or oral, with respect to the +subject matters discussed herein, with the exception of the +non-disclosure agreement executed by the parties in connection with this +Agreement ("Non-Disclosure Agreement"), if any, shall be subject to +Section 9. No modification of this Agreement shall be effective unless +contained in a writing executed by an authorized representative of each +party. No term or condition contained in Licensee's purchase order shall +apply unless expressly accepted by Digia in writing. If any provision of +the Agreement is found void or unenforceable, the remainder shall remain +valid and enforceable according to its terms. If any remedy provided is +determined to have failed for its essential purpose, all limitations of +liability and exclusions of damages set forth in this Agreement shall +remain in effect. + +10.5 Export Control + +Licensee acknowledges that the Licensed Software may be subject to +export control restrictions of various countries. Licensee shall fully +comply with all applicable export license restrictions and requirements +as well as with all laws and regulations relating to the importation of +the Licensed Software and shall procure all necessary governmental +authorizations, including without limitation, all necessary licenses, +approvals, permissions or consents, where necessary for the +re-exportation of the Licensed Software., + +10.6 Governing Law and Legal Venue + +This Agreement shall be construed and interpreted in accordance with the +laws of Finland, excluding its choice of law provisions. Any disputes +arising out of or relating to this Agreement shall be resolved in +arbitration under the Rules of Arbitration of the Chamber of Commerce of +Helsinki, Finland. The arbitration tribunal shall consist of one (1), or +if either Party so requires, of three (3), arbitrators. The award shall +be final and binding and enforceable in any court of competent +jurisdiction. The arbitration shall be held in Helsinki, Finland and the +process shall be conducted in the English language. + +10.7 No Implied License + +There are no implied licenses or other implied rights granted under this +Agreement, and all rights, save for those expressly granted hereunder, +shall remain with Digia and its licensors. In addition, no licenses or +immunities are granted to the combination of the Licensed Software with +any other software or hardware not delivered by Digia under this +Agreement. + +10.8 Government End Users + +A "U.S. Government End User" shall mean any agency or entity of the +government of the United States. The following shall apply if Licensee +is a U.S. Government End User. The Licensed Software is a "commercial +item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), +consisting of "commercial computer software" and "commercial computer +software documentation," as such terms are used in 48 C.F.R. 12.212 +(Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 +through 227.7202-4 (June 1995), all U.S. Government End Users acquire +the Licensed Software with only those rights set forth herein. The +Licensed Software (including related documentation) is provided to U.S. +Government End Users: (a) only as a commercial end item; and (b) only +pursuant to this Agreement. + + + + diff --git a/meta-qt5/recipes-devtools/cmake/cmake-native_2.8.11.2.bbappend b/meta-qt5/recipes-devtools/cmake/cmake-native_2.8.11.2.bbappend new file mode 100644 index 0000000000..924228701b --- /dev/null +++ b/meta-qt5/recipes-devtools/cmake/cmake-native_2.8.11.2.bbappend @@ -0,0 +1,20 @@ +# Ugly hack to work around undefined OE_QMAKE_PATH_EXTERNAL_HOST_BINS variable +# and possibly missing qmake binary (qtbase-native can be removed from sysroot +# e.g. in order to upgrade it, even when there is target qtbase) + +#| -- Performing Test run_pic_test - Success +#| CMake Error at tmp-eglibc/sysroots/qemuarm/usr/lib/cmake/Qt5Core/Qt5CoreConfig.cmake:27 (message): +#| The imported target "Qt5::Core" references the file +#| +#| "/qmake" +#| +#| but this file does not exist. Possible reasons include: + +do_configure_prepend() { + sed -i 's/^find_package(Qt5Core QUIET)$/#find_package(Qt5Core QUIET)/g' ${S}/Tests/RunCMake/CMakeLists.txt + sed -i 's/^find_package(Qt5Core REQUIRED)/#find_package(Qt5Core REQUIRED)/g' ${S}/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake + sed -i 's/^ find_package(Qt5Widgets REQUIRED)/# find_package(Qt5Widgets REQUIRED)/g' ${S}/Tests/QtAutomoc/CMakeLists.txt +# sed -i 's/^find_package(Qt5Core REQUIRED)/#find_package(Qt5Core REQUIRED)/g' ${S}/Tests/Qt4And5Automoc/CMakeLists.txt + sed -i 's/^ find_package(Qt5Widgets QUIET NO_MODULE)/# find_package(Qt5Widgets QUIET NO_MODULE)/g' ${S}/Tests/CMakeLists.txt + sed -i 's/^find_package(Qt5Widgets QUIET)/#find_package(Qt5Widgets QUIET)/g' ${S}/Source/QtDialog/CMakeLists.txt +} diff --git a/meta-qt5/recipes-devtools/cmake/cmake_2.8.11.2.bbappend b/meta-qt5/recipes-devtools/cmake/cmake_2.8.11.2.bbappend new file mode 100644 index 0000000000..ebacf720e6 --- /dev/null +++ b/meta-qt5/recipes-devtools/cmake/cmake_2.8.11.2.bbappend @@ -0,0 +1,20 @@ +# Ugly hack to work around undefined OE_QMAKE_PATH_EXTERNAL_HOST_BINS variable +# and possibly missing qmake binary (qtbase-native can be removed from sysroot +# e.g. in order to upgrade it, even when there is target qtbase) + +#| -- Performing Test run_pic_test - Success +#| CMake Error at tmp-eglibc/sysroots/qemuarm/usr/lib/cmake/Qt5Core/Qt5CoreConfig.cmake:27 (message): +#| The imported target "Qt5::Core" references the file +#| +#| "/qmake" +#| +#| but this file does not exist. Possible reasons include: + +do_configure_prepend() { + sed -i 's/^find_package(Qt5Core QUIET)$/#find_package(Qt5Core QUIET)/g' ${S}/Tests/RunCMake/CMakeLists.txt + sed -i 's/^find_package(Qt5Core REQUIRED)/#find_package(Qt5Core REQUIRED)/g' ${S}/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake + sed -i 's/^ find_package(Qt5Widgets REQUIRED)/# find_package(Qt5Widgets REQUIRED)/g' ${S}/Tests/QtAutomoc/CMakeLists.txt + sed -i 's/^find_package(Qt5Core REQUIRED)/#find_package(Qt5Core REQUIRED)/g' ${S}/Tests/Qt4And5Automoc/CMakeLists.txt + sed -i 's/^ find_package(Qt5Widgets QUIET NO_MODULE)/# find_package(Qt5Widgets QUIET NO_MODULE)/g' ${S}/Tests/CMakeLists.txt + sed -i 's/^find_package(Qt5Widgets QUIET)/#find_package(Qt5Widgets QUIET)/g' ${S}/Source/QtDialog/CMakeLists.txt +} diff --git a/meta-qt5/recipes-qt/examples/cinematicexperience_1.0.bb b/meta-qt5/recipes-qt/examples/cinematicexperience_1.0.bb new file mode 100644 index 0000000000..9ee5532342 --- /dev/null +++ b/meta-qt5/recipes-qt/examples/cinematicexperience_1.0.bb @@ -0,0 +1,40 @@ +SUMMARY = "Qt5 technology demo" +DESCRIPTION = "Cinematic Experience collects many of the new Qt5 QtQuick 2.0 features into the same UX demo application. It uses particles, sprites, path animation, custom shaders etc. features which Qt5 introduces for QML UIs." +HOMEPAGE = "http://quitcoding.com/?page=work#cinex" +LICENSE = "CC-BY-3.0" +LIC_FILES_CHKSUM = "file://README;beginline=38;endline=50;md5=51babd597624b70752069953876aaa18" + +SRC_URI = "http://quitcoding.com/download/Qt5_CinematicExperience_rpi_1.0.tgz" + +SRC_URI[md5sum] = "935a5db0a6b2a72c67236e72f52be7d1" +SRC_URI[sha256sum] = "0dd602983ced5f7c0cfd5ad0fbfe2b0b7e3c9ff715e4ef23eef818ccc2b6c60b" + +S = "${WORKDIR}/Qt5_CinematicExperience_rpi_${PV}/" + +# other version available for small screens +#SRC_URI = "http://quitcoding.com/download/Qt5_CinematicExperience_1.0.tgz" +#SRC_URI[md5sum] = "1c4f9bf5411c985fc5d3dbfc5d826a29" +#SRC_URI[sha256sum] = "0e547e0259667915a24e84ade5efdcd0c553f81786734452c2c8dbce19a19f44" +#S = "${WORKDIR}/Qt5_CinematicExperience_${PV}/" + +DEPENDS = "qtdeclarative qtgraphicaleffects" +RDEPENDS_${PN} = "qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" + +require recipes-qt/qt5/qt5.inc + +do_install() { + install -d ${D}${datadir}/${P} + install -m 0755 ${B}/Qt5_CinematicExperience ${D}${datadir}/${P} + cp -a ${S}/content ${D}${datadir}/${P} + install -m 0644 ${S}/Qt5_CinematicExperience.qml ${D}${datadir}/${P} + + install -d ${D}${bindir} + echo "#!/bin/sh" > ${D}${bindir}/Qt5_CinematicExperience + echo "export QML_IMPORT_PATH=${datadir}/${P}" >> ${D}${bindir}/Qt5_CinematicExperience + echo "export QML2_IMPORT_PATH=${datadir}/${P}" >> ${D}${bindir}/Qt5_CinematicExperience + echo "${datadir}/${P}/Qt5_CinematicExperience \$* " >> ${D}${bindir}/Qt5_CinematicExperience + chmod +x ${D}${bindir}/Qt5_CinematicExperience +} + +FILES_${PN}-dbg += "${datadir}/${P}/.debug" +FILES_${PN} += "${datadir}" diff --git a/meta-qt5/recipes-qt/libsystemd-qt/files/0001-Add-wrapper-for-the-resetFailedUnit-command.patch b/meta-qt5/recipes-qt/libsystemd-qt/files/0001-Add-wrapper-for-the-resetFailedUnit-command.patch new file mode 100644 index 0000000000..6752f3dc62 --- /dev/null +++ b/meta-qt5/recipes-qt/libsystemd-qt/files/0001-Add-wrapper-for-the-resetFailedUnit-command.patch @@ -0,0 +1,71 @@ +From 0b30c0e223f35ec7e27b04142135afc3f298a776 Mon Sep 17 00:00:00 2001 +From: Holger Hans Peter Freyther +Date: Fri, 21 Mar 2014 20:25:19 +0100 +Subject: [PATCH] Add wrapper for the resetFailedUnit command + +--- + src/sdmanager.cpp | 14 ++++++++++++++ + src/sdmanager.h | 2 ++ + src/sdmanager_p.h | 1 + + 3 files changed, 17 insertions(+) + +diff --git a/src/sdmanager.cpp b/src/sdmanager.cpp +index 6bcd459..b3b41f7 100644 +--- a/src/sdmanager.cpp ++++ b/src/sdmanager.cpp +@@ -333,6 +333,15 @@ Job::Ptr SystemdPrivate::stopUnit(const QString &name, const Systemd::Mode mode) + return job; + } + ++void SystemdPrivate::resetFailedUnit(const QString& name) ++{ ++ QDBusPendingReply reply = isdface.ResetFailedUnit(name); ++ reply.waitForFinished(); ++ ++ if (reply.isError()) ++ qDebug() << reply.error().message(); ++} ++ + QString SystemdPrivate::modeToString(const Systemd::Mode mode) + { + switch(mode) { +@@ -447,6 +456,11 @@ Job::Ptr Systemd::stopUnit(const QString &name, const Systemd::Mode mode) + return globalSystemd()->stopUnit(name, mode); + } + ++void Systemd::resetFailedUnit(const QString &name) ++{ ++ return globalSystemd()->resetFailedUnit(name); ++} ++ + Notifier* Systemd::notifier() + { + return globalSystemd(); +diff --git a/src/sdmanager.h b/src/sdmanager.h +index 80fb25a..de09f43 100644 +--- a/src/sdmanager.h ++++ b/src/sdmanager.h +@@ -185,6 +185,8 @@ namespace Systemd + */ + SDQT_EXPORT Job::Ptr stopUnit(const QString &name, const Mode mode); + ++ SDQT_EXPORT void resetFailedUnit(const QString &name); ++ + SDQT_EXPORT Notifier* notifier(); + } + +diff --git a/src/sdmanager_p.h b/src/sdmanager_p.h +index defee8f..674ce4f 100644 +--- a/src/sdmanager_p.h ++++ b/src/sdmanager_p.h +@@ -53,6 +53,7 @@ public: + Job::Ptr restartUnit(const QString &name, const Mode mode); + Job::Ptr startUnit(const QString &name, const Mode mode); + Job::Ptr stopUnit(const QString &name, const Mode mode); ++ void resetFailedUnit(const QString &name); + + protected Q_SLOTS: + void onJobNew(const uint id, const QDBusObjectPath &job, const QString &unit); +-- +1.9.0 + diff --git a/meta-qt5/recipes-qt/libsystemd-qt/files/fix-pkgconfig.patch b/meta-qt5/recipes-qt/libsystemd-qt/files/fix-pkgconfig.patch new file mode 100644 index 0000000000..f20de0ea2e --- /dev/null +++ b/meta-qt5/recipes-qt/libsystemd-qt/files/fix-pkgconfig.patch @@ -0,0 +1,18 @@ +diff --git a/QtSystemd.pc.cmake b/QtSystemd.pc.cmake +index 6b6c0e5..c3bdd42 100644 +--- a/QtSystemd.pc.cmake ++++ b/QtSystemd.pc.cmake +@@ -1,6 +1,6 @@ + prefix=@CMAKE_INSTALL_PREFIX@ + exec_prefix=${prefix} +-libdir=@CMAKE_INSTALL_PREFIX@/lib@LIB_SUFFIX@ ++libdir=${prefix}/lib@LIB_SUFFIX@ + includedir=${prefix}/include/QtSystemd + + Name: QtSystemd +@@ -9,4 +9,4 @@ Version: @VERSION@ + + Requires: systemd + Cflags: -I${includedir} @CMAKE_INCLUDE_PATH@ +-Libs: -L${libdir} -lQtSystemd @CMAKE_LIBRARY_PATH@ ++Libs: -L${libdir} -lQtSystemd diff --git a/meta-qt5/recipes-qt/libsystemd-qt/libsystemd-qt_git.bb b/meta-qt5/recipes-qt/libsystemd-qt/libsystemd-qt_git.bb new file mode 100644 index 0000000000..2e9131597f --- /dev/null +++ b/meta-qt5/recipes-qt/libsystemd-qt/libsystemd-qt_git.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Qt Wrapper for systemd" +HOMEPAGE = "https://github.com/ilpianista/libsystemd-qt" + +LICENSE = "LGPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02" + +inherit cmake_qt5 + +DEPENDS += "systemd qtbase" +RDEPENDS_${PN} = "dbus" + +PV = "208+git${SRCPV}" + +SRC_URI = "git://github.com/ilpianista/libsystemd-qt;branch=master \ + file://fix-pkgconfig.patch \ + file://0001-Add-wrapper-for-the-resetFailedUnit-command.patch " +S= "${WORKDIR}/git" +SRCREV = "398056b33314fc583dd8d8422e5c2f8b797fdb3b" + +FILES_${PN}-dev += "${libdir}/cmake/* ${libdir}/qt5/mkspecs/features/*" diff --git a/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Fix-MALIIT_INSTALL_PRF-to-allow-the-build-with-opene.patch b/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Fix-MALIIT_INSTALL_PRF-to-allow-the-build-with-opene.patch new file mode 100644 index 0000000000..acd9a57a57 --- /dev/null +++ b/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Fix-MALIIT_INSTALL_PRF-to-allow-the-build-with-opene.patch @@ -0,0 +1,34 @@ +From 33554f9b3fd493c7e28617fd01466ffa87251f27 Mon Sep 17 00:00:00 2001 +From: Samuel Stirtzel +Date: Wed, 1 Aug 2012 13:21:51 +0200 +Subject: [PATCH] Fix MALIIT_INSTALL_PRF to allow the build with openembedded + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Samuel Stirtzel +--- + config.pri | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/config.pri b/config.pri +index b037b8c..43409f3 100644 +--- a/config.pri ++++ b/config.pri +@@ -161,9 +161,11 @@ contains(QT_MAJOR_VERSION, 4) { + QT_WIDGETS = gui widgets + } + +-MALIIT_INSTALL_PRF = $$[QT_INSTALL_DATA]/mkspecs/features +-local-install { +- MALIIT_INSTALL_PRF = $$replace(MALIIT_INSTALL_PRF, $$[QT_INSTALL_PREFIX], $$PREFIX) ++isEmpty(MALIIT_INSTALL_PRF) { ++ MALIIT_INSTALL_PRF = $$[QT_INSTALL_DATA]/mkspecs/features ++ local-install { ++ MALIIT_INSTALL_PRF = $$replace(MALIIT_INSTALL_PRF, $$[QT_INSTALL_PREFIX], $$PREFIX) ++ } + } + + defineTest(outputFile) { +-- +1.7.9.5 + diff --git a/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Fix-QT_IM_PLUGIN_PATH-to-allow-openembedded-to-build.patch b/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Fix-QT_IM_PLUGIN_PATH-to-allow-openembedded-to-build.patch new file mode 100644 index 0000000000..830e6deb4e --- /dev/null +++ b/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Fix-QT_IM_PLUGIN_PATH-to-allow-openembedded-to-build.patch @@ -0,0 +1,34 @@ +From fb6acbd2af9ed288c1c4f4200fc73d8d9955486a Mon Sep 17 00:00:00 2001 +From: Samuel Stirtzel +Date: Wed, 1 Aug 2012 13:33:10 +0200 +Subject: [PATCH] Fix QT_IM_PLUGIN_PATH to allow openembedded to build Maliit + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Samuel Stirtzel +--- + input-context/input-context.pri | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/input-context/input-context.pri b/input-context/input-context.pri +index d94e6a3..d460e70 100644 +--- a/input-context/input-context.pri ++++ b/input-context/input-context.pri +@@ -25,8 +25,10 @@ for(OPTION,$$list($$lower($$COV_OPTION))){ + + QMAKE_CLEAN += $$OBJECTS_DIR/*.gcno $$OBJECTS_DIR/*.gcda + +-QT_IM_PLUGIN_PATH = $$[QT_INSTALL_PLUGINS]/inputmethods +-QT_PREFIX = $$[QT_INSTALL_PREFIX] +-local-install { +- QT_IM_PLUGIN_PATH = $$replace(QT_IM_PLUGIN_PATH, $$QT_PREFIX, $$PREFIX) ++isEmpty(QT_IM_PLUGIN_PATH) { ++ QT_IM_PLUGIN_PATH = $$[QT_INSTALL_PLUGINS]/inputmethods ++ QT_PREFIX = $$[QT_INSTALL_PREFIX] ++ local-install { ++ QT_IM_PLUGIN_PATH = $$replace(QT_IM_PLUGIN_PATH, $$QT_PREFIX, $$PREFIX) ++ } + } +-- +1.7.9.5 + diff --git a/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Link-to-libmaliit-1-0-in-inputcontext-plugin.patch b/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Link-to-libmaliit-1-0-in-inputcontext-plugin.patch new file mode 100644 index 0000000000..c2291c6b7b --- /dev/null +++ b/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Link-to-libmaliit-1-0-in-inputcontext-plugin.patch @@ -0,0 +1,23 @@ +From cc33efdedbec9e9a55e9a0c6756516fd84d42e53 Mon Sep 17 00:00:00 2001 +From: Samuel Stirtzel +Date: Fri, 1 Mar 2013 11:31:41 +0100 +Subject: [PATCH] Link to libmaliit-1,0 in inputcontext plugin + +Signed-off-by: Samuel Stirtzel +--- + .../input-context-plugin/input-context-plugin.pro | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/input-context/input-context-plugin/input-context-plugin.pro b/input-context/input-context-plugin/input-context-plugin.pro +index eefbe93..296e2fa 100644 +--- a/input-context/input-context-plugin/input-context-plugin.pro ++++ b/input-context/input-context-plugin/input-context-plugin.pro +@@ -15,3 +15,5 @@ CONFIG += plugin + + INSTALLS += target + target.path += $$QT_IM_PLUGIN_PATH ++ ++LIBS += -L../../lib -l"maliit-1.0" +-- +1.7.9.5 + diff --git a/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/maliit-server.desktop b/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/maliit-server.desktop new file mode 100644 index 0000000000..24bdf9b525 --- /dev/null +++ b/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/maliit-server.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Name=Maliit server +Exec=/usr/bin/maliit-server +Icon= +Type=Application +Categories=Utility; diff --git a/meta-qt5/recipes-qt/maliit/maliit-framework-qt5_git.bb b/meta-qt5/recipes-qt/maliit/maliit-framework-qt5_git.bb new file mode 100644 index 0000000000..633bf6e427 --- /dev/null +++ b/meta-qt5/recipes-qt/maliit/maliit-framework-qt5_git.bb @@ -0,0 +1,94 @@ +DESCRIPTION = "A virtual keyboard for touch-screen based user interfaces" +HOMEPAGE = "https://wiki.maliit.org/Main_Page" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=5c917f6ce94ceb8d8d5e16e2fca5b9ad" + +inherit qmake5 + +SRC_URI = "git://github.com/maliit/framework.git;branch=master \ + file://0001-Fix-MALIIT_INSTALL_PRF-to-allow-the-build-with-opene.patch \ + file://maliit-server.desktop \ +" + +SRCREV = "dbc0403f329d7f6ce2f5a09e6ff5adbd2548a8c9" +PV = "0.99.0+git${SRCPV}" + + +PACKAGES =+ "${PN}-gtk" +GTKIMMODULES_PACKAGES = "${PN}-gtk" + +DEPENDS = "qtdeclarative" + +# FIXME: Do we need something like this with qt5? +#RDEPENDS_${PN} = "qt4-plugin-inputmethod-imsw-multi libqtsvg4" + +RRECOMMENDS_${PN} = "maliit-plugins-qt5" + +FILES_${PN} += "\ + ${libdir}/*.so* \ + ${bindir} \ + ${datadir}/applications/maliit-server.desktop \ + ${datadir}/dbus-1 \ +" + +FILES_${PN}-dbg += "\ + ${libdir}/maliit-framework-tests \ +" + +FILES_${PN}-dev += "\ + ${includedir}/maliit \ + ${libdir}/pkgconfig \ + ${libdir}/qt5/mkspecs \ +" + +EXTRA_QMAKEVARS_PRE = "\ + PREFIX=${prefix} \ + LIBDIR=${libdir} \ + DATADIR=${datadir} \ + QT_IM_PLUGIN_PATH=${libdir}/qt4/plugins/inputmethods \ + MALIIT_INSTALL_PRF=${QMAKE_MKSPEC_PATH}/mkspecs/features \ + SCHEMADIR=${sysconfdir}/gconf/schemas \ + CONFIG+=disable-gconf \ + CONFIG+=disable-gtk-cache-update \ + CONFIG+=local-install \ + CONFIG+=nosdk \ + CONFIG+=nodoc \ + CONFIG+=noxcb \ + CONFIG+=enable-dbus-activation \ +" + +EXTRA_OEMAKE += "INSTALL_ROOT=${D}" + +do_install_append() { + #Fix absolute paths + sed -i -e "s|/usr|${STAGING_DIR_TARGET}${prefix}|" ${D}/${libdir}/${QT_DIR_NAME}/mkspecs/features/maliit-framework.prf + sed -i -e "s|/usr|${STAGING_DIR_TARGET}${prefix}|" ${D}/${libdir}/${QT_DIR_NAME}/mkspecs/features/maliit-plugins.prf + + install -d ${D}${datadir}/applications + install -m 644 ${WORKDIR}/maliit-server.desktop ${D}${datadir}/applications +} + +pkg_postinst_${PN} () { +#!/bin/sh +# should run online +if [ "x$D" != "x" ]; then + exit 1 +fi +echo "export QT_IM_MODULE=Maliit" >> /etc/xprofile +ln -s /usr/share/applications/maliit-server.desktop /etc/xdg/autostart/maliit-server.desktop +} + +pkg_postrm_${PN} () { +#!/bin/sh +# should run online +if [ "x$D" = "x" ]; then + exit 1 +fi +if [ -e "/etc/xprofile" ]; then + sed -i -e "g|export QT_IM_MODULE=Maliit|d" /etc/xprofile +fi +rm -f /etc/xdg/autostart/maliit-server.desktop +} + +S = "${WORKDIR}/git" diff --git a/meta-qt5/recipes-qt/maliit/maliit-plugins-qt5_git.bb b/meta-qt5/recipes-qt/maliit/maliit-plugins-qt5_git.bb new file mode 100644 index 0000000000..7dc1a7304b --- /dev/null +++ b/meta-qt5/recipes-qt/maliit/maliit-plugins-qt5_git.bb @@ -0,0 +1,35 @@ +DESCRIPTION = "Plugins for a virtual keyboard for touch-screen based user interfaces" +HOMEPAGE = "https://wiki.maliit.org/Main_Page" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=f29b21caa8e460097bfad9c026a33621" + +inherit qmake5 + +DEPENDS = "maliit-framework-qt5" + +RDEPENDS_${PN} += "qtsvg-plugins" + +SRC_URI = "git://github.com/maliit/plugins.git;branch=master" + +SRCREV = "c6a348592607248a771a3dde5a0e33dc3c433a2a" +PV = "0.99.0+git${SRCPV}" + +EXTRA_QMAKEVARS_PRE = "\ + PREFIX=${prefix} \ + MALIIT_INSTALL_PRF=${QMAKE_MKSPEC_PATH}/mkspecs/features \ + MALIIT_PLUGINS_DATA_DIR=${datadir} \ + LIBDIR=${libdir} \ + CONFIG+=nodoc \ +" + +FILES_${PN} += "\ + ${libdir}/maliit \ + ${datadir} \ +" + +FILES_${PN}-dbg += "${libdir}/maliit/plugins/.debug" + +S= "${WORKDIR}/git" + +EXTRA_OEMAKE += "INSTALL_ROOT=${D}" diff --git a/meta-qt5/recipes-qt/meta/meta-toolchain-qt5.bb b/meta-qt5/recipes-qt/meta/meta-toolchain-qt5.bb new file mode 100644 index 0000000000..8991176590 --- /dev/null +++ b/meta-qt5/recipes-qt/meta/meta-toolchain-qt5.bb @@ -0,0 +1,7 @@ +SUMMARY = "Meta package for building an installable Qt5 toolchain and SDK" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +inherit populate_sdk populate_sdk_qt5 diff --git a/meta-qt5/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb b/meta-qt5/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb new file mode 100644 index 0000000000..4cc0b93051 --- /dev/null +++ b/meta-qt5/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb @@ -0,0 +1,14 @@ +# Copyright (C) 2014 O.S. Systems Software LTDA. + +SUMMARY = "Host packages for the Qt5 standalone SDK or external toolchain" +LICENSE = "MIT" + +inherit nativesdk packagegroup + +PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1" + +RDEPENDS_${PN} += " \ + nativesdk-packagegroup-sdk-host \ + nativesdk-qttools \ + nativesdk-qtbase-tools \ +" diff --git a/meta-qt5/recipes-qt/packagegroups/packagegroup-qt5-qtcreator-debug.bb b/meta-qt5/recipes-qt/packagegroups/packagegroup-qt5-qtcreator-debug.bb new file mode 100644 index 0000000000..b34dbffa91 --- /dev/null +++ b/meta-qt5/recipes-qt/packagegroups/packagegroup-qt5-qtcreator-debug.bb @@ -0,0 +1,16 @@ +# Copyright (C) 2014 O.S. Systems Software LTDA. + +SUMMARY = "Remote debugging tools for QtCreator integration" +LICENSE = "MIT" + +inherit packagegroup + +# Override by distro if needed +VIRTUAL-RUNTIME_qtcreator-debug-ssh-daemon ?= "openssh-sshd" + +RDEPENDS_${PN} = " \ + gdbserver \ + ${VIRTUAL-RUNTIME_qtcreator-debug-ssh-daemon} \ + openssh-sftp-server \ + qtdeclarative-plugins \ +" diff --git a/meta-qt5/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb b/meta-qt5/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb new file mode 100644 index 0000000000..997df189ab --- /dev/null +++ b/meta-qt5/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb @@ -0,0 +1,40 @@ +# Copyright (C) 2014 O.S. Systems Software LTDA. + +DESCRIPTION = "Target packages for Qt5 SDK" +LICENSE = "MIT" + +inherit packagegroup + +PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1" + +# Requires meta-ruby to work +USE_RUBY = " \ + qtwebkit-mkspecs \ + qtwebkit-dev \ +" + +RDEPENDS_${PN} += " \ + packagegroup-core-standalone-sdk-target \ + libsqlite3-dev \ + qtbase-mkspecs \ + qtscript-mkspecs \ + qtxmlpatterns-mkspecs \ + qtdeclarative-mkspecs \ + qtsensors-mkspecs \ + qt3d-mkspecs \ + qtlocation-mkspecs \ + qtsvg-mkspecs \ + qtbase-dev \ + qtdeclarative-dev \ + qtscript-dev \ + qt3d-dev \ + qtlocation-dev \ + qtsensors-dev \ + qtsvg-dev \ + qtxmlpatterns-dev \ + qtdeclarative-dev \ + qtdeclarative-plugins \ + qtdeclarative-qmlplugins \ + qtgraphicaleffects-dev \ + ${@base_contains('BBFILE_COLLECTIONS', 'ruby-layer', '${USE_RUBY}', '', d)} \ +" diff --git a/meta-qt5/recipes-qt/qsiv/qsiv_1.1.bb b/meta-qt5/recipes-qt/qsiv/qsiv_1.1.bb new file mode 100644 index 0000000000..bb2efa69a9 --- /dev/null +++ b/meta-qt5/recipes-qt/qsiv/qsiv_1.1.bb @@ -0,0 +1,28 @@ +SUMMARY = "Qt Simple Image Viewer" +DESCRIPTION = "A simple image viewer using a mix of C++ and qml code for demonstration." +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=11c7965a9059e287de5d93b98adf6d1a" +DEPENDS = "qtdeclarative" + +SRCREV = "7b9810b0f02f9ac74fae3ead6e2e9fb5c1382173" +SRC_URI = "git://code.ossystems.com.br/qt/qsiv;protocol=http" + +S = "${WORKDIR}/git" + +inherit qmake5 + +EXTRA_QMAKEVARS_PRE += "target.path=${libdir}/${P}" + +do_install_append() { + install -d ${D}${bindir} + echo "#!/bin/sh" > ${D}${bindir}/qsiv + echo "export QML_IMPORT_PATH=${libdir}/${P}/qml/qsiv" >> ${D}${bindir}/qsiv + echo "export QML2_IMPORT_PATH=${libdir}/${P}/qml/qsiv" >> ${D}${bindir}/qsiv + echo "${libdir}/${P}/qsiv \$* " >> ${D}${bindir}/qsiv + chmod +x ${D}${bindir}/qsiv +} + +FILES_${PN} += "${libdir}/${P}" +RDEPENDS_${PN} += "qtdeclarative-qmlplugins" + +FILES_${PN}-dbg += "${libdir}/${P}/.debug" diff --git a/meta-qt5/recipes-qt/qt5/nativesdk-qt5.inc b/meta-qt5/recipes-qt/qt5/nativesdk-qt5.inc new file mode 100644 index 0000000000..2eb8c1423e --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/nativesdk-qt5.inc @@ -0,0 +1,12 @@ +inherit nativesdk qmake5_base + +# we don't want conflicts with qt4 +OE_QMAKE_PATH_HEADERS = "${OE_QMAKE_PATH_QT_HEADERS}" +OE_QMAKE_PATH_ARCHDATA = "${OE_QMAKE_PATH_QT_ARCHDATA}" +OE_QMAKE_PATH_DATA = "${OE_QMAKE_PATH_QT_DATA}" +OE_QMAKE_PATH_BINS = "${OE_QMAKE_PATH_QT_BINS}" +OE_QMAKE_PATH_TRANSLATIONS = "${OE_QMAKE_PATH_QT_TRANSLATIONS}" +OE_QMAKE_PATH_DOCS = "${OE_QMAKE_PATH_QT_DOCS}" +OE_QMAKE_PATH_SETTINGS = "${OE_QMAKE_PATH_QT_SETTINGS}" +OE_QMAKE_PATH_EXAMPLES = "${OE_QMAKE_PATH_QT_EXAMPLES}" +OE_QMAKE_PATH_TESTS = "${OE_QMAKE_PATH_QT_TESTS}" diff --git a/meta-qt5/recipes-qt/qt5/nativesdk-qtbase.inc b/meta-qt5/recipes-qt/qt5/nativesdk-qtbase.inc new file mode 100644 index 0000000000..884b1a62eb --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/nativesdk-qtbase.inc @@ -0,0 +1,223 @@ +DESCRIPTION = "SDK version of Qt/[X11|Mac|Embedded]" +DEPENDS = "nativesdk-zlib nativesdk-dbus qtbase-native" +SECTION = "libs" +HOMEPAGE = "http://qt-project.org" + +QT_MODULE = "qtbase" + +require nativesdk-qt5.inc + +# it's already included with newer oe-core, but include it here for dylan +FILESEXTRAPATHS =. "${FILE_DIRNAME}/qtbase:" + +PR = "r1" + +# common with -native and target version +SRC_URI += "\ + file://0001-Add-linux-oe-g-platform.patch \ + file://0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \ + file://0003-Add-external-hostbindir-option.patch \ + file://0004-configureapp-Prefix-default-LIBDIRS-and-INCDIRS-with.patch \ + file://0005-qt_module-Fix-pkgconfig-replacement.patch \ + file://0006-configure-don-t-export-SYSTEM_VARIABLES-to-.qmake.va.patch \ + file://0007-configure.prf-Allow-to-add-extra-arguments-to-make.patch \ + file://0008-configure-make-pulseaudio-alsa-freetype-a-configurab.patch \ + file://0009-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-determ.patch \ +" + +# common with -native +SRC_URI += " \ + file://0010-Always-build-uic.patch \ +" + +# specific for nativesdk version +SRC_URI += " \ + file://0011-configure-preserve-built-qmake-and-swap-with-native-.patch \ + file://0012-configure-bump-path-length-from-256-to-512-character.patch \ +" + +PACKAGES = "${PN}-tools-dbg ${PN}-tools-dev ${PN}-tools-staticdev ${PN}-tools" + +PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src" + +FILES_${PN}-tools-dev = " \ + ${includedir} \ + ${FILES_SOLIBSDEV} ${libdir}/*.la \ + ${OE_QMAKE_PATH_ARCHDATA}/mkspecs \ +" + +FILES_${PN}-tools-staticdev = " \ + ${libdir}/libQt5Bootstrap.a \ +" + +FILES_${PN}-tools-dbg = " \ + ${libdir}/.debug \ + ${OE_QMAKE_PATH_BINS}/.debug \ +" + +FILES_${PN}-tools = " \ + ${libdir}/lib*${SOLIBS} \ + ${OE_QMAKE_PATH_BINS}/* \ +" + +# qttools binaries are placed in a subdir of bin in order to avoid +# collisions with qt4. This would trigger debian.bbclass to rename the +# package, since it doesn't detect binaries in subdirs. Explicitly +# disable package auto-renaming for the tools-package. +DEBIAN_NOAUTONAME_${PN}-tools = "1" + +QT_CONFIG_FLAGS += " \ + -reduce-relocations \ + -shared \ + -silent \ + -no-pch \ + -no-rpath \ + -pkg-config \ + ${EXTRA_OECONF} \ +" + +# qtbase is exception, as these are used as install path for sysroots +OE_QMAKE_PATH_HOST_DATA = "${libdir}/${QT_DIR_NAME}" +OE_QMAKE_PATH_HOST_LIBS = "${libdir}" + +do_generate_qt_config_file() { + cat > ${QT_CONF_PATH} <> ${QT_CONF_PATH} <> ${S}/.qmake.conf + fi +} diff --git a/meta-qt5/recipes-qt/qt5/qt5-5.2.1.inc b/meta-qt5/recipes-qt/qt5/qt5-5.2.1.inc new file mode 100644 index 0000000000..50e8a7a097 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qt5-5.2.1.inc @@ -0,0 +1,19 @@ +# Copyright (C) 2012 O.S. Systems Software LTDA. +# Copyright (C) 2013 Martin Jansa + +QT_VERSION ?= "${PV}" + +# it's different for RC versions +QT_VERSION_DIR ?= "5.2" + +SRC_URI += " \ + http://download.qt-project.org/official_releases/qt/${QT_VERSION_DIR}/${QT_VERSION}/submodules/${QT_MODULE}-opensource-src-${QT_VERSION}.tar.xz \ +" + +S = "${WORKDIR}/${QT_MODULE}-opensource-src-${QT_VERSION}" + +LICENSE = "GFDL-1.3 & LGPL-2.1 | GPL-3.0" +LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=4193e7f1d47a858f6b7c0f1ee66161de \ + file://LICENSE.GPL;md5=d32239bcb673463ab874e80d47fae504 \ + file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ + file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e" diff --git a/meta-qt5/recipes-qt/qt5/qt5-git.inc b/meta-qt5/recipes-qt/qt5/qt5-git.inc new file mode 100644 index 0000000000..fa0c06e6c9 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qt5-git.inc @@ -0,0 +1,23 @@ +# Copyright (C) 2012 O.S. Systems Software LTDA. +# Copyright (C) 2013-2014 Martin Jansa + +QT_MODULE_BRANCH ?= "stable" + +# each module needs to define valid SRCREV +SRC_URI += " \ + git://qt.gitorious.org/qt/${QT_MODULE}.git;branch=${QT_MODULE_BRANCH} \ +" + +S = "${WORKDIR}/git" + +PV = "5.2.1+git${SRCPV}" + +FILESEXTRAPATHS =. "${FILE_DIRNAME}/${BPN}-git:" + +DEFAULT_PREFERENCE = "-1" + +LICENSE = "GFDL-1.3 & LGPL-2.1 | GPL-3.0" +LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=4193e7f1d47a858f6b7c0f1ee66161de \ + file://LICENSE.GPL;md5=d32239bcb673463ab874e80d47fae504 \ + file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ + file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e" diff --git a/meta-qt5/recipes-qt/qt5/qt5-native.inc b/meta-qt5/recipes-qt/qt5/qt5-native.inc new file mode 100644 index 0000000000..853502889f --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qt5-native.inc @@ -0,0 +1,19 @@ +inherit native qmake5_base + +# we don't want conflicts with qt4 +OE_QMAKE_PATH_HEADERS = "${OE_QMAKE_PATH_QT_HEADERS}" +OE_QMAKE_PATH_ARCHDATA = "${OE_QMAKE_PATH_QT_ARCHDATA}" +OE_QMAKE_PATH_DATA = "${OE_QMAKE_PATH_QT_DATA}" +OE_QMAKE_PATH_BINS = "${OE_QMAKE_PATH_QT_BINS}" +OE_QMAKE_PATH_TRANSLATIONS = "${OE_QMAKE_PATH_QT_TRANSLATIONS}" +OE_QMAKE_PATH_DOCS = "${OE_QMAKE_PATH_QT_DOCS}" +OE_QMAKE_PATH_SETTINGS = "${OE_QMAKE_PATH_QT_SETTINGS}" +OE_QMAKE_PATH_EXAMPLES = "${OE_QMAKE_PATH_QT_EXAMPLES}" +OE_QMAKE_PATH_TESTS = "${OE_QMAKE_PATH_QT_TESTS}" + +# Regenerate header files when they are included in source tarball +# Otherwise cmake files don't set PRIVATE_HEADERS correctly +do_configure_prepend() { + rm -rf ${S}/include + mkdir -p ${S}/.git || true +} diff --git a/meta-qt5/recipes-qt/qt5/qt5.inc b/meta-qt5/recipes-qt/qt5/qt5.inc new file mode 100644 index 0000000000..dfc1c7674b --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qt5.inc @@ -0,0 +1,161 @@ +# Copyright (C) 2012 O.S. Systems Software LTDA. +# Copyright (C) 2013 Martin Jansa + +inherit qmake5 + +PACKAGECONFIG_OPENSSL ?= "openssl" + +QT_MODULE ?= "${BPN}" + +# we don't want conflicts with qt4 +OE_QMAKE_PATH_HEADERS = "${OE_QMAKE_PATH_QT_HEADERS}" +OE_QMAKE_PATH_ARCHDATA = "${OE_QMAKE_PATH_QT_ARCHDATA}" +OE_QMAKE_PATH_DATA = "${OE_QMAKE_PATH_QT_DATA}" +OE_QMAKE_PATH_BINS = "${OE_QMAKE_PATH_QT_BINS}" +OE_QMAKE_PATH_TRANSLATIONS = "${OE_QMAKE_PATH_QT_TRANSLATIONS}" +OE_QMAKE_PATH_DOCS = "${OE_QMAKE_PATH_QT_DOCS}" +OE_QMAKE_PATH_SETTINGS = "${OE_QMAKE_PATH_QT_SETTINGS}" +OE_QMAKE_PATH_EXAMPLES = "${OE_QMAKE_PATH_QT_EXAMPLES}" +OE_QMAKE_PATH_TESTS = "${OE_QMAKE_PATH_QT_TESTS}" + +# If Qt5 (qtbase) is machine specific, then everything will be, +# because the (initial) qtbase configuration becomes part of Qt5/qmake +python __anonymous() { + barch = d.getVar("BUILD_ARCH", True) or '' + tarch = d.getVar("TARGET_ARCH", True) or '' + # do not do anything if we are building a native package + if barch != tarch: + tarch = d.getVar("QT_PACKAGES_ARCH", True) or '' + if tarch: + d.setVar("PACKAGE_ARCH", tarch) +} + + +# Regenerate header files when they are included in source tarball +# Otherwise cmake files don't set PRIVATE_HEADERS correctly +do_configure_prepend() { + rm -rf ${S}/include + mkdir -p ${S}/.git || true +} + +PACKAGES =. "${PN}-qmlplugins-dbg ${PN}-tools-dbg ${PN}-plugins-dbg ${PN}-qmlplugins ${PN}-tools ${PN}-plugins ${PN}-mkspecs ${PN}-examples-dev ${PN}-examples-staticdev ${PN}-examples-dbg ${PN}-examples " + +# extra -dbg packages +FILES_${PN}-qmlplugins-dbg = " \ + ${OE_QMAKE_PATH_QML}/*/.debug \ + ${OE_QMAKE_PATH_QML}/*/*/.debug \ + ${OE_QMAKE_PATH_QML}/*/*/*/.debug \ + ${OE_QMAKE_PATH_IMPORTS}/*/.debug \ + ${OE_QMAKE_PATH_IMPORTS}/*/*/.debug \ + ${OE_QMAKE_PATH_IMPORTS}/*/*/*/.debug \ +" +FILES_${PN}-tools-dbg = " \ + ${OE_QMAKE_PATH_BINS}/.debug \ +" +FILES_${PN}-plugins-dbg = " \ + ${OE_QMAKE_PATH_PLUGINS}/*/.debug/* \ +" + +# extra packages +# qmlplugins 1-4 levels of subdirs qmldir + *{.so,*.qmltypes,*.qml,*js} +FILES_${PN}-qmlplugins = " \ + ${OE_QMAKE_PATH_QML}/*/*${SOLIBSDEV} \ + ${OE_QMAKE_PATH_QML}/*/qmldir \ + ${OE_QMAKE_PATH_QML}/*/*.qmltypes \ + ${OE_QMAKE_PATH_QML}/*/*.qml \ + ${OE_QMAKE_PATH_QML}/*/*.js \ + ${OE_QMAKE_PATH_QML}/*/*/*${SOLIBSDEV} \ + ${OE_QMAKE_PATH_QML}/*/*/qmldir \ + ${OE_QMAKE_PATH_QML}/*/*/*.qmltypes \ + ${OE_QMAKE_PATH_QML}/*/*/*.qml \ + ${OE_QMAKE_PATH_QML}/*/*/*.js \ + ${OE_QMAKE_PATH_QML}/*/*/*/*${SOLIBSDEV} \ + ${OE_QMAKE_PATH_QML}/*/*/*/qmldir \ + ${OE_QMAKE_PATH_QML}/*/*/*/*.qmltypes \ + ${OE_QMAKE_PATH_QML}/*/*/*/*.qml \ + ${OE_QMAKE_PATH_QML}/*/*/*/*.js \ + ${OE_QMAKE_PATH_QML}/*/*/*/*.png \ + ${OE_QMAKE_PATH_QML}/*/*/*/*/*${SOLIBSDEV} \ + ${OE_QMAKE_PATH_QML}/*/*/*/*/qmldir \ + ${OE_QMAKE_PATH_QML}/*/*/*/*/*.qmltypes \ + ${OE_QMAKE_PATH_QML}/*/*/*/*/*.qml \ + ${OE_QMAKE_PATH_QML}/*/*/*/*/*.js \ + ${OE_QMAKE_PATH_QML}/*/*/*/*/*/*.png \ + ${OE_QMAKE_PATH_IMPORTS}/*.qmltypes \ + ${OE_QMAKE_PATH_IMPORTS}/*/*${SOLIBSDEV} \ + ${OE_QMAKE_PATH_IMPORTS}/*/*.qmltypes \ + ${OE_QMAKE_PATH_IMPORTS}/*/qmldir \ + ${OE_QMAKE_PATH_IMPORTS}/*/*/*${SOLIBSDEV} \ + ${OE_QMAKE_PATH_IMPORTS}/*/*/*.qmltypes \ + ${OE_QMAKE_PATH_IMPORTS}/*/*/qmldir \ + ${OE_QMAKE_PATH_IMPORTS}/*/*/*/*${SOLIBSDEV} \ + ${OE_QMAKE_PATH_IMPORTS}/*/*/*/*.qmltypes \ + ${OE_QMAKE_PATH_IMPORTS}/*/*/*/qmldir \ +" + +FILES_${PN}-tools = " \ + ${OE_QMAKE_PATH_BINS}/* \ +" +FILES_${PN}-plugins = " \ + ${OE_QMAKE_PATH_PLUGINS}/*/*${SOLIBSDEV} \ +" +FILES_${PN}-mkspecs = "\ + ${OE_QMAKE_PATH_ARCHDATA}/mkspecs \ +" + +# modifications to normal packages +FILES_${PN} += " \ + ${OE_QMAKE_PATH_LIBS}/lib*${SOLIBS} \ + ${OE_QMAKE_PATH_LIBEXECS} \ +" +FILES_${PN}-dev += " \ + ${OE_QMAKE_PATH_LIBS}/lib*${SOLIBSDEV} \ + ${OE_QMAKE_PATH_LIBS}/pkgconfig \ + ${OE_QMAKE_PATH_LIBS}/cmake/* \ + ${OE_QMAKE_PATH_LIBS}/*.prl \ + ${OE_QMAKE_PATH_LIBS}/*.la \ + ${OE_QMAKE_PATH_DATA}/* \ + ${OE_QMAKE_PATH_HEADERS}/* \ +" +FILES_${PN}-dbg += " \ + ${OE_QMAKE_PATH_LIBS}/.debug \ + ${OE_QMAKE_PATH_LIBEXECS}/.debug \ +" +FILES_${PN}-staticdev += " \ + ${OE_QMAKE_PATH_LIBS}/*.a \ +" +FILES_${PN}-examples = " \ + ${OE_QMAKE_PATH_EXAMPLES}/*/* \ +" +FILES_${PN}-examples-dev = " \ + ${OE_QMAKE_PATH_EXAMPLES}/*${SOLIBSDEV} \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*${SOLIBSDEV} \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*${SOLIBSDEV} \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*${SOLIBSDEV} \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*${SOLIBSDEV} \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*${SOLIBSDEV} \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/*${SOLIBSDEV} \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/*/*${SOLIBSDEV} \ +" +FILES_${PN}-examples-dbg = " \ + ${OE_QMAKE_PATH_EXAMPLES}/.debug \ + ${OE_QMAKE_PATH_EXAMPLES}/*/.debug \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/.debug \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/.debug \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/.debug \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/.debug \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/.debug \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/*/.debug \ +" +FILES_${PN}-examples-staticdev = " \ + ${OE_QMAKE_PATH_EXAMPLES}/*.a \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*.a \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*.a \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*.a \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*.a \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*.a \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/*.a \ + ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/*/*.a \ +" + +PATH_prepend = "${STAGING_DIR_NATIVE}${OE_QMAKE_PATH_QT_BINS}:" diff --git a/meta-qt5/recipes-qt/qt5/qtbase-native.inc b/meta-qt5/recipes-qt/qt5/qtbase-native.inc new file mode 100644 index 0000000000..860bc290dc --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase-native.inc @@ -0,0 +1,107 @@ +DESCRIPTION = "Native version of Qt/[X11|Mac|Embedded]" +DEPENDS = "zlib-native dbus-native" +SECTION = "libs" +HOMEPAGE = "http://qt-project.org" + +QT_MODULE = "qtbase" + +require qt5-native.inc + +# common with target version +# common with -native and target version +SRC_URI += "\ + file://0001-Add-linux-oe-g-platform.patch \ + file://0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \ + file://0003-Add-external-hostbindir-option.patch \ + file://0004-configureapp-Prefix-default-LIBDIRS-and-INCDIRS-with.patch \ + file://0005-qt_module-Fix-pkgconfig-replacement.patch \ + file://0006-configure-don-t-export-SYSTEM_VARIABLES-to-.qmake.va.patch \ + file://0007-configure.prf-Allow-to-add-extra-arguments-to-make.patch \ + file://0008-configure-make-pulseaudio-alsa-freetype-a-configurab.patch \ + file://0009-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-determ.patch \ +" + +# specific for native version +SRC_URI += " \ + file://0010-Always-build-uic.patch \ +" + +QT_CONF_PATH = "${B}/qt.conf" + +do_generate_qt_config_file() { + : +} + +EXTRA_OECONF = " \ + -dont-process \ + -prefix ${prefix} \ + -sysroot ${STAGING_DIR_NATIVE} \ + -no-gcc-sysroot \ + -system-zlib \ + -no-libjpeg \ + -no-libpng \ + -no-gif \ + -no-accessibility \ + -no-cups \ + -no-nis \ + -no-gui \ + -no-qml-debug \ + -no-sql-mysql \ + -no-sql-sqlite \ + -no-opengl \ + -no-openssl \ + -no-xcb \ + -no-icu \ + -verbose \ + -release \ + -prefix ${OE_QMAKE_PATH_PREFIX} \ + -bindir ${OE_QMAKE_PATH_BINS} \ + -libdir ${OE_QMAKE_PATH_LIBS} \ + -headerdir ${OE_QMAKE_PATH_HEADERS} \ + -archdatadir ${OE_QMAKE_PATH_ARCHDATA} \ + -datadir ${OE_QMAKE_PATH_DATA} \ + -docdir ${OE_QMAKE_PATH_DOCS} \ + -sysconfdir ${OE_QMAKE_PATH_SETTINGS} \ + -no-glib \ + -no-iconv \ + -silent \ + -nomake examples \ + -nomake tests \ + -no-rpath \ + -platform linux-oe-g++ \ +" + +# qtbase is exception, configure script is using our get(X)QEvalMakeConf and setBootstrapEvalVariable functions to read it from shell +export OE_QMAKE_COMPILER +export OE_QMAKE_CC +export OE_QMAKE_CFLAGS +export OE_QMAKE_CXX +export OE_QMAKE_CXXFLAGS +export OE_QMAKE_LINK +export OE_QMAKE_LDFLAGS +export OE_QMAKE_AR +export OE_QMAKE_STRIP + +do_configure_prepend() { + (echo o; echo yes) | ${S}/configure ${EXTRA_OECONF} || die "Configuring qt failed. EXTRA_OECONF was ${EXTRA_OECONF}" + bin/qmake ${OE_QMAKE_DEBUG_OUTPUT} ${S} -o Makefile || die "Configuring qt with qmake failed. EXTRA_OECONF was ${EXTRA_OECONF}" +} + +do_install() { + # Fix install paths for all + find -name "Makefile*" | xargs sed -i "s,(INSTALL_ROOT)${STAGING_DIR_NATIVE}${STAGING_DIR_NATIVE},(INSTALL_ROOT)${STAGING_DIR_NATIVE},g" + + oe_runmake install INSTALL_ROOT=${D} + + if [ -d ${D}${STAGING_DIR_NATIVE}${STAGING_DIR_NATIVE} ] ; then + echo "Some files are installed in wrong directory ${D}${STAGING_DIR_NATIVE}" + cp -ra ${D}${STAGING_DIR_NATIVE}${STAGING_DIR_NATIVE}/* ${D}${STAGING_DIR_NATIVE} + rm -rf ${D}${STAGING_DIR_NATIVE}${STAGING_DIR_NATIVE} + # remove empty dirs + TMP=`dirname ${D}/${STAGING_DIR_NATIVE}${STAGING_DIR_NATIVE}` + while test ${TMP} != ${D}${STAGING_DIR_NATIVE}; do + rmdir ${TMP} + TMP=`dirname ${TMP}`; + done + fi +} diff --git a/meta-qt5/recipes-qt/qt5/qtbase-native_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtbase-native_5.2.1.bb new file mode 100644 index 0000000000..54adc48f66 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase-native_5.2.1.bb @@ -0,0 +1,11 @@ +require qt5-${PV}.inc +require ${PN}.inc + +do_install_append() { + # for modules which are still using syncqt and call qtPrepareTool(QMAKE_SYNCQT, syncqt) + # e.g. qt3d, qtwayland + ln -sf syncqt.pl ${D}${OE_QMAKE_PATH_QT_BINS}/syncqt +} + +SRC_URI[md5sum] = "fa005301a2000b92b61b63edc042567b" +SRC_URI[sha256sum] = "acdfd1aa2548ebea1d922e8e24e5c59f5fc3b2beae7c8003ba47d773bfcc94c0" diff --git a/meta-qt5/recipes-qt/qt5/qtbase-native_git.bb b/meta-qt5/recipes-qt/qt5/qtbase-native_git.bb new file mode 100644 index 0000000000..6f11bf3a85 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase-native_git.bb @@ -0,0 +1,12 @@ +require qt5-git.inc +require ${PN}.inc + +do_install_append() { + # for modules which are still using syncqt and call qtPrepareTool(QMAKE_SYNCQT, syncqt) + # e.g. qt3d, qtwayland + ln -sf syncqt.pl ${D}${OE_QMAKE_PATH_QT_BINS}/syncqt +} + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 168 commits +SRCREV = "08cbbde61778276ccdda73d89fd64d02c623779f" diff --git a/meta-qt5/recipes-qt/qt5/qtbase.inc b/meta-qt5/recipes-qt/qt5/qtbase.inc new file mode 100644 index 0000000000..09bf4811dd --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase.inc @@ -0,0 +1,247 @@ +require qt5.inc + +# common with -native +SRC_URI += "\ + file://0001-Add-linux-oe-g-platform.patch \ + file://0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \ + file://0003-Add-external-hostbindir-option.patch \ + file://0004-configureapp-Prefix-default-LIBDIRS-and-INCDIRS-with.patch \ + file://0005-qt_module-Fix-pkgconfig-replacement.patch \ + file://0006-configure-don-t-export-SYSTEM_VARIABLES-to-.qmake.va.patch \ + file://0007-configure.prf-Allow-to-add-extra-arguments-to-make.patch \ + file://0008-configure-make-pulseaudio-alsa-freetype-a-configurab.patch \ + file://0009-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-determ.patch \ +" + +SRC_URI += "\ + file://0010-qmake-is-already-built-in-qtbase-native.patch \ + file://0011-Allow-building-a-separate-qmake-for-the-target.patch \ + file://0013-QOpenGLPaintDevice-sub-area-support.patch \ + file://0014-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch \ + file://0016-eglfs-Fix-quad-coordinates.patch \ +" + +DEPENDS += "qtbase-native" + +# for syncqt +RDEPENDS_${PN}-tools += "perl" + +# separate some parts of PACKAGECONFIG which are often changed +# be aware that you need to add icu to build qtwebkit, default +# PACKAGECONFIG is kept rather minimal for people who don't need +# stuff like webkit (and it's easier to add options than remove) + +# gl or gles needs to be enabled in order to build qtdeclarative +# http://qt.gitorious.org/qt/qtdeclarative/commit/e988998a08b1420ed10bd02d9d4b3b8ed2289df9 +PACKAGECONFIG_GL ?= "${@base_contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)}" +PACKAGECONFIG_FB ?= "${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}" +PACKAGECONFIG_X11 ?= "${@base_contains('DISTRO_FEATURES', 'x11', 'xcb xvideo xsync xshape xrender xrandr xfixes xinput2 xinput xinerama xcursor gtkstyle', '', d)}" +PACKAGECONFIG_FONTS ?= "" +PACKAGECONFIG_SYSTEM ?= "jpeg libpng zlib" +PACKAGECONFIG_MULTIMEDIA ?= "${@base_contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}" +PACKAGECONFIG_DISTRO ?= "" +# Either release or debug, can be overridden in bbappends +PACKAGECONFIG_RELEASE ?= "release" +# This is in qt5.inc, because qtwebkit-examples are using it to enable ca-certificates dependency +# PACKAGECONFIG_OPENSSL ?= "openssl" +PACKAGECONFIG_DEFAULT ?= "dbus udev tools libs" + +PACKAGECONFIG ?= " \ + ${PACKAGECONFIG_RELEASE} \ + ${PACKAGECONFIG_DEFAULT} \ + ${PACKAGECONFIG_OPENSSL} \ + ${PACKAGECONFIG_SYSTEM} \ + ${PACKAGECONFIG_DISTRO} \ +" + +PACKAGECONFIG[release] = "-release,-debug" +PACKAGECONFIG[developer] = "-developer-build" +PACKAGECONFIG[sm] = "-sm,-no-sm" +PACKAGECONFIG[tests] = "-make tests,-nomake tests" +PACKAGECONFIG[examples] = "-make examples -compile-examples,-nomake examples" +PACKAGECONFIG[tools] = "-make tools,-nomake tools" +# only for completeness, configure will add libs even if you try to explicitly remove it +PACKAGECONFIG[libs] = "-make libs,-nomake libs" +# accessibility is required to compile qtquickcontrols +PACKAGECONFIG[accessibility] = "-accessibility,-no-accessibility" +PACKAGECONFIG[glib] = "-glib,-no-glib,glib-2.0" +# use either system freetype or bundled freetype, if you disable freetype completely +# fontdatabases/basic/qbasicfontdatabase.cpp will fail to build and system freetype +# works only together with fontconfig +PACKAGECONFIG[freetype] = "-system-freetype,-freetype,freetype" +PACKAGECONFIG[jpeg] = "-system-libjpeg,-no-libjpeg,jpeg" +PACKAGECONFIG[libpng] = "-system-libpng,-no-libpng,libpng" +PACKAGECONFIG[zlib] = "-system-zlib,-qt-zlib,zlib" +PACKAGECONFIG[pcre] = "-system-pcre,-qt-pcre,pcre" +# gl or gles2 is needed in order to build qtdeclarative (qtdeclarative.do_configure fails to find quick module without) +PACKAGECONFIG[gl] = "-opengl desktop -no-eglfs,,virtual/libgl" +PACKAGECONFIG[gles2] = "-opengl es2 -eglfs,,virtual/libgles2 virtual/egl" +PACKAGECONFIG[tslib] = "-tslib,-no-tslib,tslib" +PACKAGECONFIG[dbus] = "-dbus,-no-dbus,dbus" +PACKAGECONFIG[xcb] = "-xcb,-no-xcb,xcb-util-wm xcb-util-image xcb-util-keysyms" +PACKAGECONFIG[sql-ibase] = "-sql-ibase,-no-sql-ibase" +PACKAGECONFIG[sql-mysql] = "-sql-mysql,-no-sql-mysql,mysql" +PACKAGECONFIG[sql-psql] = "-sql-psql,-no-sql-psql,postgresql" +PACKAGECONFIG[sql-odbc] = "-sql-odbc,-no-sql-odbc" +PACKAGECONFIG[sql-oci] = "-sql-oci,-no-sql-oci" +PACKAGECONFIG[sql-tds] = "-sql-tds,-no-sql-tds" +PACKAGECONFIG[sql-db2] = "-sql-db2,-no-sql-db2" +PACKAGECONFIG[sql-sqlite2] = "-sql-sqlite2,-no-sql-sqlite2,sqlite" +PACKAGECONFIG[sql-sqlite] = "-sql-sqlite,-no-sql-sqlite,sqlite3" +PACKAGECONFIG[xcursor] = "-xcursor,-no-xcursor,libxcursor" +PACKAGECONFIG[xinerama] = "-xinerama,-no-xinerama,libxinerama" +PACKAGECONFIG[xinput] = "-xinput,-no-xinput" +PACKAGECONFIG[xinput2] = "-xinput2,-no-xinput2" +PACKAGECONFIG[xfixes] = "-xfixes,-no-xfixes,libxfixes" +PACKAGECONFIG[xrandr] = "-xrandr,-no-xrandr,libxrandr" +PACKAGECONFIG[xrender] = "-xrender,-no-xrender,libxrender" +PACKAGECONFIG[xshape] = "-xshape,-no-xshape" +PACKAGECONFIG[xsync] = "-xsync,-no-xsync" +PACKAGECONFIG[xvideo] = "-xvideo,-no-xvideo" +PACKAGECONFIG[openvg] = "-openvg,-no-openvg" +PACKAGECONFIG[iconv] = "-iconv,-no-iconv,virtual/libiconv" +PACKAGECONFIG[xkb] = "-xkb,-no-xkb,libxkbcommon" +PACKAGECONFIG[evdev] = "-evdev,-no-evdev" +PACKAGECONFIG[mtdev] = "-mtdev,-no-mtdev,mtdev" +# depends on glib +PACKAGECONFIG[fontconfig] = "-fontconfig,-no-fontconfig,fontconfig" +PACKAGECONFIG[gtkstyle] = "-gtkstyle,-no-gtkstyle,gtk+" +PACKAGECONFIG[directfb] = "-directfb,-no-directfb,directfb" +PACKAGECONFIG[linuxfb] = "-linuxfb,-no-linuxfb" +PACKAGECONFIG[mitshm] = "-mitshm,-no-mitshm,mitshm" +PACKAGECONFIG[kms] = "-kms,-no-kms,virtual/mesa virtual/egl" +# needed for qtdeclarative (qtdeclarative.do_configure fails to find quick module without) +PACKAGECONFIG[icu] = "-icu,-no-icu,icu" +PACKAGECONFIG[udev] = "-libudev,-no-libudev,udev" +# use -openssl-linked here to ensure that RDEPENDS for libcrypto and libssl are detected +PACKAGECONFIG[openssl] = "-openssl-linked,-no-openssl,openssl" +PACKAGECONFIG[alsa] = "-alsa,-no-alsa,alsa-lib" +PACKAGECONFIG[pulseaudio] = "-pulseaudio,-no-pulseaudio,pulseaudio" +PACKAGECONFIG[nis] = "-nis,-no-nis" +PACKAGECONFIG[widgets] = "-widgets,-no-widgets" + +QT_CONFIG_FLAGS += " \ + -reduce-relocations \ + -shared \ + -silent \ + -no-pch \ + -no-rpath \ + -pkg-config \ + -no-qpa-platform-guard \ + ${EXTRA_OECONF} \ +" + +do_generate_qt_config_file_append() { + cat >> ${QT_CONF_PATH} < +Date: Mon, 15 Apr 2013 04:29:32 +0200 +Subject: [PATCH 01/14] Add linux-oe-g++ platform + +* This qmake.conf unlike other platforms reads most variables from + shell environment, because it's easier for qt recipes to export + *FLAGS or CC specific for given recipe + +* configure: add getQEvalMakeConf and getXQEvalMakeConf + Allow expansion of $(...) references from qmake.conf to generate + qmake environment from shell environment as exported by qmake5_base + +* OE_QMAKE_CXX in order to allow compiler version check to succeed + which allows WebKit to be enabled. + +* Other variables in order to let config.tests to use our -platform + settings + +* Add setBootstrapEvalVariable to bootstrap qmake with our environment + too, this allows us to use -platform linux-oe-g++ also for native + recipe + +* disable gdb_dwarf_index + * qmake is trying to call native gdb and we don't depend on gdb-native + (or even provide gdb-native) + * fixes errors like this: + /bin/sh: gdb: command not found + /bin/sh: line 0: test: -gt: unary operator expected + which are not fatal, but still misleading in do_configure output + +Upstream-Status: Pending + +Signed-off-by: Martin Jansa +--- + configure | 54 ++++++++++++++++--- + mkspecs/linux-oe-g++/qmake.conf | 40 ++++++++++++++ + mkspecs/linux-oe-g++/qplatformdefs.h | 100 +++++++++++++++++++++++++++++++++++ + 3 files changed, 187 insertions(+), 7 deletions(-) + create mode 100644 mkspecs/linux-oe-g++/qmake.conf + create mode 100644 mkspecs/linux-oe-g++/qplatformdefs.h + +diff --git a/configure b/configure +index aaa59bd..0e74f29 100755 +--- a/configure ++++ b/configure +@@ -324,6 +324,16 @@ getQMakeConf() + getSingleQMakeVariable "$1" "$specvals" + } + ++# OE qmake.conf is reading some variables from shell env ++# read them from qmake.conf, replace qmake () syntax with shell and eval ++getQEvalMakeConf() ++{ ++ VAL=`getQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'` ++ EVAL=`eval "echo ${VAL}"` ++# echo "Running getQEvalMakeConf: var='$1', val='`getQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2 ++ eval "echo ${VAL}" ++} ++ + getXQMakeConf() + { + if [ -z "$xspecvals" ]; then +@@ -333,6 +343,16 @@ getXQMakeConf() + getSingleQMakeVariable "$1" "$xspecvals" + } + ++# OE qmake.conf is reading some variables from shell env ++# read them from qmake.conf, replace qmake () syntax with shell and eval ++getXQEvalMakeConf() ++{ ++ VAL=`getXQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'` ++ EVAL=`eval "echo ${VAL}"` ++# echo "Running getXQEvalMakeConf: var='$1', val='`getXQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2 ++ eval "echo ${VAL}" ++} ++ + compilerSupportsFlag() + { + cat >conftest.cpp <&2 ++fi'` ++ eval "$cmd" ++done ++ + SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS" + for varname in $SYSTEM_VARIABLES; do + qmakevarname="${varname}" +@@ -3362,7 +3394,7 @@ if [ "$XPLATFORM_MAC" = "yes" ] && [ "$CFG_QGTKSTYLE" = "auto" ]; then + CFG_QGTKSTYLE=no + fi + +-QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX` ++QMAKE_CONF_COMPILER=`getXQEvalMakeConf QMAKE_CXX` + + TEST_COMPILER=$QMAKE_CONF_COMPILER + +@@ -3397,7 +3429,7 @@ if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then + exit 1 + fi + fi +-TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS` ++TEST_COMPILER_CXXFLAGS=`getXQEvalMakeConf QMAKE_CXXFLAGS` + + GCC_MACHINE_DUMP= + case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac +@@ -3878,6 +3910,14 @@ setBootstrapVariable() + getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile" + } + ++# OE qmake.conf is reading some variables from shell env ++# read them from qmake.conf, replace qmake () syntax with shell and eval ++setBootstrapEvalVariable() ++{ ++ getQEvalMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile" ++} ++ ++ + # build qmake + if true; then ###[ '!' -f "$outpath/bin/qmake" ]; + echo "Creating qmake..." +@@ -3916,11 +3956,11 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ]; + fi + + [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM= +- setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM" +- setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM" +- setBootstrapVariable QMAKE_CFLAGS +- setBootstrapVariable QMAKE_CXXFLAGS +- setBootstrapVariable QMAKE_LFLAGS ++ setBootstrapEvalVariable QMAKE_CC CC "$CC_TRANSFORM" ++ setBootstrapEvalVariable QMAKE_CXX CXX "$CC_TRANSFORM" ++ setBootstrapEvalVariable QMAKE_CFLAGS ++ setBootstrapEvalVariable QMAKE_CXXFLAGS ++ setBootstrapEvalVariable QMAKE_LFLAGS + + if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then + setBootstrapVariable QMAKE_CFLAGS_RELEASE +diff --git a/mkspecs/linux-oe-g++/qmake.conf b/mkspecs/linux-oe-g++/qmake.conf +new file mode 100644 +index 0000000..ca26b10 +--- /dev/null ++++ b/mkspecs/linux-oe-g++/qmake.conf +@@ -0,0 +1,40 @@ ++# ++# qmake configuration for linux-g++ with modifications for building with OpenEmbedded ++# ++ ++MAKEFILE_GENERATOR = UNIX ++CONFIG += incremental ++QMAKE_INCREMENTAL_STYLE = sublib ++ ++include(../common/linux.conf) ++ ++# QMAKE_ (moc, uic, rcc) are gone, overwrite only ar and strip ++QMAKE_AR = $(OE_QMAKE_AR) cqs ++QMAKE_STRIP = $(OE_QMAKE_STRIP) ++QMAKE_WAYLAND_SCANNER = $(OE_QMAKE_WAYLAND_SCANNER) ++ ++include(../common/gcc-base-unix.conf) ++ ++# *FLAGS from gcc-base.conf ++QMAKE_CFLAGS += $(OE_QMAKE_CFLAGS) ++QMAKE_CXXFLAGS += $(OE_QMAKE_CXXFLAGS) ++QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS) ++ ++include(../common/g++-unix.conf) ++ ++# tc settings from g++-base.conf ++QMAKE_COMPILER = $(OE_QMAKE_COMPILER) ++QMAKE_CC = $(OE_QMAKE_CC) ++QMAKE_CXX = $(OE_QMAKE_CXX) ++ ++QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $(OE_QMAKE_CFLAGS) ++ ++QMAKE_LINK = $(OE_QMAKE_LINK) ++QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK) ++QMAKE_LINK_C = $(OE_QMAKE_LINK) ++QMAKE_LINK_C_SHLIB = $(OE_QMAKE_LINK) ++ ++# for the SDK ++isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $(OE_QMAKE_QT_CONFIG) ++ ++load(qt_config) +diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h +new file mode 100644 +index 0000000..dd12003 +--- /dev/null ++++ b/mkspecs/linux-oe-g++/qplatformdefs.h +@@ -0,0 +1,100 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the qmake spec of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 3.0 as published by the Free Software ++** Foundation and appearing in the file LICENSE.GPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU General Public License version 3.0 requirements will be ++** met: http://www.gnu.org/copyleft/gpl.html. ++** ++** ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#ifndef QPLATFORMDEFS_H ++#define QPLATFORMDEFS_H ++ ++// Get Qt defines/settings ++ ++#include "qglobal.h" ++ ++// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs ++ ++// 1) need to reset default environment if _BSD_SOURCE is defined ++// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0 ++// 3) it seems older glibc need this to include the X/Open stuff ++#ifndef _GNU_SOURCE ++# define _GNU_SOURCE ++#endif ++ ++#include ++ ++ ++// We are hot - unistd.h should have turned on the specific APIs we requested ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifndef QT_NO_IPV6IFNAME ++#include ++#endif ++ ++#define QT_USE_XOPEN_LFS_EXTENSIONS ++#include "../common/posix/qplatformdefs.h" ++ ++#undef QT_SOCKLEN_T ++ ++#if defined(__GLIBC__) && (__GLIBC__ >= 2) ++#define QT_SOCKLEN_T socklen_t ++#else ++#define QT_SOCKLEN_T int ++#endif ++ ++#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) ++#define QT_SNPRINTF ::snprintf ++#define QT_VSNPRINTF ::vsnprintf ++#endif ++ ++#endif // QPLATFORMDEFS_H +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch b/meta-qt5/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch new file mode 100644 index 0000000000..2f72dca5e0 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch @@ -0,0 +1,36 @@ +From 841d1f06f3fd2f59f6b18067b02d5fcfc93aaa7a Mon Sep 17 00:00:00 2001 +From: Holger Freyther +Date: Wed, 26 Sep 2012 17:22:30 +0200 +Subject: [PATCH 02/14] qlibraryinfo: allow to set qt.conf from the outside + using the environment + +Allow to set a qt.conf from the outside using the environment. This allows +to inject new prefixes and other paths into qmake. This is needed when using +the same qmake binary to build qt/x11 and qt/embedded + +Upstream-Status: Pending + +Signed-off-by: Martin Jansa +--- + src/corelib/global/qlibraryinfo.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp +index 1c3b09f..c647a16 100644 +--- a/src/corelib/global/qlibraryinfo.cpp ++++ b/src/corelib/global/qlibraryinfo.cpp +@@ -149,7 +149,10 @@ QLibrarySettings::QLibrarySettings() + + QSettings *QLibraryInfoPrivate::findConfiguration() + { +- QString qtconfig = QStringLiteral(":/qt/etc/qt.conf"); ++ QByteArray config = getenv("QT_CONF_PATH"); ++ QString qtconfig = QFile::decodeName(config); ++ if(!QFile::exists(qtconfig)) ++ qtconfig = QStringLiteral(":/qt/etc/qt.conf"); + #ifdef QT_BOOTSTRAPPED + if(!QFile::exists(qtconfig)) + qtconfig = qt_libraryInfoFile(); +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch b/meta-qt5/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch new file mode 100644 index 0000000000..7e03f74027 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch @@ -0,0 +1,228 @@ +From 3648eeddaed0cf31fba226ec713d2321f398974f Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sat, 6 Apr 2013 13:15:07 +0200 +Subject: [PATCH 03/14] Add -external-hostbindir option + +* when cross-compiling it's sometimes useful to use existing tools from machine + (or in OpenEmbedded built with separate native recipe) when building for target + +* this way we can skip bootstraping tools we already have + +* qt_functions: temporary remove isEmpty check +* now we assume that every build will provide QT_EXTERNAL_HOST_BINS value +* isEmpty works correctly only with qmake variables (e.g. $$FOO - + isEmpty(FOO)), but doesn't work with system properties like $$[FOO]. + +Upstream-Status: Pending + +Signed-off-by: Martin Jansa +--- + configure | 15 +++++++++++++++ + mkspecs/features/qt_functions.prf | 9 ++++++++- + mkspecs/features/qt_tool.prf | 3 +-- + qmake/property.cpp | 1 + + qtbase.pro | 12 +++++++++--- + src/corelib/global/qlibraryinfo.cpp | 3 ++- + src/corelib/global/qlibraryinfo.h | 1 + + tools/configure/configureapp.cpp | 8 ++++++++ + 8 files changed, 45 insertions(+), 7 deletions(-) + +diff --git a/configure b/configure +index 0e74f29..7f3f2f0 100755 +--- a/configure ++++ b/configure +@@ -788,6 +788,7 @@ QT_HOST_BINS= + QT_HOST_LIBS= + QT_HOST_DATA= + QT_EXT_PREFIX= ++QT_EXTERNAL_HOST_BINS= + + #flags for SQL drivers + QT_CFLAGS_PSQL= +@@ -907,6 +908,7 @@ while [ "$#" -gt 0 ]; do + -testsdir| \ + -hostdatadir| \ + -hostbindir| \ ++ -external-hostbindir| \ + -hostlibdir| \ + -extprefix| \ + -sysroot| \ +@@ -1120,6 +1122,9 @@ while [ "$#" -gt 0 ]; do + extprefix) + QT_EXT_PREFIX="$VAL" + ;; ++ external-hostbindir) ++ QT_EXTERNAL_HOST_BINS="$VAL" ++ ;; + pkg-config) + if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then + CFG_PKGCONFIG="$VAL" +@@ -2236,6 +2241,10 @@ Installation options: + -hostdatadir . Data used by qmake will be installed to + (default HOSTPREFIX) + ++ -external-hostbindir Use external host executables instead of building them ++ (not used by defaut) ++ ++ + Configure options: + + The defaults (*) are usually acceptable. A plus (+) denotes a default value +@@ -3151,6 +3160,11 @@ fi + # command line and environment validation + #------------------------------------------------------------------------------- + ++# default is empty, don't call makeabs if it is empty ++if [ ! -z "$QT_EXTERNAL_HOST_BINS" ]; then ++ QT_EXTERNAL_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_EXTERNAL_HOST_BINS"` ++fi ++ + # update QT_CONFIG to show our current predefined configuration + CFG_QCONFIG_PATH=$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h + case "$CFG_QCONFIG" in +@@ -3838,6 +3852,7 @@ static const char qt_configure_prefix_path_strs[][256 + 12] = { + "qt_hbinpath=$QT_HOST_BINS", + "qt_hlibpath=$QT_HOST_LIBS", + "qt_hdatpath=$QT_HOST_DATA", ++ "qt_ebinpath=$QT_EXTERNAL_HOST_BINS", + "qt_targspec=$shortxspec", + "qt_hostspec=$shortspec", + #endif +diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf +index 1dacfed..7229845 100644 +--- a/mkspecs/features/qt_functions.prf ++++ b/mkspecs/features/qt_functions.prf +@@ -193,7 +193,14 @@ defineTest(qtAddRpathLink) { + defineTest(qtPrepareTool) { + $$1 = $$eval(QT_TOOL.$${2}.binary) + isEmpty($$1) { +- $$1 = $$[QT_HOST_BINS]/$$2 ++ $$1 = $$[QT_EXTERNAL_HOST_BINS]/$$2 ++ # for some reason isEmpty does not work here, FIXME before submitting upstream ++ # DEBUG 1: mkspecs/features/qt_functions.prf:198: calling built-in isEmpty(/OE/oe-core/tmp-eglibc/sysroots/x86_64-linux/usr/bin/qt5) ++ # DEBUG 1: mkspecs/features/qt_functions.prf:198: test function returned true ++ # DEBUG 1: mkspecs/features/qt_functions.prf:198: taking 'then' branch ++ !exists($$[QT_EXTERNAL_HOST_BINS]/$$2) { ++ $$1 = $$[QT_HOST_BINS]/$$2 ++ } + exists($$eval($$1).pl) { + $$1 = perl -w $$eval($$1).pl + } else: contains(QMAKE_HOST.os, Windows) { +diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf +index f0864f9..50bfac8 100644 +--- a/mkspecs/features/qt_tool.prf ++++ b/mkspecs/features/qt_tool.prf +@@ -15,8 +15,7 @@ CONFIG += console + + # If we are doing a prefix build, create a "module" pri which enables + # qtPrepareTool() to work with the non-installed build. +-# Non-bootstrapped tools always need this because of the environment setup. +-!build_pass:if(!host_build|!force_bootstrap|force_independent) { ++!build_pass:if(!host_build|!force_bootstrap|force_independent):!exists($$[QT_EXTERNAL_HOST_BINS]) { + isEmpty(MODULE):MODULE = $$TARGET + + !host_build|!force_bootstrap: MODULE_DEPENDS = $$replace(QT, -private$, _private) +diff --git a/qmake/property.cpp b/qmake/property.cpp +index e50485c..71291ad 100644 +--- a/qmake/property.cpp ++++ b/qmake/property.cpp +@@ -75,6 +75,7 @@ static const struct { + { "QT_HOST_DATA", QLibraryInfo::HostDataPath, true }, + { "QT_HOST_BINS", QLibraryInfo::HostBinariesPath, true }, + { "QT_HOST_LIBS", QLibraryInfo::HostLibrariesPath, true }, ++ { "QT_EXTERNAL_HOST_BINS", QLibraryInfo::ExternalHostBinariesPath, true }, + { "QMAKE_SPEC", QLibraryInfo::HostSpecPath, true }, + { "QMAKE_XSPEC", QLibraryInfo::TargetSpecPath, true }, + }; +diff --git a/qtbase.pro b/qtbase.pro +index 140a137..4e01d5b 100644 +--- a/qtbase.pro ++++ b/qtbase.pro +@@ -70,16 +70,22 @@ CONFIG -= qt + + #qmake + qmake.path = $$[QT_HOST_BINS] ++qmake.files = $$OUT_PWD/bin/qmake ++!isEmpty($$[QT_EXTERNAL_HOST_BINS]) { ++ qmake.files = $$[QT_EXTERNAL_HOST_BINS]/bin/qmake ++} + equals(QMAKE_HOST.os, Windows) { +- qmake.files = $$OUT_PWD/bin/qmake.exe +-} else { +- qmake.files = $$OUT_PWD/bin/qmake ++ qmake.files = $${qmake.files}.exe + } + INSTALLS += qmake + + #syncqt + syncqt.path = $$[QT_HOST_BINS] + syncqt.files = $$PWD/bin/syncqt.pl ++syncqt.files = $$PWD/bin/syncqt.pl ++!isEmpty($$[QT_EXTERNAL_HOST_BINS]) { ++ syncqt.files = $$[QT_EXTERNAL_HOST_BINS]/bin/syncqt.pl ++} + INSTALLS += syncqt + + # If we are doing a prefix build, create a "module" pri which enables +diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp +index c647a16..da82913 100644 +--- a/src/corelib/global/qlibraryinfo.cpp ++++ b/src/corelib/global/qlibraryinfo.cpp +@@ -281,7 +281,7 @@ QLibraryInfo::isDebugBuild() + */ + + static const struct { +- char key[19], value[13]; ++ char key[21], value[13]; + } qtConfEntries[] = { + { "Prefix", "." }, + { "Documentation", "doc" }, // should be ${Data}/doc +@@ -307,6 +307,7 @@ static const struct { + { "HostBinaries", "bin" }, + { "HostLibraries", "lib" }, + { "HostData", "." }, ++ { "ExternalHostBinaries", "" }, + { "TargetSpec", "" }, + { "HostSpec", "" }, + #endif +diff --git a/src/corelib/global/qlibraryinfo.h b/src/corelib/global/qlibraryinfo.h +index 17864b5..a14bc0f 100644 +--- a/src/corelib/global/qlibraryinfo.h ++++ b/src/corelib/global/qlibraryinfo.h +@@ -84,6 +84,7 @@ public: + HostBinariesPath, + HostLibrariesPath, + HostDataPath, ++ ExternalHostBinariesPath, + TargetSpecPath, + HostSpecPath, + LastHostPath = HostSpecPath, +diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp +index 5ab413a..50a192b 100644 +--- a/tools/configure/configureapp.cpp ++++ b/tools/configure/configureapp.cpp +@@ -1186,6 +1186,13 @@ void Configure::parseCmdLine() + dictionary[ "QT_EXT_PREFIX" ] = configCmdLine.at(i); + } + ++ else if (configCmdLine.at(i) == "-external-hostbindir") { ++ ++i; ++ if (i == argCount) ++ break; ++ dictionary[ "QT_EXTERNAL_HOST_BINS" ] = configCmdLine.at(i); ++ } ++ + else if (configCmdLine.at(i) == "-make-tool") { + ++i; + if (i == argCount) +@@ -3852,6 +3859,7 @@ void Configure::generateQConfigCpp() + << " \"qt_hbinpath=" << formatPath(dictionary["QT_HOST_BINS"]) << "\"," << endl + << " \"qt_hlibpath=" << formatPath(dictionary["QT_HOST_LIBS"]) << "\"," << endl + << " \"qt_hdatpath=" << formatPath(dictionary["QT_HOST_DATA"]) << "\"," << endl ++ << " \"qt_ebinpath=" << formatPath(dictionary["QT_EXTERNAL_HOST_BINS"]) << "\"," << endl + << " \"qt_targspec=" << targSpec << "\"," << endl + << " \"qt_hostspec=" << hostSpec << "\"," << endl + << "#endif" << endl +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0004-configureapp-Prefix-default-LIBDIRS-and-INCDIRS-with.patch b/meta-qt5/recipes-qt/qt5/qtbase/0004-configureapp-Prefix-default-LIBDIRS-and-INCDIRS-with.patch new file mode 100644 index 0000000000..16317ac7b0 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0004-configureapp-Prefix-default-LIBDIRS-and-INCDIRS-with.patch @@ -0,0 +1,29 @@ +From 698f073fb8cc6dc1ced277b6ae2056cb9d02f2d5 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sat, 27 Apr 2013 22:33:33 +0200 +Subject: [PATCH 04/14] configureapp: Prefix default LIBDIRS and INCDIRS with + SYSROOT + +Upstream-Status: Pending +--- + tools/configure/configureapp.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp +index 50a192b..46eabe4 100644 +--- a/tools/configure/configureapp.cpp ++++ b/tools/configure/configureapp.cpp +@@ -3213,8 +3213,8 @@ void Configure::generateQConfigPri() + configStream << " QT_ARCH = " << dictionary["QT_ARCH"] << endl; + if (dictionary.contains("XQMAKESPEC") && !dictionary["XQMAKESPEC"].startsWith("wince")) { + // FIXME: add detection +- configStream << " QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib" << endl; +- configStream << " QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include" << endl; ++ configStream << " QMAKE_DEFAULT_LIBDIRS = $$[QT_SYSROOT]/lib $$[QT_SYSROOT]/usr/lib" << endl; ++ configStream << " QMAKE_DEFAULT_INCDIRS = $$[QT_SYSROOT]/usr/include $$[QT_SYSROOT]/usr/local/include" << endl; + } + configStream << "}" << endl; + if (dictionary["QT_EDITION"].contains("OPENSOURCE")) +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch b/meta-qt5/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch new file mode 100644 index 0000000000..b8768c89c8 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch @@ -0,0 +1,99 @@ +From 7999eeb3f2ab1150aa301ec26ae9bf0788d09c9e Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sat, 27 Apr 2013 23:15:37 +0200 +Subject: [PATCH 05/14] qt_module: Fix pkgconfig replacement +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* in situation like this: + QT_SYSROOT:/OE/oe-core/tmp-eglibc/sysroots/qemuarm + QT_INSTALL_LIBS:/OE/oe-core/tmp-eglibc/sysroots/qemuarm/usr/lib + QT_INSTALL_LIBS/raw:/usr/lib + QT_INSTALL_LIBS/get:/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/lib + + I don't want the replacement like this: + sed + -e "s,/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/include,/usr/include/qt5,g" + -e "s,/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/lib,/usr/lib,g" + "../../lib/pkgconfig/Qt5Core.pc" + >"/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/image/OE/oe-core/tmp-eglibc/sysroots/qemuarm/usr/lib/pkgconfig/Qt5Core.pc" + because that way I'll end with -L/usr/lib in .pc file which is + cross-compile unfriendly, keeping ${libdir}/${includedir} works better + in my case + +* qt_module: Fix paths in .prl files +* qmake does not prefix them with QT_SYSROOT when using them + so e.g. when building qtdeclarative we get -L/usr/lib to LINKAGE + variable, which is unsafe for cross-compilation +* writting QT_SYSROOT in .prl files is dangerous for sstate when + builds are in different directories, so we need + SSTATE_SCAN_FILES += "*.pri *.prl" + to make them relocateble + +* fix paths in packageconfig files + This reverts parts of: + + enable path replacement in installed prl files on all platforms + + Task-number: QTBUG-33794 + Change-Id: Id0d38715673b8a1c0c034e9c15783eb255c4315b + Reviewed-by: Joerg Bornemann + +Signed-off-by: Martin Jansa +Signed-off-by: Andreas Müller +--- + mkspecs/features/qt_module.prf | 20 +++++++++++++------- + 1 file changed, 13 insertions(+), 7 deletions(-) + +diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf +index 11509ee..be9b929 100644 +--- a/mkspecs/features/qt_module.prf ++++ b/mkspecs/features/qt_module.prf +@@ -135,30 +135,36 @@ load(qt_installs) + rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]* + else: \ + rplbase = $$MODULE_BASE_OUTDIR +-include_replace.match = $$rplbase/include +-include_replace.replace = $$[QT_INSTALL_HEADERS/raw] +-include_replace.CONFIG = path ++pkgconfig_include_replace.match = $$rplbase/include ++pkgconfig_include_replace.replace = "\$$\\{includedir}" ++pkgconfig_include_replace.CONFIG = path ++pkgconfig_lib_replace.match = $$rplbase/lib ++pkgconfig_lib_replace.replace = "\$$\\{libdir}" ++pkgconfig_lib_replace.CONFIG = path + lib_replace.match = $$rplbase/lib + host_build: \ + lib_replace.replace = $$[QT_HOST_LIBS] + else: \ + lib_replace.replace = $$[QT_INSTALL_LIBS/raw] + lib_replace.CONFIG = path +-QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace ++lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]" ++lafile_replace.replace = "" ++lafile_replace.CONFIG = path ++QMAKE_PRL_INSTALL_REPLACE += lib_replace lafile_replace + + unix|win32-g++* { + CONFIG += create_pc + QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace +- QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace ++ QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw] + QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME + QMAKE_PKGCONFIG_DESTDIR = pkgconfig +- QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace ++ QMAKE_PKGCONFIG_INSTALL_REPLACE += pkgconfig_include_replace pkgconfig_lib_replace + } + + unix { + CONFIG += create_libtool explicitlib + QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace +- QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace ++ QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace + } + + unix|win32-g++* { +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0006-configure-don-t-export-SYSTEM_VARIABLES-to-.qmake.va.patch b/meta-qt5/recipes-qt/qt5/qtbase/0006-configure-don-t-export-SYSTEM_VARIABLES-to-.qmake.va.patch new file mode 100644 index 0000000000..726bfe003e --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0006-configure-don-t-export-SYSTEM_VARIABLES-to-.qmake.va.patch @@ -0,0 +1,43 @@ +From ebd38fc708cf7190e47a75754235f56fa5d86300 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Wed, 8 May 2013 23:54:35 +0200 +Subject: [PATCH 06/14] configure: don't export SYSTEM_VARIABLES to .qmake.vars + +* linux-oe-g++ should handle this correctly and exporting LD as QMAKE_LINK is + causing issues as we need g++ to be used as linker + +Upstream-Status: Pending + +Signed-off-by: Martin Jansa +--- + configure | 14 -------------- + 1 file changed, 14 deletions(-) + +diff --git a/configure b/configure +index 7f3f2f0..13dd619 100755 +--- a/configure ++++ b/configure +@@ -581,20 +581,6 @@ fi'` + done + + SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS" +-for varname in $SYSTEM_VARIABLES; do +- qmakevarname="${varname}" +- # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS +- if [ "${varname}" = "LDFLAGS" ]; then +- qmakevarname="LFLAGS" +- elif [ "${varname}" = "LD" ]; then +- qmakevarname="LINK" +- fi +- cmd=`echo \ +-'if [ -n "\$'${varname}'" ]; then +- QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'" +-fi'` +- eval "$cmd" +-done + # Use CC/CXX to run config.tests + mkdir -p "$outpath/config.tests" + rm -f "$outpath/config.tests/.qmake.cache" +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0007-configure.prf-Allow-to-add-extra-arguments-to-make.patch b/meta-qt5/recipes-qt/qt5/qtbase/0007-configure.prf-Allow-to-add-extra-arguments-to-make.patch new file mode 100644 index 0000000000..e8a7784be3 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0007-configure.prf-Allow-to-add-extra-arguments-to-make.patch @@ -0,0 +1,37 @@ +From 828eecd8f361cb965bd40f535435efa91665c8e5 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Thu, 9 May 2013 10:06:50 +0200 +Subject: [PATCH 07/14] configure.prf: Allow to add extra arguments to make + +* sometimes we would like to add -e or define some variable and respect it from both + Makefiles used in configure tests and also Makefiles to build the application + +Upstream-Status: Pending + +Signed-off-by: Martin Jansa +--- + mkspecs/features/configure.prf | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf +index 39144e7..de48b07 100644 +--- a/mkspecs/features/configure.prf ++++ b/mkspecs/features/configure.prf +@@ -54,12 +54,12 @@ defineTest(qtCompileTest) { + qmake_configs = "\"CONFIG -= qt debug_and_release app_bundle lib_bundle\"" + + # Clean up after previous run +- exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE distclean") ++ exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS) distclean") + + mkpath($$test_out_dir)|error("Aborting.") + + qtRunLoggedCommand("$$test_cmd_base $$system_quote($$system_path($$QMAKE_QMAKE)) $$qmake_configs $$shell_quote($$test_dir)") { +- qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE") { ++ qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS)") { + log("yes$$escape_expand(\\n)") + msg = "test $$1 succeeded" + write_file($$QMAKE_CONFIG_LOG, msg, append) +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0008-configure-make-pulseaudio-alsa-freetype-a-configurab.patch b/meta-qt5/recipes-qt/qt5/qtbase/0008-configure-make-pulseaudio-alsa-freetype-a-configurab.patch new file mode 100644 index 0000000000..cccf7fbe1b --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0008-configure-make-pulseaudio-alsa-freetype-a-configurab.patch @@ -0,0 +1,52 @@ +From 3923edc900d1b3dd23e0a6af3a32255707cd497c Mon Sep 17 00:00:00 2001 +From: Paul Eggleton +Date: Tue, 28 Feb 2012 15:10:24 +0000 +Subject: [PATCH 08/14] configure: make pulseaudio, alsa, freetype a + configurable option + +Allows disabling pulseaudio, alsa, freetype support at configure time +making builds more deterministic. + +Upstream-Status: Pending + +Signed-off-by: Paul Eggleton +Signed-off-by: Martin Jansa +--- + configure | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/configure b/configure +index 13dd619..66c2ae0 100755 +--- a/configure ++++ b/configure +@@ -1810,6 +1810,27 @@ while [ "$#" -gt 0 ]; do + UNKNOWN_OPT=yes + fi + ;; ++ pulseaudio) ++ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then ++ CFG_PULSEAUDIO="$VAL" ++ else ++ UNKNOWN_OPT=yes ++ fi ++ ;; ++ alsa) ++ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then ++ CFG_ALSA="$VAL" ++ else ++ UNKNOWN_OPT=yes ++ fi ++ ;; ++ freetype) ++ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then ++ CFG_LIBFREETYPE="$VAL" ++ else ++ UNKNOWN_OPT=yes ++ fi ++ ;; + gtkstyle) + if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then + CFG_QGTKSTYLE="$VAL" +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0009-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-determ.patch b/meta-qt5/recipes-qt/qt5/qtbase/0009-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-determ.patch new file mode 100644 index 0000000000..23e22a894a --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0009-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-determ.patch @@ -0,0 +1,85 @@ +From acbd622d1b91c1aa9ec8c48d10d91354d175345c Mon Sep 17 00:00:00 2001 +From: Simon Busch +Date: Mon, 22 Jul 2013 21:09:41 +0000 +Subject: [PATCH 09/14] cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to + determine path to host binaries + +Upstream-Status: Inappropiate (configuration) + +Signed-off-by: Simon Busch +Signed-off-by: Martin Jansa +--- + src/corelib/Qt5CoreConfigExtras.cmake.in | 6 +++--- + src/dbus/Qt5DBusConfigExtras.cmake.in | 4 ++-- + src/widgets/Qt5WidgetsConfigExtras.cmake.in | 2 +- + 3 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in +index 9bda70e..6e3605a 100644 +--- a/src/corelib/Qt5CoreConfigExtras.cmake.in ++++ b/src/corelib/Qt5CoreConfigExtras.cmake.in +@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qmake) + !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) + set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\") + !!ELSE +- set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\") ++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake$$CMAKE_BIN_SUFFIX\") + !!ENDIF + _qt5_Core_check_file_exists(${imported_location}) + +@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::moc) + !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) + set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\") + !!ELSE +- set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\") ++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc$$CMAKE_BIN_SUFFIX\") + !!ENDIF + _qt5_Core_check_file_exists(${imported_location}) + +@@ -37,7 +37,7 @@ if (NOT TARGET Qt5::rcc) + !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) + set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\") + !!ELSE +- set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\") ++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/rcc$$CMAKE_BIN_SUFFIX\") + !!ENDIF + _qt5_Core_check_file_exists(${imported_location}) + +diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in +index 1d94715..617efa8 100644 +--- a/src/dbus/Qt5DBusConfigExtras.cmake.in ++++ b/src/dbus/Qt5DBusConfigExtras.cmake.in +@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qdbuscpp2xml) + !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) + set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\") + !!ELSE +- set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\") ++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbuscpp2xml$$CMAKE_BIN_SUFFIX\") + !!ENDIF + _qt5_DBus_check_file_exists(${imported_location}) + +@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::qdbusxml2cpp) + !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) + set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\") + !!ELSE +- set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\") ++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbusxml2cpp$$CMAKE_BIN_SUFFIX\") + !!ENDIF + _qt5_DBus_check_file_exists(${imported_location}) + +diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in +index e5650ff..16ff007 100644 +--- a/src/widgets/Qt5WidgetsConfigExtras.cmake.in ++++ b/src/widgets/Qt5WidgetsConfigExtras.cmake.in +@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::uic) + !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) + set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\") + !!ELSE +- set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\") ++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic$$CMAKE_BIN_SUFFIX\") + !!ENDIF + _qt5_Widgets_check_file_exists(${imported_location}) + +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0010-Always-build-uic.patch b/meta-qt5/recipes-qt/qt5/qtbase/0010-Always-build-uic.patch new file mode 100644 index 0000000000..5681b58352 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0010-Always-build-uic.patch @@ -0,0 +1,38 @@ +From 8a10c6d053fe438aec007e4a73b60ac59716ccd4 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sat, 16 Nov 2013 00:32:30 +0100 +Subject: [PATCH 10/12] Always build uic + +Even if we are not building gui or widgets. This tool is needed later +as a native tool when compiling the target. + +Change-Id: I257668ac28c22b192e7ec7736e6c23fa3be6bab6 +Signed-off-by: Mikko Levonmaa +Signed-off-by: Martin Jansa +--- + src/src.pro | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/src.pro b/src/src.pro +index b7887a6..8801544 100644 +--- a/src/src.pro ++++ b/src/src.pro +@@ -145,7 +145,7 @@ contains(QT_CONFIG, concurrent):SUBDIRS += src_concurrent + } + } + } +-SUBDIRS += src_plugins src_tools_qdoc ++SUBDIRS += src_plugins src_tools_qdoc src_tools_uic + + nacl: SUBDIRS -= src_network src_testlib + +@@ -156,4 +156,4 @@ TR_EXCLUDE = \ + src_tools_bootstrap_dbus src_tools_qdbusxml2cpp src_tools_qdbuscpp2xml + + sub-tools.depends = $$TOOLS +-QMAKE_EXTRA_TARGETS = sub-tools +\ No newline at end of file ++QMAKE_EXTRA_TARGETS = sub-tools +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0010-qmake-is-already-built-in-qtbase-native.patch b/meta-qt5/recipes-qt/qt5/qtbase/0010-qmake-is-already-built-in-qtbase-native.patch new file mode 100644 index 0000000000..64ba88e7af --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0010-qmake-is-already-built-in-qtbase-native.patch @@ -0,0 +1,30 @@ +From 77a18a9fe2d0e4a1dcd95e2d78c85eb37452bc73 Mon Sep 17 00:00:00 2001 +From: Michael Krelin +Date: Mon, 29 Oct 2012 20:07:49 -0700 +Subject: [PATCH 10/14] qmake is already built in qtbase-native + +Ported from OE by: Yu Ke +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Mikko Levonmaa +Signed-off-by: Martin Jansa +--- + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure b/configure +index 66c2ae0..ac836aa 100755 +--- a/configure ++++ b/configure +@@ -3941,7 +3941,7 @@ setBootstrapEvalVariable() + + + # build qmake +-if true; then ###[ '!' -f "$outpath/bin/qmake" ]; ++if false; then ###[ '!' -f "$outpath/bin/qmake" ]; + echo "Creating qmake..." + + mkdir -p "$outpath/qmake" || exit +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0011-Allow-building-a-separate-qmake-for-the-target.patch b/meta-qt5/recipes-qt/qt5/qtbase/0011-Allow-building-a-separate-qmake-for-the-target.patch new file mode 100644 index 0000000000..f80edbd9f0 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0011-Allow-building-a-separate-qmake-for-the-target.patch @@ -0,0 +1,30 @@ +From dd14f3eda61669c66c95dbcbca3afbd61f9aa746 Mon Sep 17 00:00:00 2001 +From: Paul Eggleton +Date: Mon, 29 Oct 2012 20:26:36 -0700 +Subject: [PATCH 11/14] Allow building a separate qmake for the target + +Upstream-Status: Inappropriate [config] + +Signed-off-by: Paul Eggleton +Signed-off-by: Mikko Levonmaa +Signed-off-by: Martin Jansa +--- + qmake/qmake.pro | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/qmake/qmake.pro b/qmake/qmake.pro +index 89d6ea5..7c605b9 100644 +--- a/qmake/qmake.pro ++++ b/qmake/qmake.pro +@@ -8,6 +8,8 @@ CONFIG -= qt + DEFINES += \ + QT_BUILD_QMAKE \ + PROEVALUATOR_FULL ++DESTDIR = ../bin/ ++TARGET = qmake + + VPATH += \ + ../src/corelib/global \ +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0011-configure-preserve-built-qmake-and-swap-with-native-.patch b/meta-qt5/recipes-qt/qt5/qtbase/0011-configure-preserve-built-qmake-and-swap-with-native-.patch new file mode 100644 index 0000000000..798cd45e67 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0011-configure-preserve-built-qmake-and-swap-with-native-.patch @@ -0,0 +1,30 @@ +From 441b2ebc41013505b9f5b6a4db43526506f84e47 Mon Sep 17 00:00:00 2001 +From: Denys Dmytriyenko +Date: Mon, 11 Nov 2013 20:22:34 -0500 +Subject: [PATCH 11/12] configure: preserve built qmake and swap with native + one + +Let configure script build the real qmake, but right after it's built, swap +it with a native qmake for further internal use, preserving the real one. + +Signed-off-by: Denys Dmytriyenko +--- + configure | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/configure b/configure +index 66c2ae0..d423cce 100755 +--- a/configure ++++ b/configure +@@ -4085,6 +4085,8 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ]; + + (cd "$outpath/qmake"; "$MAKE") || exit 2 + fi # Build qmake ++mv "$outpath/bin/qmake" "$outpath/bin/qmake-real" ++mv "$outpath/bin/qmake-native" "$outpath/bin/qmake" + + echo "Running configuration tests..." + +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0012-configure-bump-path-length-from-256-to-512-character.patch b/meta-qt5/recipes-qt/qt5/qtbase/0012-configure-bump-path-length-from-256-to-512-character.patch new file mode 100644 index 0000000000..be86f71d99 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0012-configure-bump-path-length-from-256-to-512-character.patch @@ -0,0 +1,29 @@ +From 63313ba681ad5bb0ef83c3b8908387939c2b41d5 Mon Sep 17 00:00:00 2001 +From: Denys Dmytriyenko +Date: Mon, 11 Nov 2013 20:27:30 -0500 +Subject: [PATCH 12/12] configure: bump path length from 256 to 512 characters + +Increase the path length that gets hardcoded into generated config.cpp file +from 256 to 512 characters, as nativesdk path can be quite long. + +Signed-off-by: Denys Dmytriyenko +--- + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure b/configure +index d423cce..1ea4102 100755 +--- a/configure ++++ b/configure +@@ -3823,7 +3823,7 @@ static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$ + static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`"; + + /* Installation Info */ +-static const char qt_configure_prefix_path_strs[][256 + 12] = { ++static const char qt_configure_prefix_path_strs[][512 + 12] = { + #ifndef QT_BUILD_QMAKE + "qt_prfxpath=$QT_SYSROOT_PREFIX", + "qt_docspath=$QT_SYSROOT_DOCS", +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0013-QOpenGLPaintDevice-sub-area-support.patch b/meta-qt5/recipes-qt/qt5/qtbase/0013-QOpenGLPaintDevice-sub-area-support.patch new file mode 100644 index 0000000000..c6ec67cbf7 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0013-QOpenGLPaintDevice-sub-area-support.patch @@ -0,0 +1,154 @@ +From 2fad0a6fa3c06577995ac44ed0a2a12eaef819c2 Mon Sep 17 00:00:00 2001 +From: Jani Hautakangas +Date: Thu, 16 May 2013 09:52:07 +0300 +Subject: [PATCH 13/14] QOpenGLPaintDevice sub-area support + +Allows creating QOpenGLPaintDevice targetting sub-area +of binded framebuffer. + +Upstream-Status: Pending + +Change-Id: Ida2f079aa1ac0b87d36b54129e226399dbcdda80 + +Signed-off-by: Martin Jansa +--- + src/gui/opengl/qopenglpaintdevice.cpp | 12 ++++++++++++ + src/gui/opengl/qopenglpaintdevice.h | 2 ++ + src/gui/opengl/qopenglpaintengine.cpp | 10 +++++++--- + src/gui/opengl/qopenglpaintengine_p.h | 1 + + src/gui/opengl/qopengltextureglyphcache.cpp | 2 +- + 5 files changed, 23 insertions(+), 4 deletions(-) + +diff --git a/src/gui/opengl/qopenglpaintdevice.cpp b/src/gui/opengl/qopenglpaintdevice.cpp +index fa392d1..5df1762 100644 +--- a/src/gui/opengl/qopenglpaintdevice.cpp ++++ b/src/gui/opengl/qopenglpaintdevice.cpp +@@ -111,6 +111,7 @@ class QOpenGLPaintDevicePrivate + public: + QOpenGLPaintDevicePrivate(const QSize &size); + ++ QPoint offset; + QSize size; + QOpenGLContext *ctx; + +@@ -159,6 +160,12 @@ QOpenGLPaintDevice::QOpenGLPaintDevice(int width, int height) + { + } + ++QOpenGLPaintDevice::QOpenGLPaintDevice(int x, int y, int width, int height) ++ : d_ptr(new QOpenGLPaintDevicePrivate(QSize(width, height))) ++{ ++ d_ptr->offset = QPoint(x,y); ++} ++ + /*! + Destroys the QOpenGLPaintDevice. + */ +@@ -228,6 +235,11 @@ QOpenGLContext *QOpenGLPaintDevice::context() const + return d_ptr->ctx; + } + ++QPoint QOpenGLPaintDevice::offset() const ++{ ++ return d_ptr->offset; ++} ++ + /*! + Returns the pixel size of the paint device. + +diff --git a/src/gui/opengl/qopenglpaintdevice.h b/src/gui/opengl/qopenglpaintdevice.h +index c05571c..01eb1bc 100644 +--- a/src/gui/opengl/qopenglpaintdevice.h ++++ b/src/gui/opengl/qopenglpaintdevice.h +@@ -62,12 +62,14 @@ public: + QOpenGLPaintDevice(); + explicit QOpenGLPaintDevice(const QSize &size); + QOpenGLPaintDevice(int width, int height); ++ QOpenGLPaintDevice(int x, int y, int width, int height); + virtual ~QOpenGLPaintDevice(); + + int devType() const { return QInternal::OpenGL; } + QPaintEngine *paintEngine() const; + + QOpenGLContext *context() const; ++ QPoint offset() const; + QSize size() const; + void setSize(const QSize &size); + void setDevicePixelRatio(qreal devicePixelRatio); +diff --git a/src/gui/opengl/qopenglpaintengine.cpp b/src/gui/opengl/qopenglpaintengine.cpp +index 0513551..f6aeb15 100644 +--- a/src/gui/opengl/qopenglpaintengine.cpp ++++ b/src/gui/opengl/qopenglpaintengine.cpp +@@ -1985,7 +1985,10 @@ bool QOpenGL2PaintEngineEx::begin(QPaintDevice *pdev) + for (int i = 0; i < QT_GL_VERTEX_ARRAY_TRACKED_COUNT; ++i) + d->vertexAttributeArraysEnabledState[i] = false; + ++ const QPoint offset = d->device->offset(); + const QSize sz = d->device->size(); ++ d->x = offset.x(); ++ d->y = offset.y(); + d->width = sz.width(); + d->height = sz.height(); + d->mode = BrushDrawingMode; +@@ -2073,7 +2076,7 @@ void QOpenGL2PaintEngineEx::ensureActive() + d->device->ensureActiveTarget(); + + d->transferMode(BrushDrawingMode); +- glViewport(0, 0, d->width, d->height); ++ glViewport(d->x, d->y, d->width, d->height); + d->needsSync = false; + d->lastMaskTextureUsed = 0; + d->shaderManager->setDirty(); +@@ -2116,6 +2119,7 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest() + if (bounds == QRect(0, 0, width, height)) { + glDisable(GL_SCISSOR_TEST); + } else { ++ bounds = QRect(bounds.x(), bounds.y(), bounds.width(), bounds.height()); + glEnable(GL_SCISSOR_TEST); + setScissor(bounds); + } +@@ -2124,14 +2128,14 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest() + + void QOpenGL2PaintEngineExPrivate::setScissor(const QRect &rect) + { +- const int left = rect.left(); ++ const int left = rect.left() + x; + const int width = rect.width(); + int bottom = height - (rect.top() + rect.height()); + if (device->paintFlipped()) { + bottom = rect.top(); + } ++ bottom += y; + const int height = rect.height(); +- + glScissor(left, bottom, width, height); + } + +diff --git a/src/gui/opengl/qopenglpaintengine_p.h b/src/gui/opengl/qopenglpaintengine_p.h +index d51f0e5..0d4b38d 100644 +--- a/src/gui/opengl/qopenglpaintengine_p.h ++++ b/src/gui/opengl/qopenglpaintengine_p.h +@@ -264,6 +264,7 @@ public: + QOpenGL2PaintEngineEx* q; + QOpenGLEngineShaderManager* shaderManager; + QOpenGLPaintDevice* device; ++ int x, y; + int width, height; + QOpenGLContext *ctx; + EngineMode mode; +diff --git a/src/gui/opengl/qopengltextureglyphcache.cpp b/src/gui/opengl/qopengltextureglyphcache.cpp +index 3b62d1d..a5d1f7e 100644 +--- a/src/gui/opengl/qopengltextureglyphcache.cpp ++++ b/src/gui/opengl/qopengltextureglyphcache.cpp +@@ -273,7 +273,7 @@ void QOpenGLTextureGlyphCache::resizeTextureData(int width, int height) + funcs.glBindFramebuffer(GL_FRAMEBUFFER, (GLuint)oldFbo); + + if (pex != 0) { +- glViewport(0, 0, pex->width, pex->height); ++ glViewport(pex->x, pex->y, pex->width, pex->height); + pex->updateClipScissorTest(); + } else { + m_blitProgram->disableAttributeArray(int(QT_VERTEX_COORDS_ATTR)); +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0014-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch b/meta-qt5/recipes-qt/qt5/qtbase/0014-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch new file mode 100644 index 0000000000..6fd29381d8 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0014-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch @@ -0,0 +1,63 @@ +From c8995c6eb6cf4bfa8daf1e3e96bd4885a096f405 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 5 Feb 2014 18:35:08 +0100 +Subject: [PATCH 14/14] eglfs: fix egl error for platforms only supporting one + window/surface +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +running qmlscene -platform eglfs .qml + +caused + +EGL Error : Could not create the egl surface: error = 0x3003 + +Rebased version of [1-2] + +Upstream-Status: unknown + +[1] http://repository.timesys.com/buildsources/q/qt-everywhere-opensource/qt-everywhere-opensource-5.1.1/qt-everywhere-opensource-5.1.1-qeglfswindow.cpp.patch +[2] https://github.com/prabindh/qt-configs/blob/master/qt5_1.0_Feb13/qeglfswindow.cpp.patch + +Signed-off-by: Andreas Müller +--- + src/plugins/platforms/eglfs/qeglfswindow.cpp | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/src/plugins/platforms/eglfs/qeglfswindow.cpp b/src/plugins/platforms/eglfs/qeglfswindow.cpp +index bba00da..567820c 100644 +--- a/src/plugins/platforms/eglfs/qeglfswindow.cpp ++++ b/src/plugins/platforms/eglfs/qeglfswindow.cpp +@@ -87,6 +87,16 @@ void QEglFSWindow::create() + if (m_flags.testFlag(Created)) + return; + ++ static EGLSurface __singleWindowSurface; ++ if(QEglFSHooks::hooks() && !QEglFSHooks::hooks()->hasCapability(QPlatformIntegration::MultipleWindows) && (__singleWindowSurface)) ++ { ++ m_surface = __singleWindowSurface; ++#ifdef QEGL_EXTRA_DEBUG ++ qWarning("Surface recreate request, re-using %x\n", m_surface); ++#endif ++ return; ++ } ++ + m_flags = Created; + m_wid = newWId(); + +@@ -130,6 +140,11 @@ void QEglFSWindow::create() + + resetSurface(); + ++ if(QEglFSHooks::hooks() && !QEglFSHooks::hooks()->hasCapability(QPlatformIntegration::MultipleWindows)) ++ { ++ __singleWindowSurface = m_surface; ++ } ++ + screen->setPrimarySurface(m_surface); + + if (m_flags.testFlag(IsRaster)) { +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0015-Fix-linuxfb-argument-mmsize-parsing.patch b/meta-qt5/recipes-qt/qt5/qtbase/0015-Fix-linuxfb-argument-mmsize-parsing.patch new file mode 100644 index 0000000000..a31301e36a --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0015-Fix-linuxfb-argument-mmsize-parsing.patch @@ -0,0 +1,42 @@ +From 99979159a404df09495c8ddd6a052837f66b8739 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Peter=20K=C3=BCmmel?= +Date: Fri, 7 Feb 2014 13:12:37 +0100 +Subject: [PATCH] Fix linuxfb argument 'mmsize' parsing + +Parse first for 'mmsize' because the regex for 'size' also fits to 'mmsize'. + +Upstream-Status: Backport + +Task-number: QTBUG-29133 +Change-Id: Idc4950270818e496d5d94a97a172b7c780f069b1 +Reviewed-by: Laszlo Agocs +Signed-off-by: Jonathan Liu +--- + src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp b/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp +index 735a43d..33a9523 100644 +--- a/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp ++++ b/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp +@@ -333,6 +333,8 @@ bool QLinuxFbScreen::initialize() + foreach (const QString &arg, mArgs) { + if (arg == QLatin1String("nographicsmodeswitch")) + doSwitchToGraphicsMode = false; ++ else if (mmSizeRx.indexIn(arg) != -1) ++ userMmSize = QSize(mmSizeRx.cap(1).toInt(), mmSizeRx.cap(2).toInt()); + else if (sizeRx.indexIn(arg) != -1) + userGeometry.setSize(QSize(sizeRx.cap(1).toInt(), sizeRx.cap(2).toInt())); + else if (offsetRx.indexIn(arg) != -1) +@@ -341,8 +343,6 @@ bool QLinuxFbScreen::initialize() + ttyDevice = ttyRx.cap(1); + else if (fbRx.indexIn(arg) != -1) + fbDevice = fbRx.cap(1); +- else if (mmSizeRx.indexIn(arg) != -1) +- userMmSize = QSize(mmSizeRx.cap(1).toInt(), mmSizeRx.cap(2).toInt()); + } + + if (fbDevice.isEmpty()) { +-- +1.7.1 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase/0016-eglfs-Fix-quad-coordinates.patch b/meta-qt5/recipes-qt/qt5/qtbase/0016-eglfs-Fix-quad-coordinates.patch new file mode 100644 index 0000000000..92785e459e --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase/0016-eglfs-Fix-quad-coordinates.patch @@ -0,0 +1,39 @@ +From 84756d94c73885803ad8044099ab47c0c49b5076 Mon Sep 17 00:00:00 2001 +From: Laszlo Agocs +Date: Thu, 23 Jan 2014 11:45:22 +0100 +Subject: [PATCH] eglfs: Fix quad coordinates + +Prevent artifacts on raster windows by properly mapping +the coordinates to [-1,1]. + +Upstream-Status: Backport + +Task-number: QTBUG-36370 +Change-Id: I95d0d03952f597ef4ce6a950c6533a3af2df964a +Reviewed-by: Andy Nichols +Signed-off-by: Jonathan Liu +--- + src/plugins/platforms/eglfs/qeglfscompositor.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/plugins/platforms/eglfs/qeglfscompositor.cpp b/src/plugins/platforms/eglfs/qeglfscompositor.cpp +index 845bb5b..1efc4f7 100644 +--- a/src/plugins/platforms/eglfs/qeglfscompositor.cpp ++++ b/src/plugins/platforms/eglfs/qeglfscompositor.cpp +@@ -153,10 +153,11 @@ void QEglFSCompositor::render(QEglFSWindow *window, uint texture, bool raster) + QPoint tl = r.topLeft(); + QPoint br = r.bottomRight(); + ++ // Map to [-1,1] + GLfloat x1 = (tl.x() / sr.width()) * 2 - 1; +- GLfloat x2 = (br.x() / sr.width()) * 2 - 1; + GLfloat y1 = ((sr.height() - tl.y()) / sr.height()) * 2 - 1; +- GLfloat y2 = ((sr.height() - br.y()) / sr.height()) * 2 - 1; ++ GLfloat x2 = ((br.x() + 1) / sr.width()) * 2 - 1; ++ GLfloat y2 = ((sr.height() - (br.y() + 1)) / sr.height()) * 2 - 1; + + if (!raster) + qSwap(y1, y2); +-- +1.7.1 + diff --git a/meta-qt5/recipes-qt/qt5/qtbase_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtbase_5.2.1.bb new file mode 100644 index 0000000000..4257367a01 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase_5.2.1.bb @@ -0,0 +1,7 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI += "file://0015-Fix-linuxfb-argument-mmsize-parsing.patch" + +SRC_URI[md5sum] = "fa005301a2000b92b61b63edc042567b" +SRC_URI[sha256sum] = "acdfd1aa2548ebea1d922e8e24e5c59f5fc3b2beae7c8003ba47d773bfcc94c0" diff --git a/meta-qt5/recipes-qt/qt5/qtbase_git.bb b/meta-qt5/recipes-qt/qt5/qtbase_git.bb new file mode 100644 index 0000000000..07dd936df3 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtbase_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 172 commits +SRCREV = "bf0336a02502b3ed4d399c1cf5b4a56b1e858d42" diff --git a/meta-qt5/recipes-qt/qt5/qtconnectivity.inc b/meta-qt5/recipes-qt/qt5/qtconnectivity.inc new file mode 100644 index 0000000000..c0a51470f6 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtconnectivity.inc @@ -0,0 +1,13 @@ +require qt5.inc + +DEPENDS += "qtbase qtdeclarative" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[bluez4] = ",,bluez4" + +do_configure_prepend() { + # disable bluez test if it isn't enabled by PACKAGECONFIG + sed -i 's/^qtCompileTest(bluez)/OE_BLUEZ_ENABLED:qtCompileTest(bluez)/g' ${S}/qtconnectivity.pro +} + +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'bluez4', 'CONFIG+=OE_BLUEZ_ENABLED', '', d)}" diff --git a/meta-qt5/recipes-qt/qt5/qtconnectivity_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtconnectivity_5.2.1.bb new file mode 100644 index 0000000000..6fd0c7bada --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtconnectivity_5.2.1.bb @@ -0,0 +1,5 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "cb2ef624b28b6ba61d6a467b8b3c314a" +SRC_URI[sha256sum] = "ec31e1c3cd5aea4d7dff946802a7fde2599bb8a1931d4bb49cb0854371cf1223" diff --git a/meta-qt5/recipes-qt/qt5/qtconnectivity_git.bb b/meta-qt5/recipes-qt/qt5/qtconnectivity_git.bb new file mode 100644 index 0000000000..35e54d32a2 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtconnectivity_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${BPN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 25 commits +SRCREV = "9902dfdbc44934ce2e8072bc237ca8cdbfb3402b" diff --git a/meta-qt5/recipes-qt/qt5/qtdeclarative.inc b/meta-qt5/recipes-qt/qt5/qtdeclarative.inc new file mode 100644 index 0000000000..4a186fdcbf --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtdeclarative.inc @@ -0,0 +1,18 @@ +require qt5.inc + +SRC_URI += " \ + file://0001-qmltestexample-fix-link.patch \ +" + +DEPENDS += "qtbase" + +PACKAGECONFIG ??= "qtxmlpatterns" +PACKAGECONFIG[qtxmlpatterns] = ",,qtxmlpatterns" + +do_configure_prepend() { + # disable qtxmlpatterns test if it isn't enabled by PACKAGECONFIG + sed -e 's/^\(qtHaveModule(xmlpatterns)\)/OE_QTXMLPATTERNS_ENABLED:\1/' -i ${S}/src/imports/imports.pro + sed -e 's/^\(!qtHaveModule(xmlpatterns)\)/!OE_QTXMLPATTERNS_ENABLED|\1/' -i ${S}/tests/auto/quick/quick.pro +} + +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'qtxmlpatterns', 'CONFIG+=OE_QTXMLPATTERNS_ENABLED', '', d)}" diff --git a/meta-qt5/recipes-qt/qt5/qtdeclarative/0001-qmltestexample-fix-link.patch b/meta-qt5/recipes-qt/qt5/qtdeclarative/0001-qmltestexample-fix-link.patch new file mode 100644 index 0000000000..05aa36426a --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtdeclarative/0001-qmltestexample-fix-link.patch @@ -0,0 +1,88 @@ +From 64ca7961376fa896d82c2a3db2d42cbb6b68c069 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Eric=20B=C3=A9nard?= +Date: Sun, 26 May 2013 14:26:19 +0200 +Subject: [PATCH 1/2] qmltestexample: fix link +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +else we get : +ld: warning: libQt5Quick.so.5, needed by libQt5QuickTest.so, not found + +Upstream-Status: Inappropriate + +Change-Id: I63088ff73bec6a8559dfae132f8bd40b62487450 +Signed-off-by: Eric Bénard +Signed-off-by: Martin Jansa +--- + examples/qmltest/qmltest/qmltest.pro | 2 +- + tests/auto/qml/qjsengine/qjsengine.pro | 2 +- + tests/auto/qml/qtqmlmodules/qtqmlmodules.pro | 2 +- + tests/auto/qmltest/qmltest.pro | 1 + + tools/qmltestrunner/qmltestrunner.pro | 2 +- + 5 files changed, 5 insertions(+), 4 deletions(-) + +diff --git a/examples/qmltest/qmltest/qmltest.pro b/examples/qmltest/qmltest/qmltest.pro +index b5893c5..1b00e6c 100644 +--- a/examples/qmltest/qmltest/qmltest.pro ++++ b/examples/qmltest/qmltest/qmltest.pro +@@ -14,7 +14,7 @@ TESTDATA += tst_basic.qml tst_item.qml + # This code exists solely for the purpose of building this example + # inside the examples/ hierarchy. + +-QT += qml qmltest ++QT += qml qmltest quick + + macx: CONFIG -= app_bundle + +diff --git a/tests/auto/qml/qjsengine/qjsengine.pro b/tests/auto/qml/qjsengine/qjsengine.pro +index a62eb75..73b6917 100644 +--- a/tests/auto/qml/qjsengine/qjsengine.pro ++++ b/tests/auto/qml/qjsengine/qjsengine.pro +@@ -1,7 +1,7 @@ + CONFIG += testcase + CONFIG += parallel_test + TARGET = tst_qjsengine +-QT += qml qml-private widgets testlib gui-private ++QT += qml qml-private widgets testlib gui-private quick + macx:CONFIG -= app_bundle + SOURCES += tst_qjsengine.cpp + +diff --git a/tests/auto/qml/qtqmlmodules/qtqmlmodules.pro b/tests/auto/qml/qtqmlmodules/qtqmlmodules.pro +index c6d442e..3181dcd 100644 +--- a/tests/auto/qml/qtqmlmodules/qtqmlmodules.pro ++++ b/tests/auto/qml/qtqmlmodules/qtqmlmodules.pro +@@ -8,5 +8,5 @@ macx:CONFIG -= app_bundle + + TESTDATA = data/* + +-QT += core-private qml-private testlib gui gui-private ++QT += core-private qml-private testlib gui gui-private quick + DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 +diff --git a/tests/auto/qmltest/qmltest.pro b/tests/auto/qmltest/qmltest.pro +index 7662cb1..a8f8ae2 100644 +--- a/tests/auto/qmltest/qmltest.pro ++++ b/tests/auto/qmltest/qmltest.pro +@@ -4,6 +4,7 @@ CONFIG += qmltestcase + CONFIG += console + SOURCES += tst_qmltest.cpp + ++QT += quick + + importFiles.files = borderimage buttonclick createbenchmark events qqmlbinding selftests + +diff --git a/tools/qmltestrunner/qmltestrunner.pro b/tools/qmltestrunner/qmltestrunner.pro +index 1bb913e..56f2dd5 100644 +--- a/tools/qmltestrunner/qmltestrunner.pro ++++ b/tools/qmltestrunner/qmltestrunner.pro +@@ -1,6 +1,6 @@ + SOURCES += main.cpp + +-QT += qml qmltest ++QT += qml qmltest quick + CONFIG += no_import_scan + + load(qt_tool) +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtdeclarative/0003-Fix-wrong-calculation-of-viewPort-for-transitions.patch b/meta-qt5/recipes-qt/qt5/qtdeclarative/0003-Fix-wrong-calculation-of-viewPort-for-transitions.patch new file mode 100644 index 0000000000..5643634c56 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtdeclarative/0003-Fix-wrong-calculation-of-viewPort-for-transitions.patch @@ -0,0 +1,41 @@ +From a13535b21b8406d65c8f139306d8324bda05443b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20H=C3=A4nel?= +Date: Wed, 5 Jun 2013 19:23:32 +0200 +Subject: [PATCH 2/2] Fix wrong calculation of viewPort for transitions + +Viewport is calculated wrong for horizontal layout in a second instance + +Task-number: QTBUG-29944 +Task-Number: QTBUG-31546 + +Upstream-Status: Pending + +Looks like backport of https://codereview.qt-project.org/49226 but this +one was applied in previous patch, this change looks the same but is +in different part of qquickitemview.cpp and ISN'T applied yet in dev +branch. + +Signed-off-by: Florian Haenel +Signed-off-by: Martin Jansa + +Change-Id: I136ae4484278d14f796613505e3f38c65ec51ebe +--- + src/quick/items/qquickitemview.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp +index d7b9847..a54d282 100644 +--- a/src/quick/items/qquickitemview.cpp ++++ b/src/quick/items/qquickitemview.cpp +@@ -1835,7 +1835,7 @@ void QQuickItemViewPrivate::layout() + + prepareVisibleItemTransitions(); + +- QRectF viewBounds(0, position(), q->width(), q->height()); ++ QRectF viewBounds(q->contentX(), q->contentY(), q->width(), q->height()); + for (QList::Iterator it = releasePendingTransition.begin(); + it != releasePendingTransition.end(); ) { + FxViewItem *item = *it; +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtdeclarative_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtdeclarative_5.2.1.bb new file mode 100644 index 0000000000..eaa90bac38 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtdeclarative_5.2.1.bb @@ -0,0 +1,9 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI += " \ + file://0003-Fix-wrong-calculation-of-viewPort-for-transitions.patch \ +" + +SRC_URI[md5sum] = "a23fba03a4b48f36fe8b51d326d08acc" +SRC_URI[sha256sum] = "7e32b8d6e1d64ca4bdfa92d15f9b4217a1b24239ef40e8826eeccbe918866690" diff --git a/meta-qt5/recipes-qt/qt5/qtdeclarative_git.bb b/meta-qt5/recipes-qt/qt5/qtdeclarative_git.bb new file mode 100644 index 0000000000..e2d6ae585d --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtdeclarative_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 81 commits +SRCREV = "7ceefa60ab4f79d5f40e7051edf80c1a77ae7734" diff --git a/meta-qt5/recipes-qt/qt5/qtgraphicaleffects.inc b/meta-qt5/recipes-qt/qt5/qtgraphicaleffects.inc new file mode 100644 index 0000000000..2ced3c21ef --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtgraphicaleffects.inc @@ -0,0 +1,5 @@ +require qt5.inc + +DEPENDS += "qtdeclarative" + +RDEPENDS_${PN}-dev = "" diff --git a/meta-qt5/recipes-qt/qt5/qtgraphicaleffects_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtgraphicaleffects_5.2.1.bb new file mode 100644 index 0000000000..4d5673b991 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtgraphicaleffects_5.2.1.bb @@ -0,0 +1,5 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "8dde8593750e33a79f49c5a2f03caf0c" +SRC_URI[sha256sum] = "5abb17ee60d68cf49c4f8f0b69c3f1e4d0a2f7b32cda8d6901d9c35447cc3482" diff --git a/meta-qt5/recipes-qt/qt5/qtgraphicaleffects_git.bb b/meta-qt5/recipes-qt/qt5/qtgraphicaleffects_git.bb new file mode 100644 index 0000000000..b442069f52 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtgraphicaleffects_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 3 commits +SRCREV = "1fbbe87e6d5dc84bff70bd90b71d07f9982a8bc3" diff --git a/meta-qt5/recipes-qt/qt5/qtimageformats.inc b/meta-qt5/recipes-qt/qt5/qtimageformats.inc new file mode 100644 index 0000000000..1b4bb4ff52 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtimageformats.inc @@ -0,0 +1,3 @@ +require qt5.inc + +DEPENDS += "qtbase tiff" diff --git a/meta-qt5/recipes-qt/qt5/qtimageformats_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtimageformats_5.2.1.bb new file mode 100644 index 0000000000..2d24ce75f9 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtimageformats_5.2.1.bb @@ -0,0 +1,5 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "9b88aa6f3888c7c7f5253c147ae4bf8f" +SRC_URI[sha256sum] = "a6a0454769566fec1757fb09b1f33c9fc70d4016acbb04ebc6e493ddedfef124" diff --git a/meta-qt5/recipes-qt/qt5/qtimageformats_git.bb b/meta-qt5/recipes-qt/qt5/qtimageformats_git.bb new file mode 100644 index 0000000000..e40bd3fdfb --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtimageformats_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 1 commits +SRCREV = "dde6daeccdf0a3f8d49fe1777b49046576b12218" diff --git a/meta-qt5/recipes-qt/qt5/qtlocation.inc b/meta-qt5/recipes-qt/qt5/qtlocation.inc new file mode 100644 index 0000000000..70a4375524 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtlocation.inc @@ -0,0 +1,4 @@ +require qt5.inc + +DEPENDS += "qtbase qt3d" +# qtsystems qtmultimedia diff --git a/meta-qt5/recipes-qt/qt5/qtlocation_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtlocation_5.2.1.bb new file mode 100644 index 0000000000..f920e2c717 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtlocation_5.2.1.bb @@ -0,0 +1,5 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "4de8ca8ac1a3e5db20a903286fb78840" +SRC_URI[sha256sum] = "9543fcdcab5cf02be60e395e8145e1ec87d03a3d1f129a0dde92102283a9b536" diff --git a/meta-qt5/recipes-qt/qt5/qtlocation_git.bb b/meta-qt5/recipes-qt/qt5/qtlocation_git.bb new file mode 100644 index 0000000000..e498515112 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtlocation_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 13 commits +SRCREV = "2ba9fd5550eb7766c20b3a61679e88ec4a6c8a54" diff --git a/meta-qt5/recipes-qt/qt5/qtmultimedia.inc b/meta-qt5/recipes-qt/qt5/qtmultimedia.inc new file mode 100644 index 0000000000..3b7e568264 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtmultimedia.inc @@ -0,0 +1,17 @@ +require qt5.inc + +DEPENDS += "qtdeclarative alsa-lib" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[openal] = ",,openal-soft" +PACKAGECONFIG[gstreamer010] = ",,gstreamer gst-plugins-base" + +do_configure_prepend() { + # disable openal test if it isn't enabled by PACKAGECONFIG + sed -i 's/^qtCompileTest(openal)/OE_OPENAL_ENABLED:qtCompileTest(openal)/g' ${S}/qtmultimedia.pro + # disable gstreamer-0.10 test if it isn't enabled by PACKAGECONFIG + sed -i 's/^\( *\)qtCompileTest(gstreamer) {/\1OE_GSTREAMER010_ENABLED:qtCompileTest(gstreamer) {/g' ${S}/qtmultimedia.pro +} + +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'openal', 'CONFIG+=OE_OPENAL_ENABLED', '', d)}" +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'gstreamer010', 'CONFIG+=OE_GSTREAMER010_ENABLED', '', d)}" diff --git a/meta-qt5/recipes-qt/qt5/qtmultimedia_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtmultimedia_5.2.1.bb new file mode 100644 index 0000000000..fc823a6d12 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtmultimedia_5.2.1.bb @@ -0,0 +1,5 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "26dc22c59fbbad9fdf0699d5f887166a" +SRC_URI[sha256sum] = "62688cb7d8daa4d7050353fe39536c5edd97228a10185b9662a29b8c8cff1fa2" diff --git a/meta-qt5/recipes-qt/qt5/qtmultimedia_git.bb b/meta-qt5/recipes-qt/qt5/qtmultimedia_git.bb new file mode 100644 index 0000000000..e9fed1abe1 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtmultimedia_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 17 commits +SRCREV = "db7f7cc5654ddec60297259bc9f86f5f777749cd" diff --git a/meta-qt5/recipes-qt/qt5/qtquick1.inc b/meta-qt5/recipes-qt/qt5/qtquick1.inc new file mode 100644 index 0000000000..a9ec211cf7 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtquick1.inc @@ -0,0 +1,4 @@ +require qt5.inc + +DEPENDS += "qtscript qtsvg qtxmlpatterns qtwebkit" +# qttools diff --git a/meta-qt5/recipes-qt/qt5/qtquick1_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtquick1_5.2.1.bb new file mode 100644 index 0000000000..7563bc6be1 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtquick1_5.2.1.bb @@ -0,0 +1,5 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "6abbf131adffdf3cba63704d5d35f921" +SRC_URI[sha256sum] = "8b2bb3250b9e09a4c568069bc4c7cfeddbdcda50b24f0bfecc7f85df3120ff65" diff --git a/meta-qt5/recipes-qt/qt5/qtquick1_git.bb b/meta-qt5/recipes-qt/qt5/qtquick1_git.bb new file mode 100644 index 0000000000..d744aa8de7 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtquick1_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 2 commits +SRCREV = "07d8ce32b1112dcb590c793ee51cb713e514011b" diff --git a/meta-qt5/recipes-qt/qt5/qtquickcontrols.inc b/meta-qt5/recipes-qt/qt5/qtquickcontrols.inc new file mode 100644 index 0000000000..2ced3c21ef --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtquickcontrols.inc @@ -0,0 +1,5 @@ +require qt5.inc + +DEPENDS += "qtdeclarative" + +RDEPENDS_${PN}-dev = "" diff --git a/meta-qt5/recipes-qt/qt5/qtquickcontrols_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtquickcontrols_5.2.1.bb new file mode 100644 index 0000000000..2c09e440f1 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtquickcontrols_5.2.1.bb @@ -0,0 +1,6 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "027bc7d05fe740b21284dc909c9f11ac" +SRC_URI[sha256sum] = "eb03a69402576984d588923e994c3cb672d8479ac9b68ed90da15d0c2fd82aac" + diff --git a/meta-qt5/recipes-qt/qt5/qtquickcontrols_git.bb b/meta-qt5/recipes-qt/qt5/qtquickcontrols_git.bb new file mode 100644 index 0000000000..69c3353b08 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtquickcontrols_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 15 commits +SRCREV = "1c54d411ad6e98c3779a412750aec8b93d587872" diff --git a/meta-qt5/recipes-qt/qt5/qtscript.inc b/meta-qt5/recipes-qt/qt5/qtscript.inc new file mode 100644 index 0000000000..bbb05a6557 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtscript.inc @@ -0,0 +1,3 @@ +require qt5.inc + +DEPENDS += "qtbase" diff --git a/meta-qt5/recipes-qt/qt5/qtscript_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtscript_5.2.1.bb new file mode 100644 index 0000000000..4617c09e73 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtscript_5.2.1.bb @@ -0,0 +1,5 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "b8af09bb297d4c62e64df5418fe99dc9" +SRC_URI[sha256sum] = "6621350d5eff65cb6f9853247246f30a2d4cdb465c14923ff7ccbd8c3a9cdefa" diff --git a/meta-qt5/recipes-qt/qt5/qtscript_git.bb b/meta-qt5/recipes-qt/qt5/qtscript_git.bb new file mode 100644 index 0000000000..2b86650c3f --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtscript_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 1 commits +SRCREV = "f89d64ca722acf4a1a38c5e136bb01eff2525978" diff --git a/meta-qt5/recipes-qt/qt5/qtsensors.inc b/meta-qt5/recipes-qt/qt5/qtsensors.inc new file mode 100644 index 0000000000..b2147f1600 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtsensors.inc @@ -0,0 +1,3 @@ +require qt5.inc + +DEPENDS += "qtbase qtdeclarative" diff --git a/meta-qt5/recipes-qt/qt5/qtsensors_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtsensors_5.2.1.bb new file mode 100644 index 0000000000..1f340d0de1 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtsensors_5.2.1.bb @@ -0,0 +1,5 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "045f98acba9fba0358a6a50356be0841" +SRC_URI[sha256sum] = "09403e7e088f30da828e452559a6904d7c43420d423a429d6529285f99b1e407" diff --git a/meta-qt5/recipes-qt/qt5/qtsensors_git.bb b/meta-qt5/recipes-qt/qt5/qtsensors_git.bb new file mode 100644 index 0000000000..aedcc40eb6 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtsensors_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 2 commits +SRCREV = "9a8319a39a06d6cf3163978301d650b8f3558c62" diff --git a/meta-qt5/recipes-qt/qt5/qtserialport.inc b/meta-qt5/recipes-qt/qt5/qtserialport.inc new file mode 100644 index 0000000000..d559677e35 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtserialport.inc @@ -0,0 +1,9 @@ +require qt5.inc + +# whitespace change in LGPL_EXCEPTION.txt and a bit different formating in LICENSE.LGPL +LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=4fbd65380cdd255951079008b364516c \ + file://LICENSE.FDL;md5=3801d7932fdc07fd9efe89f9854a6caa \ + file://LGPL_EXCEPTION.txt;md5=eb6c371255e1262c55ae9b652a90b528\ +" + +DEPENDS += "qtbase" diff --git a/meta-qt5/recipes-qt/qt5/qtserialport_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtserialport_5.2.1.bb new file mode 100644 index 0000000000..806e7eee8e --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtserialport_5.2.1.bb @@ -0,0 +1,5 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "2993ad7e92a0b6b41e3cb0e0e345d251" +SRC_URI[sha256sum] = "f5754e4ba61843b7dfdf946a91b7d857a5cb470608b840f92452e72f24c67347" diff --git a/meta-qt5/recipes-qt/qt5/qtserialport_git.bb b/meta-qt5/recipes-qt/qt5/qtserialport_git.bb new file mode 100644 index 0000000000..3418259b47 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtserialport_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 28 commits +SRCREV = "03546732fa696467d23b24224fad2822bc6a9043" diff --git a/meta-qt5/recipes-qt/qt5/qtsvg.inc b/meta-qt5/recipes-qt/qt5/qtsvg.inc new file mode 100644 index 0000000000..bbb05a6557 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtsvg.inc @@ -0,0 +1,3 @@ +require qt5.inc + +DEPENDS += "qtbase" diff --git a/meta-qt5/recipes-qt/qt5/qtsvg_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtsvg_5.2.1.bb new file mode 100644 index 0000000000..d12bd83890 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtsvg_5.2.1.bb @@ -0,0 +1,6 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "3f5487fe2bd5024f18f63a8d0eb4294d" +SRC_URI[sha256sum] = "788f69557ff6d28073d6ef2b3300b42b987fba1d122f7884ba0269023cab44ef" + diff --git a/meta-qt5/recipes-qt/qt5/qtsvg_git.bb b/meta-qt5/recipes-qt/qt5/qtsvg_git.bb new file mode 100644 index 0000000000..b6032b7534 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtsvg_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 1 commits +SRCREV = "ae68091e0d6023410bc657cf54e7fa9b6c8bbcc2" diff --git a/meta-qt5/recipes-qt/qt5/qtsystems.inc b/meta-qt5/recipes-qt/qt5/qtsystems.inc new file mode 100644 index 0000000000..8b2a770519 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtsystems.inc @@ -0,0 +1,10 @@ +require qt5.inc + +DEPENDS += "qtbase qtdeclarative udev bluez4 gconf" + +LICENSE = "BSD & LGPL-2.1 & GFDL-1.3" +# LICENSE files are missing in 5.0.0 +LIC_FILES_CHKSUM = "file://${S}/src/imports/systeminfo/qsysteminfo.cpp;endline=40;md5=f28e1baba502dda6849d69d5c24e7356 \ + file://${S}/examples/systeminfo/qml-storageinfo/content/ProgressBar.qml;endline=39;md5=5213e8171c07d54db7107f29ac2f7b5e \ + file://${S}/doc/src/systeminfo/systeminfo.qdoc;endline=26;md5=757f4eda130ceff3ca0985dde715af07 \ +" diff --git a/meta-qt5/recipes-qt/qt5/qtsystems_git.bb b/meta-qt5/recipes-qt/qt5/qtsystems_git.bb new file mode 100644 index 0000000000..c264ab0d7b --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtsystems_git.bb @@ -0,0 +1,7 @@ +require qt5-git.inc +require ${PN}.inc + +# qtsystems wasn't released yet, last tag before this SRCREV is 5.0.0-beta1 +# qt5-git PV is only to indicate that this recipe is compatible with qt5 5.2.1 + +SRCREV = "aa651c73bf7bc57c1b6b1bfcfa9afe901884a102" diff --git a/meta-qt5/recipes-qt/qt5/qttools-native.inc b/meta-qt5/recipes-qt/qt5/qttools-native.inc new file mode 100644 index 0000000000..03b88cd122 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qttools-native.inc @@ -0,0 +1,15 @@ +DEPENDS = "qtbase-native" + +QT_MODULE = "qttools" + +require qt5-native.inc + +SRC_URI += "file://0001-Allow-to-build-only-lrelease-lupdate-lconvert.patch" + +do_configure() { + ${OE_QMAKE_QMAKE} ${OE_QMAKE_DEBUG_OUTPUT} -r ${S} CONFIG+=linguistonly +} + +do_install() { + oe_runmake install INSTALL_ROOT=${D} +} diff --git a/meta-qt5/recipes-qt/qt5/qttools-native_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qttools-native_5.2.1.bb new file mode 100644 index 0000000000..d186a21350 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qttools-native_5.2.1.bb @@ -0,0 +1,5 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "f56b2e6c537f6853d9bf10380c39418b" +SRC_URI[sha256sum] = "ff2f850f63798441aaaa0b18c741460acdd62c74d6a9e6a76521956e4bcb27d5" diff --git a/meta-qt5/recipes-qt/qt5/qttools-native_git.bb b/meta-qt5/recipes-qt/qt5/qttools-native_git.bb new file mode 100644 index 0000000000..200f4277b5 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qttools-native_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 13 commits +SRCREV = "80c6a5ea7f827647cc58037e1d1cf4bbf30e1fb6" diff --git a/meta-qt5/recipes-qt/qt5/qttools.inc b/meta-qt5/recipes-qt/qt5/qttools.inc new file mode 100644 index 0000000000..0192f228f0 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qttools.inc @@ -0,0 +1,9 @@ +require qt5.inc + +DEPENDS += "qtbase qtdeclarative qtwebkit qtxmlpatterns" + +SRC_URI += " \ + file://0002-assistant-help-fix-linking-of-dependent-libraries.patch \ +" + +FILES_${PN}-examples = "${datadir}/${QT_DIR_NAME}/examples" diff --git a/meta-qt5/recipes-qt/qt5/qttools/0001-Allow-to-build-only-lrelease-lupdate-lconvert.patch b/meta-qt5/recipes-qt/qt5/qttools/0001-Allow-to-build-only-lrelease-lupdate-lconvert.patch new file mode 100644 index 0000000000..49f296d811 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qttools/0001-Allow-to-build-only-lrelease-lupdate-lconvert.patch @@ -0,0 +1,138 @@ +From a5150c9701d5b2e6c77e521544034ea732d2266b Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Wed, 11 Sep 2013 18:30:08 +0200 +Subject: [PATCH 1/2] Allow to build only lrelease + lupdate + lconvert + +This is useful e.g. when cross compiling with OpenEmbedded where qtbase-native +is built without GUI support (no-png is set) and we still want to build +native lrelease + lupdate + lconvert tools. + +Upstream-Status: Pending + +Signed-off-by: Martin Jansa +--- + examples/examples.pro | 4 ++-- + src/designer/src/src.pro | 16 +++++++++------- + src/linguist/linguist.pro | 2 +- + src/src.pro | 10 ++++++---- + tests/auto/auto.pro | 22 ++++++++++++---------- + 5 files changed, 30 insertions(+), 24 deletions(-) + +diff --git a/examples/examples.pro b/examples/examples.pro +index 4955969..8e86419 100644 +--- a/examples/examples.pro ++++ b/examples/examples.pro +@@ -1,3 +1,3 @@ + TEMPLATE = subdirs +-qtHaveModule(widgets): SUBDIRS += help designer linguist uitools assistant +- ++!linguistonly:qtHaveModule(widgets): SUBDIRS += help designer assistant ++qtHaveModule(widgets): SUBDIRS += linguist uitools +diff --git a/src/designer/src/src.pro b/src/designer/src/src.pro +index e02ca8e..49527c5 100644 +--- a/src/designer/src/src.pro ++++ b/src/designer/src/src.pro +@@ -1,18 +1,20 @@ + TEMPLATE = subdirs + +-SUBDIRS = \ +- uitools \ +- lib \ +- components \ +- designer ++!linguistonly { ++ SUBDIRS = \ ++ lib \ ++ components \ ++ designer ++} ++SUBDIRS += uitools + +-contains(QT_CONFIG, shared): SUBDIRS += plugins ++!linguistonly:contains(QT_CONFIG, shared): SUBDIRS += plugins + + components.depends = lib + designer.depends = components + plugins.depends = lib + +-qtNomakeTools( \ ++!linguistonly:qtNomakeTools( \ + lib \ + components \ + designer \ +diff --git a/src/linguist/linguist.pro b/src/linguist/linguist.pro +index 2979a23..663bdd5 100644 +--- a/src/linguist/linguist.pro ++++ b/src/linguist/linguist.pro +@@ -3,7 +3,7 @@ SUBDIRS = \ + lrelease \ + lupdate \ + lconvert +-!no-png:qtHaveModule(widgets): SUBDIRS += linguist ++!linguistonly:!no-png:qtHaveModule(widgets): SUBDIRS += linguist + + qtNomakeTools( \ + linguist \ +diff --git a/src/src.pro b/src/src.pro +index 866a199..ec08874 100644 +--- a/src/src.pro ++++ b/src/src.pro +@@ -4,10 +4,12 @@ qtHaveModule(widgets) { + no-png { + message("Some graphics-related tools are unavailable without PNG support") + } else { +- SUBDIRS = assistant \ ++ !linguistonly { ++ SUBDIRS = assistant \ + pixeltool \ +- qtestlib \ +- designer ++ qtestlib ++ } ++ SUBDIRS += designer + # unix:!mac:!embedded:!qpa:SUBDIRS += qtconfig + + linguist.depends = designer +@@ -25,7 +27,7 @@ android { + SUBDIRS += androiddeployqt + } + +-qtHaveModule(dbus): SUBDIRS += qdbus ++!linguistonly:qtHaveModule(dbus): SUBDIRS += qdbus + + win32|winrt:SUBDIRS += windeployqt + +diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro +index eaf440b..1778ad1 100644 +--- a/tests/auto/auto.pro ++++ b/tests/auto/auto.pro +@@ -1,14 +1,16 @@ + TEMPLATE=subdirs +-SUBDIRS=\ +- linguist \ +- host.pro \ +- qhelpcontentmodel \ +- qhelpenginecore \ +- qhelpgenerator \ +- qhelpindexmodel \ +- qhelpprojectdata \ +- cmake \ +- installed_cmake ++!linguistonly { ++ SUBDIRS=\ ++ linguist \ ++ host.pro \ ++ qhelpcontentmodel \ ++ qhelpenginecore \ ++ qhelpgenerator \ ++ qhelpindexmodel \ ++ qhelpprojectdata \ ++ cmake \ ++ installed_cmake ++} + + installed_cmake.depends = cmake + +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qttools/0002-assistant-help-fix-linking-of-dependent-libraries.patch b/meta-qt5/recipes-qt/qt5/qttools/0002-assistant-help-fix-linking-of-dependent-libraries.patch new file mode 100644 index 0000000000..3e4cf4ef71 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qttools/0002-assistant-help-fix-linking-of-dependent-libraries.patch @@ -0,0 +1,32 @@ +From 6837c212d388a3b679b7420c5f1c98ef85d04a39 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 17 Jan 2014 14:33:19 +0100 +Subject: [PATCH 2/2] assistant/help: fix linking of dependent libraries +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +else we get: +| ...ld: warning: libQt5CLucene.so.5, needed by ...libQt5Help.so, not found (try using -rpath or -rpath-link) +| ...undefined reference to `QCLucenePhraseQuery::getTerms() const' + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andreas Müller +--- + src/assistant/help/help.pro | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/assistant/help/help.pro b/src/assistant/help/help.pro +index ed75c37..a2c55c7 100644 +--- a/src/assistant/help/help.pro ++++ b/src/assistant/help/help.pro +@@ -70,3 +70,5 @@ HEADERS += qhelpenginecore.h \ + # access to clucene + HEADERS += qhelpsearchindexwriter_clucene_p.h \ + qhelpsearchindexreader_clucene_p.h ++ ++LIBS += -lQt5CLucene +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qttools_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qttools_5.2.1.bb new file mode 100644 index 0000000000..d186a21350 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qttools_5.2.1.bb @@ -0,0 +1,5 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "f56b2e6c537f6853d9bf10380c39418b" +SRC_URI[sha256sum] = "ff2f850f63798441aaaa0b18c741460acdd62c74d6a9e6a76521956e4bcb27d5" diff --git a/meta-qt5/recipes-qt/qt5/qttools_git.bb b/meta-qt5/recipes-qt/qt5/qttools_git.bb new file mode 100644 index 0000000000..200f4277b5 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qttools_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 13 commits +SRCREV = "80c6a5ea7f827647cc58037e1d1cf4bbf30e1fb6" diff --git a/meta-qt5/recipes-qt/qt5/qtwayland-native.inc b/meta-qt5/recipes-qt/qt5/qtwayland-native.inc new file mode 100644 index 0000000000..78416e894d --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtwayland-native.inc @@ -0,0 +1,17 @@ +require qt5-native.inc + +QT_MODULE = "${BPN}" + +DEPENDS = "qtbase-native wayland-native" + +SRC_URI += " \ + file://0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch \ +" + +do_configure() { + ${OE_QMAKE_QMAKE} ${OE_QMAKE_DEBUG_OUTPUT} -r ${S}/src/qtwaylandscanner +} + +do_install() { + oe_runmake install INSTALL_ROOT=${D} +} diff --git a/meta-qt5/recipes-qt/qt5/qtwayland-native_git.bb b/meta-qt5/recipes-qt/qt5/qtwayland-native_git.bb new file mode 100644 index 0000000000..988aa98b2e --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtwayland-native_git.bb @@ -0,0 +1,7 @@ +require qt5-git.inc +require ${PN}.inc + +# qtwayland wasn't released yet, last tag before this SRCREV is 5.0.0-beta1 +# qt5-git PV is only to indicate that this recipe is compatible with qt5 5.2.1 + +SRCREV = "a237778666666ab77c4e8e6b501cf0fbe7c9223e" diff --git a/meta-qt5/recipes-qt/qt5/qtwayland.inc b/meta-qt5/recipes-qt/qt5/qtwayland.inc new file mode 100644 index 0000000000..abeb15f346 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtwayland.inc @@ -0,0 +1,24 @@ +require qt5.inc + +# wayland-native is already in wayland DEPENDS, but add it here +# explicitly, because it's native wayland-scanner we're looking for +# libxkbcommon isn't mandatory make it easier to remove by .bbappend +# (e.g. for building qtwayland with danny which doesn't have libxkbcommon in oe-core). +XKB_DEPENDS = "libxkbcommon xproto" +DEPENDS += "qtbase qtdeclarative wayland wayland-native qtwayland-native ${XKB_DEPENDS}" + +QT_WAYLAND_CONFIG ?= "wayland-compositor" +QT_WAYLAND_DEFINES ?= "" +QT_WAYLAND_BUILD_PARTS ?= "examples" + +EXTRA_QMAKEVARS_PRE += "CONFIG+=${QT_WAYLAND_CONFIG}" +EXTRA_QMAKEVARS_PRE += "DEFINES+=${QT_WAYLAND_DEFINES}" +EXTRA_QMAKEVARS_PRE += "QT_BUILD_PARTS+=${QT_WAYLAND_BUILD_PARTS}" + +FILES_${PN}-plugins += " \ + ${OE_QMAKE_PATH_PLUGINS}/*/*/*${SOLIBSDEV} \ +" + +FILES_${PN}-plugins-dbg += " \ + ${OE_QMAKE_PATH_PLUGINS}/*/*/.debug/* \ +" diff --git a/meta-qt5/recipes-qt/qt5/qtwayland/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch b/meta-qt5/recipes-qt/qt5/qtwayland/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch new file mode 100644 index 0000000000..1fac95b7fe --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtwayland/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch @@ -0,0 +1,32 @@ +From 761367755efa529c41ba414521eaed0b10873d99 Mon Sep 17 00:00:00 2001 +From: Simon Busch +Date: Fri, 19 Jul 2013 13:35:14 +0000 +Subject: [PATCH] Install the qtwaylandscanner tool to the native side + +Upstream-Status: Inappropiate [configuration] + +Signed-off-by: Simon Busch +--- + src/qtwaylandscanner/qtwaylandscanner.pro | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/qtwaylandscanner/qtwaylandscanner.pro b/src/qtwaylandscanner/qtwaylandscanner.pro +index ac2d07b..53b93f9 100644 +--- a/src/qtwaylandscanner/qtwaylandscanner.pro ++++ b/src/qtwaylandscanner/qtwaylandscanner.pro +@@ -1,6 +1,10 @@ + option(host_build) + +-SOURCES += qtwaylandscanner.cpp ++TARGET = qtwaylandscanner$$qtPlatformTargetSuffix() ++CONFIG += console warn_off ++QT = core + +-load(qt_tool) ++SOURCES += qtwaylandscanner.cpp + ++target.path = $$[QT_HOST_BINS] ++INSTALLS += target +-- +1.8.1.2 + diff --git a/meta-qt5/recipes-qt/qt5/qtwayland/0001-examples.pro-include-server-buffer-only-when-buildin.patch b/meta-qt5/recipes-qt/qt5/qtwayland/0001-examples.pro-include-server-buffer-only-when-buildin.patch new file mode 100644 index 0000000000..998f8b6786 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtwayland/0001-examples.pro-include-server-buffer-only-when-buildin.patch @@ -0,0 +1,31 @@ +From 201b36614907584a0d446975bddbb11a495540ed Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sat, 22 Feb 2014 17:47:44 +0100 +Subject: [PATCH] examples.pro: include server-buffer only when building with + opengles2 + +* it's using glBindBuffer in + server-buffer/client/serverbufferrenderer.cpp + +Signed-off-by: Martin Jansa +Change-Id: I8412dfd4ebb95c147328ac6e4dfff14a0cff4e78 +--- + examples/examples.pro | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/examples/examples.pro b/examples/examples.pro +index 2d4cd1b..fb2497e 100644 +--- a/examples/examples.pro ++++ b/examples/examples.pro +@@ -13,5 +13,7 @@ contains(CONFIG, wayland-compositor) { + SUBDIRS += qml-compositor + } + +- SUBDIRS += server-buffer ++ contains(QT_CONFIG, opengles2) { ++ SUBDIRS += server-buffer ++ } + } +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtwayland/0001-xcomposite-glx-Fix-build-on-Qt-5.2.1.patch b/meta-qt5/recipes-qt/qt5/qtwayland/0001-xcomposite-glx-Fix-build-on-Qt-5.2.1.patch new file mode 100644 index 0000000000..2266f4cb07 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtwayland/0001-xcomposite-glx-Fix-build-on-Qt-5.2.1.patch @@ -0,0 +1,91 @@ +From c5c23a37b230b426ed1eeea66544af438f48d05d Mon Sep 17 00:00:00 2001 +From: Taeyeon Mori +Date: Sun, 9 Feb 2014 23:43:06 +0100 +Subject: [PATCH] xcomposite-glx: Fix build on Qt 5.2.1 + +* it was made private in + commit b6713ec4262c05f7d103bc3b75ab81aedc690853 + Author: Jorgen Lind + Date: Wed Dec 18 07:59:53 2013 +0100 + + Make classes in client private + + and qwayland-xcomposite-glx wasn't adapted to it + +* found in + http;//oro.sodimm.me/~hinata/devel/.../0001-Fix-build-on-Qt-5.2.1.patch.htm + but because it was already gone, here is the cache: + http://webcache.googleusercontent.com/search?q=cache:5L0rSgqrKMoJ:oro.sodimm.me/~hinata/devel/qt5-wayland-git/0001-Fix-build-on-Qt-5.2.1.patch.htm&hl=en&gl=cz&strip=1 + +Change-Id: I8eed3645ccacc43e2c9febba2bc6544c7068207a +Signed-off-by: Martin Jansa +--- + .../compositor/xcomposite-glx/xcompositeglxintegration.cpp | 2 +- + src/plugins/platforms/qwayland-xcomposite-glx/main.cpp | 2 +- + .../qwaylandxcompositeglxplatformintegration.h | 14 ++++++++------ + 3 files changed, 10 insertions(+), 8 deletions(-) + +diff --git a/src/hardwareintegration/compositor/xcomposite-glx/xcompositeglxintegration.cpp b/src/hardwareintegration/compositor/xcomposite-glx/xcompositeglxintegration.cpp +index dce1fdc..8403c78 100644 +--- a/src/hardwareintegration/compositor/xcomposite-glx/xcompositeglxintegration.cpp ++++ b/src/hardwareintegration/compositor/xcomposite-glx/xcompositeglxintegration.cpp +@@ -112,7 +112,7 @@ void XCompositeGLXClientBufferIntegration::initializeHardware(QtWayland::Display + delete glContext; + } + +-void XCompositeGLXClientBufferIntegration::updateTextureFromBuffer(struct ::wl_resource *buffer) ++void XCompositeGLXClientBufferIntegration::bindTextureToBuffer(struct ::wl_resource *buffer) + { + XCompositeBuffer *compositorBuffer = XCompositeBuffer::fromResource(buffer); + Pixmap pixmap = XCompositeNameWindowPixmap(mDisplay, compositorBuffer->window()); +diff --git a/src/plugins/platforms/qwayland-xcomposite-glx/main.cpp b/src/plugins/platforms/qwayland-xcomposite-glx/main.cpp +index 17b20f9..c9450a5 100644 +--- a/src/plugins/platforms/qwayland-xcomposite-glx/main.cpp ++++ b/src/plugins/platforms/qwayland-xcomposite-glx/main.cpp +@@ -40,7 +40,7 @@ + ****************************************************************************/ + + #include +-#include "qwaylandintegration.h" ++#include "qwaylandxcompositeglxplatformintegration.h" + + QT_BEGIN_NAMESPACE + +diff --git a/src/plugins/platforms/qwayland-xcomposite-glx/qwaylandxcompositeglxplatformintegration.h b/src/plugins/platforms/qwayland-xcomposite-glx/qwaylandxcompositeglxplatformintegration.h +index fe8c5b7..fb63fea 100644 +--- a/src/plugins/platforms/qwayland-xcomposite-glx/qwaylandxcompositeglxplatformintegration.h ++++ b/src/plugins/platforms/qwayland-xcomposite-glx/qwaylandxcompositeglxplatformintegration.h +@@ -42,7 +42,7 @@ + #ifndef QWAYLANDXCOMPOSITEGLXPLATFORMINTEGRATION_H + #define QWAYLANDXCOMPOSITEGLXPLATFORMINTEGRATION_H + +-#include ++#include + + #include "qwaylandxcompositeglxintegration.h" + +@@ -51,14 +51,16 @@ class QWaylandXCompositeGlxPlatformIntegration : public QWaylandIntegration + public: + QWaylandXCompositeGlxPlatformIntegration() + : QWaylandIntegration() +- , m_gl_integration(new QWaylandXCompositeGLXIntegration(display())) +- { } ++ , m_client_buffer_integration(new QWaylandXCompositeGLXIntegration()) ++ { ++ m_client_buffer_integration->initialize(display()); ++ } + +- QWaylandGLIntegration *glIntegration() const Q_DECL_OVERRIDE +- { return m_gl_integration; } ++ QWaylandClientBufferIntegration *clientBufferIntegration() const Q_DECL_OVERRIDE ++ { return m_client_buffer_integration; } + + private: +- QWaylandGLIntegration *m_gl_integration; ++ QWaylandClientBufferIntegration *m_client_buffer_integration; + }; + + #endif +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtwayland_git.bb b/meta-qt5/recipes-qt/qt5/qtwayland_git.bb new file mode 100644 index 0000000000..789a882c17 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtwayland_git.bb @@ -0,0 +1,12 @@ +require qt5-git.inc +require ${PN}.inc + +# qtwayland wasn't released yet, last tag before this SRCREV is 5.0.0-beta1 +# qt5-git PV is only to indicate that this recipe is compatible with qt5 5.2.1 + +SRCREV = "573d0ee5ba86d99095f217ea9e19172bfc5e75fd" + +SRC_URI += " \ + file://0001-xcomposite-glx-Fix-build-on-Qt-5.2.1.patch \ + file://0001-examples.pro-include-server-buffer-only-when-buildin.patch \ +" diff --git a/meta-qt5/recipes-qt/qt5/qtwebkit-examples.inc b/meta-qt5/recipes-qt/qt5/qtwebkit-examples.inc new file mode 100644 index 0000000000..84f16a4e51 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtwebkit-examples.inc @@ -0,0 +1,13 @@ +require qt5.inc + +LICENSE = "BSD & LGPLv2+" +LIC_FILES_CHKSUM = "file://examples/webkitwidgets/scroller/wheel/main.cpp;endline=112;md5=6f92d041824c63426993c8ce3ae0eb77 \ + file://examples/webkitwidgets/imageanalyzer/imageanalyzer.cpp;endline=223;md5=13ffb472fefe4bdf6464954a22251f35" + +SRC_URI += " \ + file://0001-qtwebkit-examples-enable-building-examples-by-defaul.patch \ +" + +DEPENDS += "qtwebkit" +RDEPENDS_${PN}-examples += "qtwebkit-qmlplugins" +RDEPENDS_${PN}-examples += "${@base_contains('PACKAGECONFIG_OPENSSL', 'openssl', 'ca-certificates', '', d)}" diff --git a/meta-qt5/recipes-qt/qt5/qtwebkit-examples/0001-qtwebkit-examples-enable-building-examples-by-defaul.patch b/meta-qt5/recipes-qt/qt5/qtwebkit-examples/0001-qtwebkit-examples-enable-building-examples-by-defaul.patch new file mode 100644 index 0000000000..34d9622e90 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtwebkit-examples/0001-qtwebkit-examples-enable-building-examples-by-defaul.patch @@ -0,0 +1,29 @@ +From 50ab1eaf41445459422ef1fd4070ee158ea55d1c Mon Sep 17 00:00:00 2001 +From: Denys Dmytriyenko +Date: Tue, 8 Oct 2013 00:18:10 -0400 +Subject: [PATCH] qtwebkit-examples: enable building examples by default + +Examples are provided in sources, but the build for them is not enabled by +default. Since example binaries are packaged separately to ${PN}-examples, +having them built by default makes more sense. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Denys Dmytriyenko +--- + qtwebkit-examples.pro | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/qtwebkit-examples.pro b/qtwebkit-examples.pro +index 3fcecf1..2da8a36 100644 +--- a/qtwebkit-examples.pro ++++ b/qtwebkit-examples.pro +@@ -2,4 +2,4 @@ requires(qtHaveModule(webkit)) + + load(qt_parts) + +-SUBDIRS += doc ++SUBDIRS += doc examples +-- +1.8.3.2 + diff --git a/meta-qt5/recipes-qt/qt5/qtwebkit-examples_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtwebkit-examples_5.2.1.bb new file mode 100644 index 0000000000..c16f91cdd4 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtwebkit-examples_5.2.1.bb @@ -0,0 +1,5 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "ddad7d00ebd201a750242bd67b20ecf3" +SRC_URI[sha256sum] = "d5ecff99b4d35bc5f184503cabc394a554be48c368aba140f95019501645a7f5" diff --git a/meta-qt5/recipes-qt/qt5/qtwebkit-examples_git.bb b/meta-qt5/recipes-qt/qt5/qtwebkit-examples_git.bb new file mode 100644 index 0000000000..1f5df71894 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtwebkit-examples_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 1 commits +SRCREV = "cb8ed9694b850a429a93490beaa6462d9f3b8ea6" diff --git a/meta-qt5/recipes-qt/qt5/qtwebkit.inc b/meta-qt5/recipes-qt/qt5/qtwebkit.inc new file mode 100644 index 0000000000..90bd981571 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtwebkit.inc @@ -0,0 +1,45 @@ +require qt5.inc + +LICENSE = "BSD & LGPLv2+" +LIC_FILES_CHKSUM = "file://Source/WebCore/rendering/RenderApplet.h;endline=22;md5=fb9694013ad71b78f8913af7a5959680 \ + file://Source/WebKit/gtk/webkit/webkit.h;endline=21;md5=b4fbe9f4a944f1d071dba1d2c76b3351 \ + file://Source/JavaScriptCore/parser/Parser.h;endline=21;md5=bd69f72183a7af673863f057576e21ee" + +DEPENDS += "qtbase qtdeclarative icu ruby-native sqlite3 glib-2.0 libxslt" + +PACKAGECONFIG ??= "gstreamer qtlocation qtsensors" +PACKAGECONFIG[gstreamer] = ",,gstreamer1.0 gstreamer1.0-plugins-base" +PACKAGECONFIG[gstreamer010] = ",,gstreamer gst-plugins-base" +PACKAGECONFIG[qtlocation] = ",,qtlocation" +PACKAGECONFIG[qtsensors] = ",,qtsensors" + +do_configure_prepend() { + # disable gstreamer-1.0 test if it isn't enabled by PACKAGECONFIG + sed -e 's/\s\(packagesExist(".*\.*")\)/ OE_GSTREAMER_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf + # disable gstreamer-0.10 test if it isn't enabled by PACKAGECONFIG + sed -e 's/\s\(packagesExist(".*\.*")\)/ OE_GSTREAMER010_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf + # disable qtlocation test if it isn't enabled by PACKAGECONFIG + sed -e 's/\s\(qtHaveModule(positioning)\)/ OE_QTLOCATION_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf + # disable qtsensors test if it isn't enabled by PACKAGECONFIG + sed -e 's/\s\(qtHaveModule(sensors)\)/ OE_QTSENSORS_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf +} + +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'gstreamer', 'CONFIG+=OE_GSTREAMER_ENABLED', '', d)}" +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'gstreamer010', 'CONFIG+=OE_GSTREAMER010_ENABLED', '', d)}" +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'qtlocation', 'CONFIG+=OE_QTLOCATION_ENABLED', '', d)}" +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'qtsensors', 'CONFIG+=OE_QTSENSORS_ENABLED', '', d)}" + +# qtwebkit gets terribly big when linking with all debug info, disable by default +QTWEBKIT_DEBUG = "QMAKE_CFLAGS+=-g0 QMAKE_CXXFLAGS+=-g0" +EXTRA_QMAKEVARS_PRE += "${QTWEBKIT_DEBUG}" + +# remove default ${PN}-examples-dbg ${PN}-examples set in qt5.inc, because it conflicts with ${PN} from separate webkit-examples recipe +PACKAGES = "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN} ${PN}-qmlplugins-dbg ${PN}-tools-dbg ${PN}-plugins-dbg ${PN}-qmlplugins ${PN}-tools ${PN}-plugins ${PN}-mkspecs " + +SRC_URI += "file://0001-qtwebkit-fix-QA-issue-bad-RPATH.patch" + +# make sure rb files are used from sysroot, not from host +# ruby-1.9.3-always-use-i386.patch is doing target_cpu=`echo $target_cpu | sed s/i.86/i386/` +# we need to replace it too (a bit longer version without importing re) +RUBY_SYS = "${@ '${BUILD_SYS}'.replace('i486', 'i386').replace('i586', 'i386').replace('i686', 'i386') }" +export RUBYLIB="${STAGING_DATADIR_NATIVE}/rubygems:${STAGING_LIBDIR_NATIVE}/ruby:${STAGING_LIBDIR_NATIVE}/ruby/${RUBY_SYS}" diff --git a/meta-qt5/recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch b/meta-qt5/recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch new file mode 100644 index 0000000000..07e4436ede --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch @@ -0,0 +1,31 @@ +From 89c132829d1a93d662f617c2a7be75c5e6eaa33a Mon Sep 17 00:00:00 2001 +From: Trevor Woerner +Date: Fri, 7 Feb 2014 04:07:17 +0100 +Subject: [PATCH] qtwebkit: fix QA issue (bad RPATH) + +Building qtwebkit causes a QA issue such that QtWebPluginProcess and +QtWebProcess contain bad RPATHs which point into the build location. This fix +adds a patch to not include the rpath.prf which causes this problem. + +Signed-off-by: Trevor Woerner +Signed-off-by: Martin Jansa +--- + Tools/qmake/mkspecs/features/unix/default_post.prf | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/Tools/qmake/mkspecs/features/unix/default_post.prf b/Tools/qmake/mkspecs/features/unix/default_post.prf +index 79b7208..6dff72b 100644 +--- a/Tools/qmake/mkspecs/features/unix/default_post.prf ++++ b/Tools/qmake/mkspecs/features/unix/default_post.prf +@@ -58,8 +58,6 @@ linux-*g++* { + QMAKE_OBJECTIVE_CFLAGS += -Wno-c++11-extensions -Wno-c++0x-extensions + } + +-contains(TEMPLATE, app): CONFIG += rpath +- + CONFIG(debug, debug|release)|force_debug_info|separate_debug_info { + # Make ld not cache the symbol tables of input files in memory to avoid memory exhaustion during the linking phase. + !force_static_libs_as_shared:config_gnuld: QMAKE_LFLAGS += -Wl,--no-keep-memory +-- +1.8.5.3 + diff --git a/meta-qt5/recipes-qt/qt5/qtwebkit_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtwebkit_5.2.1.bb new file mode 100644 index 0000000000..ef166f2228 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtwebkit_5.2.1.bb @@ -0,0 +1,5 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "a20d99a1c2afbd6a7c6f54e615f1bd63" +SRC_URI[sha256sum] = "ac089723489ee9146020bd8fc715358249d8cea7f2a2e92a692e2a5595a46b5c" diff --git a/meta-qt5/recipes-qt/qt5/qtwebkit_git.bb b/meta-qt5/recipes-qt/qt5/qtwebkit_git.bb new file mode 100644 index 0000000000..047b37fd82 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtwebkit_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 18 commits +SRCREV = "a1b801fc98ccda988df41e08dc70fdbd50ecb513" diff --git a/meta-qt5/recipes-qt/qt5/qtx11extras.inc b/meta-qt5/recipes-qt/qt5/qtx11extras.inc new file mode 100644 index 0000000000..bbb05a6557 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtx11extras.inc @@ -0,0 +1,3 @@ +require qt5.inc + +DEPENDS += "qtbase" diff --git a/meta-qt5/recipes-qt/qt5/qtx11extras_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtx11extras_5.2.1.bb new file mode 100644 index 0000000000..b619a4d588 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtx11extras_5.2.1.bb @@ -0,0 +1,5 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "ad94a2f14afc3f2dfe9743027860c28a" +SRC_URI[sha256sum] = "4f62647772d37d27921a77caf6e02c51fb207c5a1d604b0b3047a92d0163d4b9" diff --git a/meta-qt5/recipes-qt/qt5/qtx11extras_git.bb b/meta-qt5/recipes-qt/qt5/qtx11extras_git.bb new file mode 100644 index 0000000000..d0a2a8cb07 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtx11extras_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 1 commits +SRCREV = "dd7eec92e7a5f4383783cc161f638867572dc208" diff --git a/meta-qt5/recipes-qt/qt5/qtxmlpatterns.inc b/meta-qt5/recipes-qt/qt5/qtxmlpatterns.inc new file mode 100644 index 0000000000..bbb05a6557 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtxmlpatterns.inc @@ -0,0 +1,3 @@ +require qt5.inc + +DEPENDS += "qtbase" diff --git a/meta-qt5/recipes-qt/qt5/qtxmlpatterns_5.2.1.bb b/meta-qt5/recipes-qt/qt5/qtxmlpatterns_5.2.1.bb new file mode 100644 index 0000000000..ab5570c092 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtxmlpatterns_5.2.1.bb @@ -0,0 +1,5 @@ +require qt5-${PV}.inc +require ${PN}.inc + +SRC_URI[md5sum] = "d01c6b837db4a6dee69a3f0352b37e18" +SRC_URI[sha256sum] = "bed7b5edd8efc3d5b45c60b5ed949aec6a4daadb5f3bd9029467e90c4ef566d2" diff --git a/meta-qt5/recipes-qt/qt5/qtxmlpatterns_git.bb b/meta-qt5/recipes-qt/qt5/qtxmlpatterns_git.bb new file mode 100644 index 0000000000..28e45a4893 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtxmlpatterns_git.bb @@ -0,0 +1,6 @@ +require qt5-git.inc +require ${PN}.inc + +QT_MODULE_BRANCH = "release" +# v5.2.1 + 4 commits +SRCREV = "eaf0a92dcb6fb12f3d65aa4fc806ccbfaa7f7db0" diff --git a/meta-qt5/recipes-qt/tufao/files/fix-204-no-content.patch b/meta-qt5/recipes-qt/tufao/files/fix-204-no-content.patch new file mode 100644 index 0000000000..abe2139318 --- /dev/null +++ b/meta-qt5/recipes-qt/tufao/files/fix-204-no-content.patch @@ -0,0 +1,119 @@ +From ea73dadcce8dc958aebde7d4bc0d438d71c46aa2 Mon Sep 17 00:00:00 2001 +From: Holger Hans Peter Freyther +Date: Mon, 31 Mar 2014 21:42:29 +0200 +Subject: [PATCH] response: No message-body should be sent on a 204 No Content + +According to the RFC2616 no message-body should be sent when +the response code 204 is used. When using keep-alive the .NET +stack will break on response parsing after the next request. + +Add some hacks to not generate chunked-encoding in the answer +and provide a content-length. The code could use some more +re-use and the question is what should happen when ::write() +or ::end() with data is used on a 204.. +--- + src/httpserverresponse.cpp | 19 ++++++++++++++++--- + src/priv/httpserverresponse.h | 1 + + 2 files changed, 17 insertions(+), 3 deletions(-) + +diff --git a/src/httpserverresponse.cpp b/src/httpserverresponse.cpp +index f6e6617..2f87180 100644 +--- a/src/httpserverresponse.cpp ++++ b/src/httpserverresponse.cpp +@@ -139,6 +139,7 @@ bool HttpServerResponse::writeHead(int statusCode, const QByteArray &reasonPhras + priv->device.write(reasonPhrase); + priv->device.write(CRLF); + priv->formattingState = Priv::HEADERS; ++ priv->responseStatus = statusCode; + return true; + } + +@@ -182,6 +183,7 @@ bool HttpServerResponse::writeHead(HttpResponseStatus statusCode, + priv->device.write(CRLF); + } + priv->formattingState = Priv::HEADERS; ++ priv->responseStatus = int(statusCode); + return true; + } + +@@ -203,6 +205,7 @@ bool HttpServerResponse::writeHead(HttpResponseStatus statusCode) + priv->device.write(reasonPhrase(statusCode)); + priv->device.write(CRLF); + priv->formattingState = Priv::HEADERS; ++ priv->responseStatus = int(statusCode); + return true; + } + +@@ -211,6 +214,10 @@ bool HttpServerResponse::write(const QByteArray &chunk) + if (!chunk.size()) + return false; + ++ /* Bad?! At least write the headers? */ ++ if (priv->responseStatus == int(HttpResponseStatus::NO_CONTENT) && chunk.size()) ++ return false; ++ + if (priv->options.testFlag(HttpServerResponse::HTTP_1_0)) { + switch (priv->formattingState) { + case Priv::STATUS_LINE: +@@ -241,6 +248,7 @@ bool HttpServerResponse::write(const QByteArray &chunk) + QByteArray::fromRawData(value, + sizeof(value) - 1)); + } ++ + priv->headers.insert("Transfer-Encoding", "chunked"); + + for (Headers::iterator i = priv->headers.begin() +@@ -346,7 +354,9 @@ bool HttpServerResponse::end(const QByteArray &chunk) + - 1)); + } + } +- { ++ if (priv->responseStatus == int(HttpResponseStatus::NO_CONTENT)) ++ priv->headers.insert("Content-Length", "0"); ++ else { + static const char key[] = "Transfer-Encoding", + value[] = "chunked"; + priv->headers.insert(QByteArray::fromRawData(key, +@@ -376,6 +386,7 @@ bool HttpServerResponse::end(const QByteArray &chunk) + } + case Priv::MESSAGE_BODY: + { ++ /* Check that no chunk has been specified for 204... */ + if (chunk.size()) { + if (priv->options.testFlag(HttpServerResponse::HTTP_1_1)) { + priv->device.write(QByteArray::number(chunk.size(), 16)); +@@ -392,7 +403,8 @@ bool HttpServerResponse::end(const QByteArray &chunk) + priv->http10Buffer.clear(); + } + if (priv->options.testFlag(HttpServerResponse::HTTP_1_1)) { +- priv->device.write(LAST_CHUNK); ++ if (priv->responseStatus != int(HttpResponseStatus::NO_CONTENT)) ++ priv->device.write(LAST_CHUNK); + priv->formattingState = Priv::TRAILERS; + } else { + priv->device.close(); +@@ -403,7 +415,8 @@ bool HttpServerResponse::end(const QByteArray &chunk) + } + case Priv::TRAILERS: + { +- priv->device.write(CRLF); ++ if (priv->responseStatus != int(HttpResponseStatus::NO_CONTENT)) ++ priv->device.write(CRLF); + if (!priv->options.testFlag(HttpServerResponse::KEEP_ALIVE)) + priv->device.close(); + +diff --git a/src/priv/httpserverresponse.h b/src/priv/httpserverresponse.h +index 2562b34..74598e6 100644 +--- a/src/priv/httpserverresponse.h ++++ b/src/priv/httpserverresponse.h +@@ -46,6 +46,7 @@ struct HttpServerResponse::Priv + QIODevice &device; + HttpResponseFormattingState formattingState; + Tufao::HttpServerResponse::Options options; ++ int responseStatus; + Headers headers; + + QByteArray http10Buffer; +-- +1.9.0 + diff --git a/meta-qt5/recipes-qt/tufao/files/hardcode_paths.patch b/meta-qt5/recipes-qt/tufao/files/hardcode_paths.patch new file mode 100644 index 0000000000..cbfe4baa87 --- /dev/null +++ b/meta-qt5/recipes-qt/tufao/files/hardcode_paths.patch @@ -0,0 +1,21 @@ +diff --git a/pkg/CMakeLists.txt b/pkg/CMakeLists.txt +index 25891a5..dffce68 100644 +--- a/pkg/CMakeLists.txt ++++ b/pkg/CMakeLists.txt +@@ -9,7 +9,7 @@ configure_file(FindTufao.cmake.in FindTufao${TUFAO_VERSION_MAJOR}.cmake @ONLY) + + # Install info + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/tufao${TUFAO_VERSION_MAJOR}.prf" +- DESTINATION "${QT_MKSPECS_DIR}/features" ++ DESTINATION "/usr/lib/qt5/mkspecs/features" + COMPONENT development + ) + if(PKG_CONFIG_FOUND) +@@ -19,6 +19,6 @@ if(PKG_CONFIG_FOUND) + ) + endif(PKG_CONFIG_FOUND) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/FindTufao${TUFAO_VERSION_MAJOR}.cmake" +- DESTINATION "${CMAKE_ROOT}/Modules" ++ DESTINATION "/usr/share/cmake-2.8/Modules" + COMPONENT development + ) diff --git a/meta-qt5/recipes-qt/tufao/files/qt_sysroot.patch b/meta-qt5/recipes-qt/tufao/files/qt_sysroot.patch new file mode 100644 index 0000000000..71ff92ed56 --- /dev/null +++ b/meta-qt5/recipes-qt/tufao/files/qt_sysroot.patch @@ -0,0 +1,13 @@ +diff --git a/pkg/tufao.prf.in b/pkg/tufao.prf.in +index 8fa53d9..2560df3 100644 +--- a/pkg/tufao.prf.in ++++ b/pkg/tufao.prf.in +@@ -1,5 +1,5 @@ + QT += network + + DEFINES += TUFAO_VERSION_MAJOR=@TUFAO_VERSION_MAJOR@ +-INCLUDEPATH += "@CMAKE_INSTALL_PREFIX@/@includedir@" +-LIBS += -L"@CMAKE_INSTALL_PREFIX@/@libdir@" -l@TUFAO_LIBRARY@ ++INCLUDEPATH += "$$[QT_SYSROOT]@CMAKE_INSTALL_PREFIX@/@includedir@" ++LIBS += -L"$$[QT_SYSROOT]@CMAKE_INSTALL_PREFIX@/@libdir@" -l@TUFAO_LIBRARY@ + diff --git a/meta-qt5/recipes-qt/tufao/tufao1_1.0.2.bb b/meta-qt5/recipes-qt/tufao/tufao1_1.0.2.bb new file mode 100644 index 0000000000..b62f7db9f6 --- /dev/null +++ b/meta-qt5/recipes-qt/tufao/tufao1_1.0.2.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "Tufao webserver" +HOMEPAGE = "http://vinipsmaker.github.io/tufao/" + +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c" + +inherit cmake_qt5 + +DEPENDS += "qtbase" + +SRC_URI = "git://github.com/vinipsmaker/tufao;branch=master \ + file://hardcode_paths.patch \ + file://qt_sysroot.patch \ + file://fix-204-no-content.patch" +S= "${WORKDIR}/git" +SRCREV = "0d37027f8e7a64bc58196b963dffc72e13420c7a" + +FILES_${PN}-dev += "${datadir}/cmake-* ${libdir}/qt5/mkspecs/features/*"