summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2019-04-22 11:18:11 +0000
committerMartin Jansa <Martin.Jansa@gmail.com>2019-04-22 11:35:12 +0000
commit600fefbde15eea52fbc438bbe5e9757f5e735baa (patch)
treeb715b16e171c7a8720551bd0088c3fdef254545c
parent81937713f774d7dea854b22987b3ef1ab1f1cdbe (diff)
downloadmeta-qt5-600fefbde15eea52fbc438bbe5e9757f5e735baa.tar.gz
qtwayland: improve manual header installation
* allow to disable this completely with QTWAYLAND_INSTALL_PRIVATE_HEADERS_MANUALLY e.g. in case you already have your own bbappend resolving this differently * use SHRT_VER variable and allow to change it in .bbappend e.g. in webOS we have different version with different format without "+git" and 5.11.3-2 ended in upstream_pv which caused do_install to fail because ${D}${includedir}/QtWaylandClient/5.11.3-2 doesn't exist, split the PV by + as well - to cover both schemes and allow users to set SHRT_VER to something else if they have even weirder PV * install the QtCompositor headers in the same way as QtWaylandClient we have custom compositor and with 5.11 it was failing to build because of missing headers, so I had this in .bbappend already (I thought it was only our issue, because we were using 5.4 based QtWayland with 5.11, but the same happends with 5.6 based one and probably newer as well (I don't know what qtwayland version Andreas was using when first sending the previous qtwayland patch). * with 5.4 QtWayland and 5.11, I've updated sync.profile with %inject_headers and @private_headers built even with this sync.profile change the syncqt.pl in do_install doesn't install these 5.4 specific profile headers and qtwayland-webos and luna-surfacemanager fail to build. This is the diff between: recipe-sysroot-native/usr/bin/syncqt.pl -version 4.5.2 -showonly with Qt 5.6 and 5.11 @@ -1,6 +1,5 @@ -<srcbase> = BUILD/work/qemux86-webos-linux/qtwayland/5.4.2-119-r0/git -<bldbase> = BUILD/work/qemux86-webos-linux/qtwayland/5.4.2-119-r0/git -<outbase> = BUILD/work/qemux86-webos-linux/qtwayland/5.4.2-119-r0/git +<srcbase> = BUILD/work/qemux86-webos-linux/qtwayland/5.4.2-119-r0/git +<outbase> = BUILD/work/qemux86-webos-linux/qtwayland/5.4.2-119-r0/git pmtrace_qtwaylandclient_provider.h [QtWaylandClient] qtwaylandclienttracer.h [QtWaylandClient] qwaylandabstractdecoration_p.h [QtWaylandClient] @@ -34,34 +33,6 @@ qwaylandwlshellsurface_p.h [QtWaylandClient] qwaylandxdgshell_p.h [QtWaylandClient] qwaylandxdgsurface_p.h [QtWaylandClient] -qwayland-hardware-integration.h [QtWaylandClient] -qwayland-output-extension.h [QtWaylandClient] -qwayland-qt-windowmanager.h [QtWaylandClient] -qwayland-qtkey-extension.h [QtWaylandClient] -qwayland-server-buffer-extension.h [QtWaylandClient] -qwayland-sub-surface-extension.h [QtWaylandClient] -qwayland-surface-extension.h [QtWaylandClient] -qwayland-text.h [QtWaylandClient] -qwayland-text-input-unstable-v2.h [QtWaylandClient] -qwayland-touch-extension.h [QtWaylandClient] -qwayland-wayland.h [QtWaylandClient] -qwayland-windowmanager.h [QtWaylandClient] -qwayland-xdg-shell-unstable-v6.h [QtWaylandClient] -qwayland-xdg-shell.h [QtWaylandClient] -wayland-hardware-integration-client-protocol.h [QtWaylandClient] -wayland-output-extension-client-protocol.h [QtWaylandClient] -wayland-qt-windowmanager-client-protocol.h [QtWaylandClient] -wayland-qtkey-extension-client-protocol.h [QtWaylandClient] -wayland-server-buffer-extension-client-protocol.h [QtWaylandClient] -wayland-sub-surface-extension-client-protocol.h [QtWaylandClient] -wayland-surface-extension-client-protocol.h [QtWaylandClient] -wayland-text-client-protocol.h [QtWaylandClient] -wayland-text-input-unstable-v2-client-protocol.h [QtWaylandClient] -wayland-touch-extension-client-protocol.h [QtWaylandClient] -wayland-wayland-client-protocol.h [QtWaylandClient] -wayland-windowmanager-client-protocol.h [QtWaylandClient] -wayland-xdg-shell-client-protocol.h [QtWaylandClient] -wayland-xdg-shell-unstable-v6-client-protocol.h [QtWaylandClient] qwaylandclientbufferintegration_p.h [QtWaylandClient] qwaylandclientbufferintegrationfactory_p.h [QtWaylandClient] qwaylandclientbufferintegrationplugin_p.h [QtWaylandClient] @@ -84,38 +55,6 @@ SYMBOL: QWaylandEglWindow qwaylandglcontext.h [QtWaylandClient] SYMBOL: QWaylandGLContext -qwayland-server-wayland.h [QtCompositor] -qwayland-server-hardware-integration.h [QtCompositor] -qwayland-server-input-method.h [QtCompositor] -qwayland-server-ivi-application.h [QtCompositor] -qwayland-server-output-extension.h [QtCompositor] -qwayland-server-qt-windowmanager.h [QtCompositor] -qwayland-server-qtkey-extension.h [QtCompositor] -qwayland-server-server-buffer-extension.h [QtCompositor] -qwayland-server-sub-surface-extension.h [QtCompositor] -qwayland-server-surface-extension.h [QtCompositor] -qwayland-server-text.h [QtCompositor] -qwayland-server-text-input-unstable-v2.h [QtCompositor] -qwayland-server-touch-extension.h [QtCompositor] -qwayland-server-windowmanager.h [QtCompositor] -qwayland-server-xdg-shell-unstable-v6.h [QtCompositor] -qwayland-server-xdg-shell.h [QtCompositor] -wayland-hardware-integration-server-protocol.h [QtCompositor] -wayland-input-method-server-protocol.h [QtCompositor] -wayland-ivi-application-server-protocol.h [QtCompositor] -wayland-output-extension-server-protocol.h [QtCompositor] -wayland-qt-windowmanager-server-protocol.h [QtCompositor] -wayland-qtkey-extension-server-protocol.h [QtCompositor] -wayland-server-buffer-extension-server-protocol.h [QtCompositor] -wayland-sub-surface-extension-server-protocol.h [QtCompositor] -wayland-surface-extension-server-protocol.h [QtCompositor] -wayland-text-input-unstable-v2-server-protocol.h [QtCompositor] -wayland-text-server-protocol.h [QtCompositor] -wayland-touch-extension-server-protocol.h [QtCompositor] -wayland-wayland-server-protocol.h [QtCompositor] -wayland-windowmanager-server-protocol.h [QtCompositor] -wayland-xdg-shell-server-protocol.h [QtCompositor] -wayland-xdg-shell-unstable-v6-server-protocol.h [QtCompositor] pmtrace_qtwayland_provider.h [QtCompositor] qtwaylandtracer.h [QtCompositor] qwaylandbufferref.h [QtCompositor] Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-rw-r--r--recipes-qt/qt5/qtwayland_git.bb18
1 files changed, 15 insertions, 3 deletions
diff --git a/recipes-qt/qt5/qtwayland_git.bb b/recipes-qt/qt5/qtwayland_git.bb
index 74f04eb8..aea7ea66 100644
--- a/recipes-qt/qt5/qtwayland_git.bb
+++ b/recipes-qt/qt5/qtwayland_git.bb
@@ -48,12 +48,24 @@ LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -f
48# Since version 5.11.2 some private headers are not installed. Work around 48# Since version 5.11.2 some private headers are not installed. Work around
49# until fixed upstream. See https://bugreports.qt.io/browse/QTBUG-71340 for 49# until fixed upstream. See https://bugreports.qt.io/browse/QTBUG-71340 for
50# further details 50# further details
51QTWAYLAND_INSTALL_PRIVATE_HEADERS_MANUALLY ?= "1"
52# First 6 characters before first + (e.g. 5.11.3-+git) or - (e.g. 5.11.3-2)
53SHRT_VER ?= "${@d.getVar('PV').split('+')[0].split('-')[0]}"
51do_install_append() { 54do_install_append() {
52 if [ -d "${B}/src/client" ]; then 55 if [ -d "${B}/src/client" -a "${QTWAYLAND_INSTALL_PRIVATE_HEADERS_MANUALLY}" = "1" ]; then
53 upstream_pv=`echo "${PV}" | sed 's:+git.*::g'`
54 for header in `find ${B}/src/client -name '*wayland-*.h'`; do 56 for header in `find ${B}/src/client -name '*wayland-*.h'`; do
55 header_base=`basename $header` 57 header_base=`basename $header`
56 dest="${D}${includedir}/QtWaylandClient/$upstream_pv/QtWaylandClient/private/$header_base" 58 dest="${D}${includedir}/QtWaylandClient/${SHRT_VER}/QtWaylandClient/private/$header_base"
59 if [ ! -e "$dest" ]; then
60 echo "Manual install: $header_base to $dest"
61 install -m 644 "$header" "$dest"
62 fi
63 done
64 fi
65 if [ -d "${B}/src/compositor" -a "${QTWAYLAND_INSTALL_PRIVATE_HEADERS_MANUALLY}" = "1" ]; then
66 for header in `find ${B}/src/compositor -name '*wayland-*.h'`; do
67 header_base=`basename $header`
68 dest="${D}${includedir}/QtCompositor/${SHRT_VER}/QtCompositor/private/$header_base"
57 if [ ! -e "$dest" ]; then 69 if [ ! -e "$dest" ]; then
58 echo "Manual install: $header_base to $dest" 70 echo "Manual install: $header_base to $dest"
59 install -m 644 "$header" "$dest" 71 install -m 644 "$header" "$dest"