Build kwayland as external project

This will simplify packaged Qt 6 build
This commit is contained in:
Ilya Fedin 2021-12-11 20:58:29 +04:00 committed by John Preston
parent fedd21b0a6
commit a8f05a01ed
5 changed files with 12 additions and 67 deletions

3
.gitmodules vendored
View File

@ -94,3 +94,6 @@
[submodule "Telegram/ThirdParty/jemalloc"]
path = Telegram/ThirdParty/jemalloc
url = https://github.com/jemalloc/jemalloc
[submodule "Telegram/ThirdParty/kwayland"]
path = Telegram/ThirdParty/kwayland
url = https://github.com/KDE/kwayland.git

1
Telegram/ThirdParty/kwayland vendored Submodule

@ -0,0 +1 @@
Subproject commit 31e2e6cb59eb4b72392caa703909ef22cf06bcb7

View File

@ -24,7 +24,7 @@ RUN yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.n
RUN yum -y install https://packages.endpoint.com/rhel/7/os/x86_64/endpoint-repo-1.7-1.x86_64.rpm && yum clean all
RUN yum -y install centos-release-scl && yum clean all
RUN yum -y install git meson ninja-build autoconf automake libtool \
RUN yum -y install git meson ninja-build autoconf automake libtool patch \
fontconfig-devel freetype-devel libX11-devel at-spi2-core-devel alsa-lib-devel \
pulseaudio-libs-devel mesa-libGL-devel mesa-libEGL-devel gtk3-devel \
perl-XML-Parser pkgconfig bison yasm file which xorg-x11-util-macros \
@ -766,38 +766,6 @@ RUN [ -z "${QT6}" ] || DESTDIR="$LibrariesPath/qt-cache" cmake --install .
WORKDIR ..
RUN [ -z "${QT6}" ] || rm -rf qt_${QT6_VER}
FROM patches AS kwayland
ARG QT6
COPY --from=extra-cmake-modules ${LibrariesPath}/extra-cmake-modules-cache /
COPY --from=libffi ${LibrariesPath}/libffi-cache /
COPY --from=zlib ${LibrariesPath}/zlib-cache /
COPY --from=libproxy ${LibrariesPath}/libproxy-cache /
COPY --from=mozjpeg ${LibrariesPath}/mozjpeg-cache /
COPY --from=xcb ${LibrariesPath}/xcb-cache /
COPY --from=xcb-wm ${LibrariesPath}/xcb-wm-cache /
COPY --from=xcb-util ${LibrariesPath}/xcb-util-cache /
COPY --from=xcb-image ${LibrariesPath}/xcb-image-cache /
COPY --from=xcb-keysyms ${LibrariesPath}/xcb-keysyms-cache /
COPY --from=xcb-render-util ${LibrariesPath}/xcb-render-util-cache /
COPY --from=wayland ${LibrariesPath}/wayland-cache /
COPY --from=wayland-protocols ${LibrariesPath}/wayland-protocols-cache /
COPY --from=plasma-wayland-protocols ${LibrariesPath}/plasma-wayland-protocols-cache /
COPY --from=openssl ${LibrariesPath}/openssl-cache /
COPY --from=xkbcommon ${LibrariesPath}/xkbcommon-cache /
COPY --from=qt ${LibrariesPath}/qt-cache /
RUN git clone -b v5.87.0 --depth=1 $GIT/KDE/kwayland.git
WORKDIR kwayland
RUN [ -z "${QT6}" ] || git apply ../patches/kwayland-qt6.patch
RUN cmake -GNinja -B build . -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF
RUN cmake --build build --target KF5WaylandClient --parallel
RUN DESTDIR="$LibrariesPath/kwayland-cache" cmake --install build/src/client
WORKDIR ..
RUN rm -rf kwayland
FROM patches AS breakpad
RUN git clone https://chromium.googlesource.com/breakpad/breakpad.git
@ -880,6 +848,8 @@ COPY --from=libXrender ${LibrariesPath}/libXrender-cache /
COPY --from=libXdamage ${LibrariesPath}/libXdamage-cache /
COPY --from=libXcomposite ${LibrariesPath}/libXcomposite-cache /
COPY --from=wayland ${LibrariesPath}/wayland-cache /
COPY --from=wayland-protocols ${LibrariesPath}/wayland-protocols-cache /
COPY --from=plasma-wayland-protocols ${LibrariesPath}/plasma-wayland-protocols-cache /
COPY --from=libpciaccess ${LibrariesPath}/libpciaccess-cache /
COPY --from=drm ${LibrariesPath}/drm-cache /
COPY --from=libva ${LibrariesPath}/libva-cache /
@ -892,7 +862,6 @@ COPY --from=xkbcommon ${LibrariesPath}/xkbcommon-cache /
COPY --from=libsigcplusplus ${LibrariesPath}/libsigcplusplus-cache /
COPY --from=glibmm ${LibrariesPath}/glibmm-cache /
COPY --from=qt ${LibrariesPath}/qt-cache /
COPY --from=kwayland ${LibrariesPath}/kwayland-cache /
COPY --from=breakpad ${LibrariesPath}/breakpad breakpad
COPY --from=breakpad ${LibrariesPath}/breakpad-cache /
COPY --from=webrtc ${LibrariesPath}/tg_owt tg_owt

2
cmake

@ -1 +1 @@
Subproject commit c2b070275eecb546b9899495090d27ce55384917
Subproject commit 857a31aec6e18541939a82ad70e243b9eb04636b

View File

@ -100,10 +100,12 @@ parts:
- libopus-dev
- libpulse-dev
- libssl-dev
- libwayland-dev
- libxcb1-dev
- libxcb-keysyms1-dev
- libxcb-record0-dev
- libxcb-screensaver0-dev
- wayland-protocols
- zlib1g-dev
stage-packages:
- libasound2
@ -112,6 +114,7 @@ parts:
- libopus0
- libpulse0
- libssl1.1
- libwayland-client0
- libwebkit2gtk-4.0-37
- libxcb1
- libxcb-keysyms1
@ -153,9 +156,9 @@ parts:
- desktop-qt
- extra-cmake-modules
- ffmpeg
- kwayland
- mozjpeg
- openal
- plasma-wayland-protocols
- rnnoise
- webrtc
@ -239,37 +242,6 @@ parts:
after:
- mozjpeg
kwayland:
source: https://github.com/KDE/kwayland.git
source-depth: 1
source-tag: v5.87.0
plugin: cmake
build-packages:
- libwayland-dev
- wayland-protocols
stage-packages:
- libwayland-client0
- libwayland-server0
cmake-parameters:
- -DCMAKE_BUILD_TYPE=Release
- -DCMAKE_INSTALL_PREFIX=/usr
- -DBUILD_TESTING=OFF
override-pull: |
snapcraftctl pull
patch -p1 < $SNAPCRAFT_STAGE/patches/kwayland-qt6.patch
prime:
- -./usr/include
- -./usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libexec
- -./usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pkgconfig
- -./usr/lib/$SNAPCRAFT_ARCH_TRIPLET/*.so
- -./usr/mkspecs
- -./usr/share
after:
- extra-cmake-modules
- desktop-qt
- patches
- plasma-wayland-protocols
mozjpeg:
source: https://github.com/mozilla/mozjpeg.git
source-depth: 1