diff --git a/coin/test-configs.inc b/coin/test-configs.inc index 838212d..a8d5553 100644 --- a/coin/test-configs.inc +++ b/coin/test-configs.inc @@ -39,6 +39,11 @@ INSANE_SKIP:append:pn-nativesdk-clang = " buildpaths" PREFERRED_ARM_INSTRUCTION_SET ?= "thumb" ARM_INSTRUCTION_SET = "${PREFERRED_ARM_INSTRUCTION_SET}" +# build squish +USE_SQUISH = "1" +SQUISH_MIRROR = "https://ci-files01-hki.ci.qt.io/input/squish/releasepackages" +SQUISH_LICENSE_KEY = "qt-srv-19.intra.qt.io:49345" + # enable webengine with commercial/proprietary features DISTRO_FEATURES:append = " webengine" PACKAGECONFIG:append:pn-qtwebengine = " proprietary-codecs" diff --git a/recipes-qt/packagegroups/packagegroup-qt6-commercial-modules.bb b/recipes-qt/packagegroups/packagegroup-qt6-commercial-modules.bb index 2663207..d6245f5 100644 --- a/recipes-qt/packagegroups/packagegroup-qt6-commercial-modules.bb +++ b/recipes-qt/packagegroups/packagegroup-qt6-commercial-modules.bb @@ -12,4 +12,5 @@ RDEPENDS:${PN} += " \ qmlcompilerplus \ qtinsighttracker \ qtvncserver \ + ${@'squish' if bb.utils.to_boolean(d.getVar('USE_SQUISH')) else ''} \ " diff --git a/recipes-qt/squish/squish_9.1.1.bb b/recipes-qt/squish/squish_9.1.1.bb new file mode 100644 index 0000000..69b2fba --- /dev/null +++ b/recipes-qt/squish/squish_9.1.1.bb @@ -0,0 +1,114 @@ +LICENSE = "The-Qt-Company-Commercial" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a25acc1c5f693af9921102a049958aa8" + +EXCLUDE_FROM_WORLD = "1" + +inherit qt6-qmake + +# location where Squish release packages can be downloaded +SQUISH_MIRROR ?= "" +SQUISH_LICENSE_KEY ?= "" + +python __anonymous() { + if not (d.getVar('SQUISH_MIRROR') and d.getVar('SQUISH_LICENSE_KEY')): + raise bb.parse.SkipRecipe("You need to define SQUISH_MIRROR and SQUISH_LICENSE_KEY in the config", d) +} + +SQUISH_INSTALLER = "squish-${PV}-qt610x-linux64.run" + +SRC_URI = "\ + ${SQUISH_MIRROR}/${PV}/${SQUISH_INSTALLER};name=squish \ + ${SQUISH_MIRROR}/${PV}/squish-${PV}-qt-embedded-src.tar.gz;name=qt-squish-embedded;subdir=${BP};striplevel=1 \ +" + +SRC_URI[squish.sha256sum] = "88c19cb54c6447caad0c133927fae005c9c8c425d2643266f3ac8d6204226b6b" +SRC_URI[qt-squish-embedded.sha256sum] = "897b184d1df549353995a284ffddf044ddd3c6f6a306546d61dc6a4db6fd5910" + +DEPENDS += "\ + qtbase \ + qt5compat \ +" + +PACKAGECONFIG ?= "\ + appman \ + qml \ + ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \ +" +PACKAGECONFIG[appman] = "--enable-qt-appman,--disable-qt-appman,qtapplicationmanager" +PACKAGECONFIG[qml] = ",,qtdeclarative qtdeclarative-native" +PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,qtwayland wayland wayland-native" + +lcl_maybe_fortify = "" +OE_QMAKE_PATH_HOST_LIBEXECS = "${STAGING_DIR_NATIVE}/${QT6_INSTALL_LIBEXECDIR}" + +do_install_squish[cleandirs] = "${WORKDIR}/squish" +do_install_squish[network] = "1" +do_install_squish() { + SQUISH_INSTALLER=${UNPACKDIR}/${SQUISH_INSTALLER} + if [ ! -e $SQUISH_INSTALLER ]; then + SQUISH_INSTALLER=${WORKDIR}/${SQUISH_INSTALLER} + fi + chmod +x $SQUISH_INSTALLER + mkdir -p ${WORKDIR}/tmp + TMPDIR=${WORKDIR}/tmp XDG_RUNTIME_DIR=${WORKDIR}/tmp $SQUISH_INSTALLER \ + -platform minimal unattended=1 targetdir=${WORKDIR}/squish ide=0 \ + licensekey=${SQUISH_LICENSE_KEY} +} + +do_configure() { + ${S}/configure \ + --disable-all \ + --enable-qmake-config \ + --enable-qt \ + --enable-server \ + --with-qmake=${STAGING_DIR_NATIVE}${QT6_INSTALL_BINDIR}/qmake \ + --with-squishidl=${WORKDIR}/squish/bin/squishidl \ + ${PACKAGECONFIG_CONFARGS} +} + +do_compile() { + ./build ${@oe.utils.parallel_make_argument(d, '-j%d')} +} + +do_install() { + DESTDIR=${D}/opt/squish + ./build install DESTDIR=${DESTDIR} + + install -d ${D}${QT6_INSTALL_PLUGINSDIR} + mv ${DESTDIR}/plugins/* ${D}${QT6_INSTALL_PLUGINSDIR} + rmdir ${DESTDIR}/plugins + + sed -i -e 's|${RECIPE_SYSROOT}||' ${D}/opt/squish/etc/paths.ini + + if [ -e ${D}/opt/squish/etc/squish-appman-hook.yaml ]; then + sed -i -e 's|PATH_TO_SQUISH|/opt/squish|' ${D}/opt/squish/etc/squish-appman-hook.yaml + fi + + install -d ${D}${sysconfdir}/profile.d + cat > ${D}${sysconfdir}/profile.d/squish.sh <