diff --git a/contrib/src/qtwayland/SHA512SUMS b/contrib/src/qtwayland/SHA512SUMS
new file mode 100644
index 0000000000000000000000000000000000000000..574be82855da6f43f7c388fee204f935b3f47cd8
--- /dev/null
+++ b/contrib/src/qtwayland/SHA512SUMS
@@ -0,0 +1 @@
+d6619f35b3ab163372a0d49a2221c487d5936b6d9ebeb92a7fd41521c424d550eea7c5c584e07f15bde1ec5ece1bd5774845eb9956ce793e546197ffdb28d594  qtwayland-5.15.1.tar.xz
diff --git a/contrib/src/qtwayland/rules.mak b/contrib/src/qtwayland/rules.mak
new file mode 100644
index 0000000000000000000000000000000000000000..afa053c858a13314d08037968d486dc44a25c506
--- /dev/null
+++ b/contrib/src/qtwayland/rules.mak
@@ -0,0 +1,31 @@
+# qtwayland
+
+QTWAYLAND_VERSION_MAJOR := 5.15
+QTWAYLAND_VERSION := $(QTWAYLAND_VERSION_MAJOR).1
+QTWAYLAND_URL := http://download.qt.io/development_releases/qt/5.12/5.12.0-beta1/submodules/qtwayland-everywhere-src-5.12.0-beta1.tar.xz
+QTWAYLAND_URL := http://download.qt.io/official_releases/qt/$(QTWAYLAND_VERSION_MAJOR)/$(QTWAYLAND_VERSION)/submodules/qtwayland-everywhere-src-$(QTWAYLAND_VERSION).tar.xz
+
+DEPS_qtwayland = qtdeclarative $(DEPS_qtdeclarative)
+
+$(TARBALLS)/qtwayland-$(QTWAYLAND_VERSION).tar.xz:
+	$(call download,$(QTWAYLAND_URL))
+
+.sum-qtwayland: qtwayland-$(QTWAYLAND_VERSION).tar.xz
+
+qtwayland: qtwayland-$(QTWAYLAND_VERSION).tar.xz .sum-qtwayland
+	$(UNPACK)
+	mv qtwayland-everywhere-src-$(QTWAYLAND_VERSION) qtwayland-$(QTWAYLAND_VERSION)
+	sed -i.orig '/SUBDIRS/d' "$(UNPACK_DIR)/tests/tests.pro"
+	sed -i.orig 's/"egl drm"/"egl"/g' \
+		$(UNPACK_DIR)/src/compositor/configure.json \
+		$(UNPACK_DIR)/src/client/configure.json
+	$(MOVE)
+
+.qtwayland: qtwayland
+	cd $< && $(PREFIX)/lib/qt5/bin/qmake
+	# Make && Install libraries
+	cd $< && $(MAKE)
+	cd $< && $(MAKE) -C src \
+		INSTALL_FILE="$(QT_QINSTALL)" VLC_PREFIX="$(PREFIX)" \
+		sub-plugins-install_subtargets
+	touch $@