Skip to content

Commit 501fca0

Browse files
committed
Added Wayland plugin to Qt backend.
1 parent 8ad8ec1 commit 501fca0

File tree

7 files changed

+32
-22
lines changed

7 files changed

+32
-22
lines changed

.github/workflows/build_wheels_linux.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
MB_ML_VER: 2014
4242
TRAVIS_BUILD_DIR: ${{ github.workspace }}
4343
CONFIG_PATH: travis_config.sh
44-
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20231225
44+
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20240513
4545
USE_CCACHE: 0
4646
UNICODE_WIDTH: 32
4747
PLAT: x86_64
@@ -139,7 +139,7 @@ jobs:
139139
NP_TEST_DEP: numpy==1.19.4
140140
TRAVIS_BUILD_DIR: ${{ github.workspace }}
141141
CONFIG_PATH: travis_config.sh
142-
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20231225
142+
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20240513
143143
USE_CCACHE: 1
144144
UNICODE_WIDTH: 32
145145
SDIST: ${{ matrix.build_sdist || 0 }}

.github/workflows/build_wheels_linux_arm.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
MB_ML_VER: 2014
4343
TRAVIS_BUILD_DIR: ${{ github.workspace }}
4444
CONFIG_PATH: travis_config.sh
45-
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64:20231225
45+
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64:20240513
4646
USE_CCACHE: 0
4747
UNICODE_WIDTH: 32
4848
SDIST: ${{ matrix.build_sdist || 0 }}

docker/manylinux2014/Dockerfile_aarch64

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Version: 20231225
1+
# Version: 20240513
22
# Image name: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64
33

44
FROM quay.io/pypa/manylinux2014_aarch64:latest
@@ -10,13 +10,13 @@ ARG LIBPNG_VERSION=1.6.40
1010
ARG VPX_VERSION=v1.13.1
1111
ARG NASM_VERSION=2.15.04
1212
ARG OPENSSL_VERSION=1_1_1w
13-
ARG QT_VERSION=5.15.0
13+
ARG QT_VERSION=5.15.13
1414
ARG YASM_VERSION=1.3.0
1515

1616
ENV LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH
1717

1818
# epel-release need for aarch64 to get openblas packages
19-
RUN yum install zlib-devel curl-devel xcb-util-renderutil-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-wm-devel mesa-libGL-devel libxkbcommon-devel libxkbcommon-x11-devel libXi-devel lapack-devel epel-release -y && \
19+
RUN yum install zlib-devel curl-devel xcb-util-renderutil-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-wm-devel mesa-libGL-devel libxkbcommon-devel libxkbcommon-x11-devel libXi-devel lapack-devel epel-release wayland-devel libwayland-egl -y && \
2020
yum install openblas-devel dejavu-sans-fonts -y && \
2121
cp /usr/include/lapacke/lapacke*.h /usr/include/ && \
2222
curl https://raw.githubusercontent.com/xianyi/OpenBLAS/v0.3.3/cblas.h -o /usr/include/cblas.h && \
@@ -46,13 +46,12 @@ RUN mkdir ~/freetype_sources && \
4646
cd .. && \
4747
rm -rf ~/freetype_sources
4848

49-
RUN curl -C - -O -L https://download.qt.io/official_releases/qt/5.15/${QT_VERSION}/single/qt-everywhere-src-${QT_VERSION}.tar.xz && \
50-
tar -xf qt-everywhere-src-${QT_VERSION}.tar.xz && \
49+
RUN curl -O -L https://download.qt.io/archive/qt/5.15/${QT_VERSION}/single/qt-everywhere-opensource-src-${QT_VERSION}.tar.xz && \
50+
tar -xf qt-everywhere-opensource-src-${QT_VERSION}.tar.xz && \
5151
cd qt-everywhere-src-${QT_VERSION} && \
5252
export MAKEFLAGS=-j$(nproc) && \
53-
./configure -prefix /opt/Qt${QT_VERSION} -release -opensource -confirm-license -qtnamespace QtOpenCVPython -xcb -xcb-xlib -bundled-xcb-xinput -no-openssl -no-dbus -skip qt3d -skip qtactiveqt -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtimageformats -skip qtlocation -skip qtmultimedia -skip qtpurchasing -skip qtqa -skip qtremoteobjects -skip qtrepotools -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qttranslations -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip xmlpatterns -skip declarative -make libs && \
54-
make && \
55-
make install && \
53+
./configure -prefix /opt/Qt${QT_VERSION} -release -opensource -confirm-license -qtnamespace QtOpenCVPython -xcb -xcb-xlib -bundled-xcb-xinput -no-openssl -no-dbus -skip qt3d -skip qtactiveqt -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtimageformats -skip qtlocation -skip qtmultimedia -skip qtpurchasing -skip qtqa -skip qtremoteobjects -skip qtrepotools -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qttranslations -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip xmlpatterns -skip declarative -make libs && \
54+
make && make install && \
5655
cd .. && \
5756
rm -rf qt-everywhere*
5857

@@ -141,3 +140,4 @@ RUN git config --global --add safe.directory /io
141140
ENV PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/ffmpeg_build/lib/pkgconfig
142141
ENV LDFLAGS -L/ffmpeg_build/lib
143142
ENV PATH "$HOME/bin:$PATH"
143+
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/Qt${QT_VERSION}/lib

docker/manylinux2014/Dockerfile_x86_64

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Version: 20231225
1+
# Version: 20240513
22
# Image name: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64
33

44
FROM quay.io/pypa/manylinux2014_x86_64:latest
@@ -10,13 +10,13 @@ ARG LIBPNG_VERSION=1.6.40
1010
ARG VPX_VERSION=v1.13.1
1111
ARG NASM_VERSION=2.15.04
1212
ARG OPENSSL_VERSION=1_1_1w
13-
ARG QT_VERSION=5.15.0
13+
ARG QT_VERSION=5.15.13
1414
ARG YASM_VERSION=1.3.0
1515

1616
ENV LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH
1717

1818
# epel-release need for aarch64 to get openblas packages
19-
RUN yum install zlib-devel curl-devel xcb-util-renderutil-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-wm-devel mesa-libGL-devel libxkbcommon-devel libxkbcommon-x11-devel libXi-devel lapack-devel epel-release -y && \
19+
RUN yum install zlib-devel curl-devel xcb-util-renderutil-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-wm-devel mesa-libGL-devel libxkbcommon-devel libxkbcommon-x11-devel libXi-devel lapack-devel epel-release wayland-devel libwayland-egl -y && \
2020
yum install openblas-devel dejavu-sans-fonts -y && \
2121
cp /usr/include/lapacke/lapacke*.h /usr/include/ && \
2222
curl https://raw.githubusercontent.com/xianyi/OpenBLAS/v0.3.3/cblas.h -o /usr/include/cblas.h && \
@@ -45,13 +45,12 @@ RUN mkdir ~/freetype_sources && \
4545
cd .. && \
4646
rm -rf ~/freetype_sources
4747

48-
RUN curl -O -L https://download.qt.io/official_releases/qt/5.15/${QT_VERSION}/single/qt-everywhere-src-${QT_VERSION}.tar.xz && \
49-
tar -xf qt-everywhere-src-${QT_VERSION}.tar.xz && \
48+
RUN curl -O -L https://download.qt.io/archive/qt/5.15/${QT_VERSION}/single/qt-everywhere-opensource-src-${QT_VERSION}.tar.xz && \
49+
tar -xf qt-everywhere-opensource-src-${QT_VERSION}.tar.xz && \
5050
cd qt-everywhere-src-${QT_VERSION} && \
5151
export MAKEFLAGS=-j$(nproc) && \
52-
./configure -prefix /opt/Qt${QT_VERSION} -release -opensource -confirm-license -qtnamespace QtOpenCVPython -xcb -xcb-xlib -bundled-xcb-xinput -no-openssl -no-dbus -skip qt3d -skip qtactiveqt -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtimageformats -skip qtlocation -skip qtmultimedia -skip qtpurchasing -skip qtqa -skip qtremoteobjects -skip qtrepotools -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qttranslations -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip xmlpatterns -skip declarative -make libs && \
53-
make && \
54-
make install && \
52+
./configure -prefix /opt/Qt${QT_VERSION} -release -opensource -confirm-license -qtnamespace QtOpenCVPython -xcb -xcb-xlib -bundled-xcb-xinput -no-openssl -no-dbus -skip qt3d -skip qtactiveqt -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtimageformats -skip qtlocation -skip qtmultimedia -skip qtpurchasing -skip qtqa -skip qtremoteobjects -skip qtrepotools -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qttranslations -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip xmlpatterns -skip declarative -make libs && \
53+
make && make install && \
5554
cd .. && \
5655
rm -rf qt-everywhere*
5756

@@ -140,3 +139,4 @@ RUN git config --global --add safe.directory /io
140139
ENV PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/ffmpeg_build/lib/pkgconfig
141140
ENV LDFLAGS -L/ffmpeg_build/lib
142141
ENV PATH "$HOME/bin:$PATH"
142+
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/Qt${QT_VERSION}/lib

patches/patchQtPlugins

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ index 4c0b3880fc..dffa0a4caa 100644
99
+ install(DIRECTORY ${Qt5_DIR}/../../../plugins DESTINATION lib/qt)
1010
+ endif()
1111
+ if(UNIX AND NOT APPLE)
12-
+ install(DIRECTORY /opt/Qt5.15.0/plugins DESTINATION lib/qt)
12+
+ install(DIRECTORY /opt/Qt5.15.8/plugins DESTINATION lib/qt)
1313
+ install(DIRECTORY /usr/share/fonts DESTINATION lib/qt)
1414
+ endif()
1515
if(HAVE_QT_OPENGL)

setup.py

+12-1
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,18 @@ def main():
236236

237237
if sys.platform.startswith("linux"):
238238
rearrange_cmake_output_data["cv2.qt.plugins.platforms"] = [
239-
(r"lib/qt/plugins/platforms/libqxcb\.so")
239+
(r"lib/qt/plugins/platforms/libqxcb\.so"),
240+
241+
# wayland plugin parts
242+
(r"lib/qt/plugins/platforms/libqwayland-generic\.so"),
243+
(r"lib/qt/plugins/wayland-decoration-client/libbradient\.so"),
244+
(r"lib/qt/plugins/wayland-graphics-integration-client/libshm-emulation-server\.so"),
245+
(r"lib/qt/plugins/wayland-shell-integration/libfullscreen-shell-v1\.so"),
246+
(r"lib/qt/plugins/wayland-shell-integration/libivi-shell\.so"),
247+
(r"lib/qt/plugins/wayland-shell-integration/libwl-shell\.so"),
248+
(r"lib/qt/plugins/wayland-shell-integration/libxdg-shell\.so"),
249+
(r"lib/qt/plugins/wayland-shell-integration/libxdg-shell-v5\.so"),
250+
(r"lib/qt/plugins/wayland-shell-integration/libxdg-shell-v6\.so")
240251
]
241252

242253
# add fonts for Qt5

travis_config.sh

-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ if [ -n "$IS_OSX" ]; then
3434
export MAKEFLAGS="-j$(sysctl -n hw.ncpu)"
3535
else
3636
echo " > Linux environment "
37-
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/Qt5.15.0/lib
3837
export MAKEFLAGS="-j$(grep -E '^processor[[:space:]]*:' /proc/cpuinfo | wc -l)"
3938
CURRENT_ARCH=$(uname -m)
4039
if [[ $CURRENT_ARCH == 'aarch64' ]]; then

0 commit comments

Comments
 (0)