Enable native Wayland support

This commit is contained in:
Ilya Fedin 2020-02-11 19:10:07 +04:00 committed by John Preston
parent 60612635ef
commit da14588235
4 changed files with 45 additions and 15 deletions

View File

@ -31,7 +31,7 @@ jobs:
CMAKE_VER: "3.16.3" CMAKE_VER: "3.16.3"
UPLOAD_ARTIFACT: "false" UPLOAD_ARTIFACT: "false"
ONLY_CACHE: "false" ONLY_CACHE: "false"
MANUAL_CACHING: "5" MANUAL_CACHING: "6"
DOC_PATH: "docs/building-cmake.md" DOC_PATH: "docs/building-cmake.md"
steps: steps:
@ -55,13 +55,13 @@ jobs:
sudo apt-get install software-properties-common -y && \ sudo apt-get install software-properties-common -y && \
sudo apt-get install git libexif-dev liblzma-dev libz-dev libssl-dev \ sudo apt-get install git libexif-dev liblzma-dev libz-dev libssl-dev \
libgtk2.0-dev libice-dev libsm-dev libicu-dev libdrm-dev dh-autoreconf \ libgtk2.0-dev libice-dev libsm-dev libicu-dev libdrm-dev dh-autoreconf \
autoconf automake build-essential libass-dev libfreetype6-dev \ autoconf automake build-essential libxml2-dev libass-dev libfreetype6-dev \
libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev \ libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev \
libvorbis-dev libenchant-dev libxcb1-dev libxcb-image0-dev libxcb-shm0-dev \ libvorbis-dev libenchant-dev libxcb1-dev libxcb-image0-dev libxcb-shm0-dev \
libxcb-xfixes0-dev libxcb-keysyms1-dev libxcb-icccm4-dev libatspi2.0-dev \ libxcb-xfixes0-dev libxcb-keysyms1-dev libxcb-icccm4-dev libatspi2.0-dev \
libxcb-render-util0-dev libxcb-util0-dev libxcb-xkb-dev libxrender-dev \ libxcb-render-util0-dev libxcb-util0-dev libxcb-xkb-dev libxrender-dev \
libasound-dev libpulse-dev libxcb-sync0-dev libxcb-randr0-dev bison \ libasound-dev libpulse-dev libxcb-sync0-dev libxcb-randr0-dev libegl1-mesa-dev \
libx11-xcb-dev libffi-dev libncurses5-dev pkg-config texi2html yasm \ libx11-xcb-dev libffi-dev libncurses5-dev pkg-config texi2html bison yasm \
zlib1g-dev xutils-dev python-xcbgen chrpath gperf wget -y --force-yes && \ zlib1g-dev xutils-dev python-xcbgen chrpath gperf wget -y --force-yes && \
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \ sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
sudo apt-get update && \ sudo apt-get update && \
@ -350,6 +350,18 @@ jobs:
cd .. cd ..
rm -rf libxkbcommon rm -rf libxkbcommon
- name: Libwayland.
run: |
cd $LibrariesPath
git clone -b 1.16 https://gitlab.freedesktop.org/wayland/wayland
cd wayland
./autogen.sh --enable-static --disable-documentation
make -j$(nproc)
sudo make install
cd ..
rm -rf wayland
- name: Qt 5.12.5 cache. - name: Qt 5.12.5 cache.
id: cache-qt id: cache-qt
uses: actions/cache@v1 uses: actions/cache@v1
@ -363,8 +375,8 @@ jobs:
git clone -b v5.12.5 --depth=1 git://code.qt.io/qt/qt5.git qt_${QT} git clone -b v5.12.5 --depth=1 git://code.qt.io/qt/qt5.git qt_${QT}
cd qt_${QT} cd qt_${QT}
perl init-repository --module-subset=qtbase,qtimageformats,qtsvg perl init-repository --module-subset=qtbase,qtwayland,qtimageformats,qtsvg
git submodule update qtbase qtimageformats qtsvg git submodule update qtbase qtwayland qtimageformats qtsvg
cd qtbase cd qtbase
git apply ../../patches/qtbase_${QT}.diff git apply ../../patches/qtbase_${QT}.diff
cd src/plugins/platforminputcontexts cd src/plugins/platforminputcontexts
@ -386,7 +398,6 @@ jobs:
-qt-xcb \ -qt-xcb \
-system-freetype \ -system-freetype \
-fontconfig \ -fontconfig \
-no-opengl \
-no-gtk \ -no-gtk \
-static \ -static \
-dbus-runtime \ -dbus-runtime \

View File

@ -20,7 +20,19 @@ Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin) Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin)
Q_IMPORT_PLUGIN(QGenericEnginePlugin) Q_IMPORT_PLUGIN(QGenericEnginePlugin)
#elif defined Q_OS_LINUX // Q_OS_WIN | Q_OS_MAC #elif defined Q_OS_LINUX // Q_OS_WIN | Q_OS_MAC
Q_IMPORT_PLUGIN(ShmServerBufferPlugin)
Q_IMPORT_PLUGIN(DmaBufServerBufferPlugin)
Q_IMPORT_PLUGIN(DrmEglServerBufferPlugin)
Q_IMPORT_PLUGIN(QWaylandEglClientBufferPlugin)
Q_IMPORT_PLUGIN(QWaylandIviShellIntegrationPlugin)
Q_IMPORT_PLUGIN(QWaylandWlShellIntegrationPlugin)
Q_IMPORT_PLUGIN(QWaylandXdgShellV5IntegrationPlugin)
Q_IMPORT_PLUGIN(QWaylandXdgShellV6IntegrationPlugin)
Q_IMPORT_PLUGIN(QWaylandXdgShellIntegrationPlugin)
Q_IMPORT_PLUGIN(QWaylandBradientDecorationPlugin)
Q_IMPORT_PLUGIN(QXcbIntegrationPlugin) Q_IMPORT_PLUGIN(QXcbIntegrationPlugin)
Q_IMPORT_PLUGIN(QWaylandIntegrationPlugin)
Q_IMPORT_PLUGIN(QWaylandEglPlatformIntegrationPlugin)
Q_IMPORT_PLUGIN(QGenericEnginePlugin) Q_IMPORT_PLUGIN(QGenericEnginePlugin)
Q_IMPORT_PLUGIN(QComposePlatformInputContextPlugin) Q_IMPORT_PLUGIN(QComposePlatformInputContextPlugin)
Q_IMPORT_PLUGIN(QSvgIconPlugin) Q_IMPORT_PLUGIN(QSvgIconPlugin)

View File

@ -78,10 +78,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include <QtWidgets/QOpenGLWidget> #include <QtWidgets/QOpenGLWidget>
#endif // OS_MAC_OLD #endif // OS_MAC_OLD
// Fix Google Breakpad build for Mac App Store version // Fix Google Breakpad build for Mac App Store and Linux version
#ifdef Q_OS_MAC #if defined Q_OS_MAC || defined Q_OS_LINUX
#define __STDC_FORMAT_MACROS #define __STDC_FORMAT_MACROS
#endif // Q_OS_MAC #endif // Q_OS_MAC || Q_OS_LINUX
#include <array> #include <array>
#include <vector> #include <vector>

View File

@ -15,13 +15,13 @@ You will need GCC 8 installed. To install them and all the required dependencies
sudo apt-get install software-properties-common -y && \ sudo apt-get install software-properties-common -y && \
sudo apt-get install git libexif-dev liblzma-dev libz-dev libssl-dev \ sudo apt-get install git libexif-dev liblzma-dev libz-dev libssl-dev \
libgtk2.0-dev libice-dev libsm-dev libicu-dev libdrm-dev dh-autoreconf \ libgtk2.0-dev libice-dev libsm-dev libicu-dev libdrm-dev dh-autoreconf \
autoconf automake build-essential libass-dev libfreetype6-dev \ autoconf automake build-essential libxml2-dev libass-dev libfreetype6-dev \
libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev \ libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev \
libvorbis-dev libenchant-dev libxcb1-dev libxcb-image0-dev libxcb-shm0-dev \ libvorbis-dev libenchant-dev libxcb1-dev libxcb-image0-dev libxcb-shm0-dev \
libxcb-xfixes0-dev libxcb-keysyms1-dev libxcb-icccm4-dev libatspi2.0-dev \ libxcb-xfixes0-dev libxcb-keysyms1-dev libxcb-icccm4-dev libatspi2.0-dev \
libxcb-render-util0-dev libxcb-util0-dev libxcb-xkb-dev libxrender-dev \ libxcb-render-util0-dev libxcb-util0-dev libxcb-xkb-dev libxrender-dev \
libasound-dev libpulse-dev libxcb-sync0-dev libxcb-randr0-dev bison \ libasound-dev libpulse-dev libxcb-sync0-dev libxcb-randr0-dev libegl1-mesa-dev \
libx11-xcb-dev libffi-dev libncurses5-dev pkg-config texi2html yasm \ libx11-xcb-dev libffi-dev libncurses5-dev pkg-config texi2html bison yasm \
zlib1g-dev xutils-dev python-xcbgen chrpath gperf -y --force-yes && \ zlib1g-dev xutils-dev python-xcbgen chrpath gperf -y --force-yes && \
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \ sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
sudo apt-get update && \ sudo apt-get update && \
@ -225,11 +225,19 @@ Go to ***BuildPath*** and run
sudo make install sudo make install
cd .. cd ..
git clone -b 1.16 https://gitlab.freedesktop.org/wayland/wayland
cd wayland
./autogen.sh --enable-static --disable-documentation
make -j$(nproc)
sudo make install
cd ..
git clone git://code.qt.io/qt/qt5.git qt_5_12_5 git clone git://code.qt.io/qt/qt5.git qt_5_12_5
cd qt_5_12_5 cd qt_5_12_5
perl init-repository --module-subset=qtbase,qtimageformats,qtsvg perl init-repository --module-subset=qtbase,qtwayland,qtimageformats,qtsvg
git checkout v5.12.5 git checkout v5.12.5
git submodule update qtbase git submodule update qtbase
git submodule update qtwayland
git submodule update qtimageformats git submodule update qtimageformats
git submodule update qtsvg git submodule update qtsvg
cd qtbase cd qtbase
@ -254,7 +262,6 @@ Go to ***BuildPath*** and run
-qt-xcb \ -qt-xcb \
-system-freetype \ -system-freetype \
-fontconfig \ -fontconfig \
-no-opengl \
-no-gtk \ -no-gtk \
-static \ -static \
-dbus-runtime \ -dbus-runtime \