diff --git a/repos/gems/recipes/src/mixer_gui_qt/content.mk b/repos/gems/recipes/src/mixer_gui_qt/content.mk
new file mode 100644
index 000000000..b71e014cd
--- /dev/null
+++ b/repos/gems/recipes/src/mixer_gui_qt/content.mk
@@ -0,0 +1,26 @@
+MIRROR_FROM_REP_DIR := src/app/mixer_gui_qt
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+MIRROR_FROM_LIBPORTS := src/app/qt5/tmpl/target_defaults.inc \
+ src/app/qt5/tmpl/target_final.inc
+
+content: $(MIRROR_FROM_LIBPORTS)
+
+$(MIRROR_FROM_LIBPORTS):
+ mkdir -p $(dir $@)
+ cp -r $(GENODE_DIR)/repos/libports/$@ $(dir $@)
+
+MIRROR_FROM_OS := include/mixer
+
+content: $(MIRROR_FROM_OS)
+
+$(MIRROR_FROM_OS):
+ mkdir -p $(dir $@)
+ cp -r $(GENODE_DIR)/repos/os/$@ $(dir $@)
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
diff --git a/repos/gems/recipes/src/mixer_gui_qt/hash b/repos/gems/recipes/src/mixer_gui_qt/hash
new file mode 100644
index 000000000..4606e9393
--- /dev/null
+++ b/repos/gems/recipes/src/mixer_gui_qt/hash
@@ -0,0 +1 @@
+2018-04-23 b07999f4300d0916b0f1407ffa5e402f097b2db8
diff --git a/repos/gems/recipes/src/mixer_gui_qt/used_apis b/repos/gems/recipes/src/mixer_gui_qt/used_apis
new file mode 100644
index 000000000..5e1d37ddb
--- /dev/null
+++ b/repos/gems/recipes/src/mixer_gui_qt/used_apis
@@ -0,0 +1,12 @@
+base
+libc
+os
+qoost
+qt5_core
+qt5_gui
+qt5_qjpeg
+qt5_qpa_nitpicker
+qt5_widgets
+report_session
+stdcxx
+vfs
diff --git a/repos/gems/run/mixer_gui_qt_test.run b/repos/gems/run/mixer_gui_qt_test.run
index ac20a925d..5fe63a299 100644
--- a/repos/gems/run/mixer_gui_qt_test.run
+++ b/repos/gems/run/mixer_gui_qt_test.run
@@ -1,165 +1,33 @@
+source ${genode_dir}/repos/libports/run/qt5_common.inc
+
+import_from_depot genodelabs/src/dynamic_rom \
+ genodelabs/src/mixer_gui_qt \
+ genodelabs/src/qt5_widgets
+
#
# Build
#
-if {![have_spec linux]} {
- puts "This run script requires linux!"
- exit 1
-}
-
-set build_components {
- core init
- drivers/timer
- server/ram_fs
- drivers/framebuffer
- server/dynamic_rom
- server/report_rom
- server/nitpicker
- server/fs_rom
- server/wm
- lib/mesa/swrast
- app/pointer
- app/floating_window_layouter
- app/decorator
- app/mixer_gui_qt
-}
-
-source ${genode_dir}/repos/base/run/platform_drv.inc
-append_platform_drv_build_components
+append build_components [qt5_build_components feature]
build $build_components
-create_boot_directory
-
#
# Generate config
#
-set config {
-
-
-
-
-
-
-
-
-
-
+append config {
+
+ }
+append config [qt5_parent_provides feature]
+append config {
+
-
-
-
-
-
- }
+ }
-append_platform_drv_config
-
-append_if [have_spec sdl] config {
-
-
-
-
-
-
- }
-
-append config {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }
+append config [qt5_start_nodes feature]
append config {
@@ -199,13 +67,15 @@ append config {
-
+
-
-
-
+
+
+ 2018-01-01 00:01
+
+
-
+
@@ -216,68 +86,16 @@ append config {
- }
-
-append config {
-
-}
+
+}
install_config $config
-#
-# Prepare resources needed by the application
-#
-
-# get fonts
-exec rm -rf bin/qt5_fs/mixer_gui_qt/qt
-exec mkdir -p bin/qt5_fs/mixer_gui_qt/qt/lib
-exec ln -sf [pwd]/bin/qt5_fs/qt/lib/fonts bin/qt5_fs/mixer_gui_qt/qt/lib/fonts
-
-# create tar archive containg Qt5 resources
-exec tar chf bin/qt5_fs_mixer_gui_qt.tar -C bin/qt5_fs/mixer_gui_qt .
-
#
# Boot modules
#
-set boot_modules {
- core ld.lib.so init timer
- libc.lib.so vfs.lib.so
-
- report_rom dynamic_rom ram_fs
- fs_rom
-
- qt5_component.lib.so
- qt5_gui.lib.so
- qt5_widgets.lib.so
- qt5_xml.lib.so
- qt5_core.lib.so
- egl.lib.so
- egl_swrast.lib.so
- expat.lib.so
- freetype.lib.so
- glapi.lib.so
- libc_pipe.lib.so
- libm.lib.so
- libpng.lib.so
- jpeg.lib.so
- mesa.lib.so
- zlib.lib.so
- stdcxx.lib.so
- pthread.lib.so
- pcre16.lib.so
- mixer_gui_qt
- qt5_fs_mixer_gui_qt.tar
- nitpicker
- wm
- pointer
- floating_window_layouter
- decorator
-}
-
-append_platform_drv_boot_modules
-
-lappend_if [have_spec linux] boot_modules fb_sdl
+append boot_modules [qt5_boot_modules feature]
build_boot_image $boot_modules
diff --git a/repos/gems/src/app/mixer_gui_qt/target.mk b/repos/gems/src/app/mixer_gui_qt/target.mk
index f8a39e070..52b8a0d50 100644
--- a/repos/gems/src/app/mixer_gui_qt/target.mk
+++ b/repos/gems/src/app/mixer_gui_qt/target.mk
@@ -1,10 +1,6 @@
-# identify the qt5 repository by searching for a file that is unique for qt5
-QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
-QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)
+include $(call select_from_repositories,src/app/qt5/tmpl/target_defaults.inc)
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_defaults.inc
-
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_final.inc
+include $(call select_from_repositories,src/app/qt5/tmpl/target_final.inc)
main_window.o: main_window.moc
diff --git a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerplatformwindow.h b/repos/libports/include/qt5/qpa_nitpicker/qnitpickerplatformwindow.h
similarity index 98%
rename from repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerplatformwindow.h
rename to repos/libports/include/qt5/qpa_nitpicker/qnitpickerplatformwindow.h
index 5d63366c2..32be5579a 100644
--- a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerplatformwindow.h
+++ b/repos/libports/include/qt5/qpa_nitpicker/qnitpickerplatformwindow.h
@@ -25,7 +25,7 @@
/* Qt includes */
#include
#include
-#include
+#include
#include
/* Qoost includes */
diff --git a/repos/libports/lib/import/import-qt5.inc b/repos/libports/lib/import/import-qt5.inc
index 16d4d0f1e..c57addfed 100644
--- a/repos/libports/lib/import/import-qt5.inc
+++ b/repos/libports/lib/import/import-qt5.inc
@@ -9,18 +9,22 @@ ifneq ($(INHIBIT_QT5),)
REQUIRES += removal_of_INHIBIT_QT5_env_var
endif
+QT_VERSION := 5.8.0
+
# identify the qt5 repository by searching for a file that is unique for qt5
QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)
-include $(QT5_REP_DIR)/lib/mk/qt5_version.inc
-
QT5_PORT_DIR := $(call select_from_ports,qt5)
-QT5_CONTRIB_DIR := $(QT5_PORT_DIR)/src/lib/qt5/$(QT5)
+QT5_CONTRIB_DIR := $(QT5_PORT_DIR)/src/lib/qt5/qt5
-QT5_INC_DIR := $(QT5_REP_DIR)/include/qt5 \
- $(QT5_CONTRIB_DIR)/qtbase/include \
- $(QT5_CONTRIB_DIR)/qtbase/mkspecs/genode-g++
+ifeq ($(CONTRIB_DIR),)
+QT5_INC_DIR += $(call select_from_repositories,src/lib/qt5/qt5/qtbase/mkspecs/genode-g++)
+else
+QT5_INC_DIR += $(QT5_PORT_DIR)/include \
+ $(QT5_CONTRIB_DIR)/qtbase/mkspecs/genode-g++ \
+ $(QT5_REP_DIR)/include/qt5
+endif
INC_DIR += $(QT5_INC_DIR)
@@ -49,9 +53,13 @@ SRC_CC += $(SRC_CC_QT_GENERATED)
#
# Locations of moc, rcc, and uic binaries
#
-MOC = $(BUILD_BASE_DIR)/tool/qt5/moc/moc
-RCC = $(BUILD_BASE_DIR)/tool/qt5/rcc/rcc
-UIC = $(BUILD_BASE_DIR)/tool/qt5/uic/uic
+QT5_HOST_TOOL_INSTALL_LOCATION ?= /usr/local/genode-qt5
+MOC = $(QT5_HOST_TOOL_INSTALL_LOCATION)/bin/moc
+RCC = $(QT5_HOST_TOOL_INSTALL_LOCATION)/bin/rcc
+UIC = $(QT5_HOST_TOOL_INSTALL_LOCATION)/bin/uic
+
+$(MOC) $(RCC) $(UIC):
+ $(error Error: could not find '$@'. The Qt5 host tools can be installed with the '/tool/tool_chain_qt5' script)
# moc rules
moc_%.cpp: %.h $(MOC)
@@ -85,12 +93,6 @@ INC_DIR += $(QT5_REP_DIR)/include/qt5/genode
LIBS += stdcxx
include $(call select_from_repositories,lib/import/import-stdcxx.mk)
-# custom main() thread stack size support via main() wrapper
-ifeq ($(findstring -DQT_MAIN_STACK_SIZE, $(CC_CXX_OPT)), -DQT_MAIN_STACK_SIZE)
-SRC_CC += qt_main.cc
-vpath qt_main.cc $(QT5_REP_DIR)/src/lib/qt5
-endif
-
# set QT_ARCH definition according to the SPECS variable
ifneq ($(filter x86_32,$(SPECS)),)
QT_DEFINES += -DQT_ARCH_I386
diff --git a/repos/libports/lib/import/import-qt5_core.mk b/repos/libports/lib/import/import-qt5_core.mk
index 57568e17b..980e1bd06 100644
--- a/repos/libports/lib/import/import-qt5_core.mk
+++ b/repos/libports/lib/import/import-qt5_core.mk
@@ -2,5 +2,14 @@ IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
include $(IMPORT_QT5_INC)
-QT5_INC_DIR += $(QT5_REP_DIR)/include/qt5/qtbase \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtCore \
+ifeq ($(CONTRIB_DIR),)
+QT5_CORE_INC_DIR := $(realpath $(call select_from_repositories,include/QtCore)/..)
+else
+QT5_CORE_INC_DIR := $(QT5_PORT_DIR)/include
+endif
+
+QT5_INC_DIR += $(QT5_CORE_INC_DIR)
+QT5_INC_DIR += $(QT5_CORE_INC_DIR)/QtCore
+QT5_INC_DIR += $(QT5_CORE_INC_DIR)/QtCore/$(QT_VERSION)
+QT5_INC_DIR += $(QT5_CORE_INC_DIR)/QtCore/$(QT_VERSION)/QtCore
+QT5_INC_DIR += $(QT5_CORE_INC_DIR)/QtCore/$(QT_VERSION)/QtCore/private
diff --git a/repos/libports/lib/import/import-qt5_gui.mk b/repos/libports/lib/import/import-qt5_gui.mk
index 3c87f5166..29bc32cf3 100644
--- a/repos/libports/lib/import/import-qt5_gui.mk
+++ b/repos/libports/lib/import/import-qt5_gui.mk
@@ -7,9 +7,18 @@ include $(IMPORT_QT5_INC)
#
# We cannot just extend the 'LIBS' variable here because 'import-*.mk' are
# included (in 'base/mk/lib.mk') by iterating through the elements of the
-# 'LIBS' variable. Hence, we also need to manually import the stdcxx snippet.
+# 'LIBS' variable. Hence, we need to manually import the mesa snippet.
#
-LIBS += mesa
-include $(call select_from_repositories,lib/import/import-mesa.mk)
+include $(call select_from_repositories,lib/import/import-mesa_api.mk)
-QT5_INC_DIR += $(QT5_CONTRIB_DIR)/qtbase/include/QtGui
+ifeq ($(CONTRIB_DIR),)
+QT5_GUI_INC_DIR := $(realpath $(call select_from_repositories,include/QtGui)/..)
+else
+QT5_GUI_INC_DIR := $(QT5_PORT_DIR)/include
+endif
+
+QT5_INC_DIR += $(QT5_GUI_INC_DIR)
+QT5_INC_DIR += $(QT5_GUI_INC_DIR)/QtGui
+QT5_INC_DIR += $(QT5_GUI_INC_DIR)/QtGui/$(QT_VERSION)
+QT5_INC_DIR += $(QT5_GUI_INC_DIR)/QtGui/$(QT_VERSION)/QtGui
+QT5_INC_DIR += $(QT5_GUI_INC_DIR)/QtGui/$(QT_VERSION)/QtGui/private
diff --git a/repos/libports/lib/import/import-qt5_network.mk b/repos/libports/lib/import/import-qt5_network.mk
index 3db861be9..35be22bac 100644
--- a/repos/libports/lib/import/import-qt5_network.mk
+++ b/repos/libports/lib/import/import-qt5_network.mk
@@ -2,4 +2,14 @@ IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
include $(IMPORT_QT5_INC)
-QT5_INC_DIR += $(QT5_CONTRIB_DIR)/qtbase/include/QtNetwork \
+ifeq ($(CONTRIB_DIR),)
+QT5_NETWORK_INC_DIR := $(realpath $(call select_from_repositories,include/QtNetwork)/..)
+else
+QT5_NETWORK_INC_DIR := $(QT5_PORT_DIR)/include
+endif
+
+QT5_INC_DIR += $(QT5_NETWORK_INC_DIR)
+QT5_INC_DIR += $(QT5_NETWORK_INC_DIR)/QtNetwork
+QT5_INC_DIR += $(QT5_NETWORK_INC_DIR)/QtNetwork/$(QT_VERSION)
+QT5_INC_DIR += $(QT5_NETWORK_INC_DIR)/QtNetwork/$(QT_VERSION)/QtNetwork
+QT5_INC_DIR += $(QT5_NETWORK_INC_DIR)/QtNetwork/$(QT_VERSION)/QtNetwork/private
diff --git a/repos/libports/lib/import/import-qt5_opengl.mk b/repos/libports/lib/import/import-qt5_opengl.mk
index 5602c0bec..750f0547e 100644
--- a/repos/libports/lib/import/import-qt5_opengl.mk
+++ b/repos/libports/lib/import/import-qt5_opengl.mk
@@ -1,3 +1,15 @@
IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
include $(IMPORT_QT5_INC)
+
+ifeq ($(CONTRIB_DIR),)
+QT5_OPENGL_INC_DIR := $(realpath $(call select_from_repositories,include/QtOpenGL)/..)
+else
+QT5_OPENGL_INC_DIR := $(QT5_PORT_DIR)/include
+endif
+
+QT5_INC_DIR += $(QT5_OPENGL_INC_DIR)
+QT5_INC_DIR += $(QT5_OPENGL_INC_DIR)/QtOpenGL
+QT5_INC_DIR += $(QT5_OPENGL_INC_DIR)/QtOpenGL/$(QT_VERSION)
+QT5_INC_DIR += $(QT5_OPENGL_INC_DIR)/QtOpenGL/$(QT_VERSION)/QtOpenGL
+QT5_INC_DIR += $(QT5_OPENGL_INC_DIR)/QtOpenGL/$(QT_VERSION)/QtOpenGL/private
diff --git a/repos/libports/lib/import/import-qt5_printsupport.mk b/repos/libports/lib/import/import-qt5_printsupport.mk
index 4e205f11e..2e58313a9 100644
--- a/repos/libports/lib/import/import-qt5_printsupport.mk
+++ b/repos/libports/lib/import/import-qt5_printsupport.mk
@@ -2,4 +2,14 @@ IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
include $(IMPORT_QT5_INC)
-QT5_INC_DIR += $(QT5_CONTRIB_DIR)/qtbase/include/QtPrintSupport \
+ifeq ($(CONTRIB_DIR),)
+QT5_PRINTSUPPORT_INC_DIR := $(realpath $(call select_from_repositories,include/QtPrintSupport)/..)
+else
+QT5_PRINTSUPPORT_INC_DIR := $(QT5_PORT_DIR)/include
+endif
+
+QT5_INC_DIR += $(QT5_PRINTSUPPORT_INC_DIR)
+QT5_INC_DIR += $(QT5_PRINTSUPPORT_INC_DIR)/QtPrintSupport
+QT5_INC_DIR += $(QT5_PRINTSUPPORT_INC_DIR)/QtPrintSupport/$(QT_VERSION)
+QT5_INC_DIR += $(QT5_PRINTSUPPORT_INC_DIR)/QtPrintSupport/$(QT_VERSION)/QtPrintSupport
+QT5_INC_DIR += $(QT5_PRINTSUPPORT_INC_DIR)/QtPrintSupport/$(QT_VERSION)/QtPrintSupport/private
diff --git a/repos/libports/lib/import/import-qt5_qml.mk b/repos/libports/lib/import/import-qt5_qml.mk
index d86e49d1c..7627e01ca 100644
--- a/repos/libports/lib/import/import-qt5_qml.mk
+++ b/repos/libports/lib/import/import-qt5_qml.mk
@@ -2,5 +2,14 @@ IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
include $(IMPORT_QT5_INC)
-QT5_INC_DIR += $(QT5_CONTRIB_DIR)/qtdeclarative/include
-QT5_INC_DIR += $(QT5_CONTRIB_DIR)/qtdeclarative/include/QtQml
+ifeq ($(CONTRIB_DIR),)
+QT5_QML_INC_DIR := $(realpath $(call select_from_repositories,include/QtQml)/..)
+else
+QT5_QML_INC_DIR := $(QT5_PORT_DIR)/include
+endif
+
+QT5_INC_DIR += $(QT5_QML_INC_DIR)
+QT5_INC_DIR += $(QT5_QML_INC_DIR)/QtQml
+QT5_INC_DIR += $(QT5_QML_INC_DIR)/QtQml/$(QT_VERSION)
+QT5_INC_DIR += $(QT5_QML_INC_DIR)/QtQml/$(QT_VERSION)/QtQml
+QT5_INC_DIR += $(QT5_QML_INC_DIR)/QtQml/$(QT_VERSION)/QtQml/private
diff --git a/repos/libports/lib/import/import-qt5_qmlfolderlistmodelplugin.mk b/repos/libports/lib/import/import-qt5_qmlfolderlistmodelplugin.mk
deleted file mode 100644
index 5602c0bec..000000000
--- a/repos/libports/lib/import/import-qt5_qmlfolderlistmodelplugin.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
-
-include $(IMPORT_QT5_INC)
diff --git a/repos/libports/lib/import/import-qt5_qnitpickerviewwidget.mk b/repos/libports/lib/import/import-qt5_qnitpickerviewwidget.mk
new file mode 100644
index 000000000..08f323526
--- /dev/null
+++ b/repos/libports/lib/import/import-qt5_qnitpickerviewwidget.mk
@@ -0,0 +1 @@
+QT5_INC_DIR += $(realpath $(call select_from_repositories,include/qt5/qnitpickerviewwidget)/..)
diff --git a/repos/libports/lib/import/import-qt5_qpa_nitpicker.mk b/repos/libports/lib/import/import-qt5_qpa_nitpicker.mk
index 527449ebc..632ee9b0b 100644
--- a/repos/libports/lib/import/import-qt5_qpa_nitpicker.mk
+++ b/repos/libports/lib/import/import-qt5_qpa_nitpicker.mk
@@ -2,10 +2,10 @@ IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
include $(IMPORT_QT5_INC)
-# include dirs needed for 'qnitpickerplatformwindow.h', which is used by
-# the qt5_qnitpickerviewwidget library
-
-INC_DIR += $(QT5_REP_DIR)/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker \
- $(QT5_CONTRIB_DIR)/qtbase/src/platformsupport/input/evdevkeyboard \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtGui/$(QT_VERSION)/QtGui \
-
+ifeq ($(CONTRIB_DIR),)
+INC_DIR += $(call select_from_repositories,include/qt5/qpa_nitpicker) \
+ $(call select_from_repositories,include/QtInputSupport/$(QT_VERSION))
+else
+INC_DIR += $(REP_DIR)/include/qt5/qpa_nitpicker \
+ $(QT5_PORT_DIR)/include/QtInputSupport/$(QT_VERSION)
+endif
diff --git a/repos/libports/lib/import/import-qt5_qpluginwidget.mk b/repos/libports/lib/import/import-qt5_qpluginwidget.mk
new file mode 100644
index 000000000..d49f897d8
--- /dev/null
+++ b/repos/libports/lib/import/import-qt5_qpluginwidget.mk
@@ -0,0 +1,4 @@
+QT5_INC_DIR += $(realpath $(call select_from_repositories,include/qt5/qpluginwidget)/..)
+
+# 'qpluginwidget.h' includes 'qnitpickerviewwidget.h'
+include $(call select_from_repositories,lib/import/import-qt5_qnitpickerviewwidget.mk)
diff --git a/repos/libports/lib/import/import-qt5_qquicklayoutsplugin.mk b/repos/libports/lib/import/import-qt5_qquicklayoutsplugin.mk
deleted file mode 100644
index 5602c0bec..000000000
--- a/repos/libports/lib/import/import-qt5_qquicklayoutsplugin.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
-
-include $(IMPORT_QT5_INC)
diff --git a/repos/libports/lib/import/import-qt5_qtvirtualkeyboardplugin.mk b/repos/libports/lib/import/import-qt5_qtvirtualkeyboardplugin.mk
deleted file mode 100644
index 5602c0bec..000000000
--- a/repos/libports/lib/import/import-qt5_qtvirtualkeyboardplugin.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
-
-include $(IMPORT_QT5_INC)
diff --git a/repos/libports/lib/import/import-qt5_qtvirtualkeyboardstylesplugin.mk b/repos/libports/lib/import/import-qt5_qtvirtualkeyboardstylesplugin.mk
deleted file mode 100644
index 5602c0bec..000000000
--- a/repos/libports/lib/import/import-qt5_qtvirtualkeyboardstylesplugin.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
-
-include $(IMPORT_QT5_INC)
diff --git a/repos/libports/lib/import/import-qt5_quick.mk b/repos/libports/lib/import/import-qt5_quick.mk
index e6bfc8c09..18dab29f5 100644
--- a/repos/libports/lib/import/import-qt5_quick.mk
+++ b/repos/libports/lib/import/import-qt5_quick.mk
@@ -2,6 +2,14 @@ IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
include $(IMPORT_QT5_INC)
-QT5_INC_DIR += $(QT5_CONTRIB_DIR)/qtdeclarative/include
-QT5_INC_DIR += $(QT5_CONTRIB_DIR)/qtdeclarative/include/QtQuick
+ifeq ($(CONTRIB_DIR),)
+QT5_QUICK_INC_DIR := $(realpath $(call select_from_repositories,include/QtQuick)/..)
+else
+QT5_QUICK_INC_DIR := $(QT5_PORT_DIR)/include
+endif
+QT5_INC_DIR += $(QT5_QUICK_INC_DIR)
+QT5_INC_DIR += $(QT5_QUICK_INC_DIR)/QtQuick
+QT5_INC_DIR += $(QT5_QUICK_INC_DIR)/QtQuick/$(QT_VERSION)
+QT5_INC_DIR += $(QT5_QUICK_INC_DIR)/QtQuick/$(QT_VERSION)/QtQuick
+QT5_INC_DIR += $(QT5_QUICK_INC_DIR)/QtQuick/$(QT_VERSION)/QtQuick/private
diff --git a/repos/libports/lib/import/import-qt5_scriptclassic.mk b/repos/libports/lib/import/import-qt5_scriptclassic.mk
index cec29a382..d6e1b7bd3 100644
--- a/repos/libports/lib/import/import-qt5_scriptclassic.mk
+++ b/repos/libports/lib/import/import-qt5_scriptclassic.mk
@@ -2,8 +2,13 @@ IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
include $(IMPORT_QT5_INC)
-QT5_INC_DIR += $(QT5_PORT_DIR)/src/lib/qt5/qtscriptclassic-1.0_1-opensource/include \
- $(QT5_PORT_DIR)/src/lib/qt5/qtscriptclassic-1.0_1-opensource/include/QtScript \
- $(QT5_PORT_DIR)/src/lib/qt5/qtscriptclassic-1.0_1-opensource/src \
+ifeq ($(CONTRIB_DIR),)
+QT5_SCRIPTCLASSIC_INC_DIR := $(realpath $(call select_from_repositories,include/QtScript)/..)
+else
+QT5_SCRIPTCLASSIC_INC_DIR := $(QT5_PORT_DIR)/include
+endif
+
+QT5_INC_DIR += $(QT5_SCRIPTCLASSIC_INC_DIR)
+QT5_INC_DIR += $(QT5_SCRIPTCLASSIC_INC_DIR)/QtScript
QT_DEFINES += -DQ_SCRIPT_EXPORT=
diff --git a/repos/libports/lib/import/import-qt5_sql.mk b/repos/libports/lib/import/import-qt5_sql.mk
index 7e158e133..ef9cada78 100644
--- a/repos/libports/lib/import/import-qt5_sql.mk
+++ b/repos/libports/lib/import/import-qt5_sql.mk
@@ -2,4 +2,14 @@ IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
include $(IMPORT_QT5_INC)
-QT5_INC_DIR += $(QT5_CONTRIB_DIR)/qtbase/include/QtSql \
+ifeq ($(CONTRIB_DIR),)
+QT5_SQL_INC_DIR := $(realpath $(call select_from_repositories,include/QtSql)/..)
+else
+QT5_SQL_INC_DIR := $(QT5_PORT_DIR)/include
+endif
+
+QT5_INC_DIR += $(QT5_SQL_INC_DIR)
+QT5_INC_DIR += $(QT5_SQL_INC_DIR)/QtSql
+QT5_INC_DIR += $(QT5_SQL_INC_DIR)/QtSql/$(QT_VERSION)
+QT5_INC_DIR += $(QT5_SQL_INC_DIR)/QtSql/$(QT_VERSION)/QtSql
+QT5_INC_DIR += $(QT5_SQL_INC_DIR)/QtSql/$(QT_VERSION)/QtSql/private
diff --git a/repos/libports/lib/import/import-qt5_svg.mk b/repos/libports/lib/import/import-qt5_svg.mk
index adce7bf6d..d18cfade1 100644
--- a/repos/libports/lib/import/import-qt5_svg.mk
+++ b/repos/libports/lib/import/import-qt5_svg.mk
@@ -2,4 +2,14 @@ IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
include $(IMPORT_QT5_INC)
-QT5_INC_DIR += $(QT5_CONTRIB_DIR)/qtsvg/include/QtSvg
+ifeq ($(CONTRIB_DIR),)
+QT5_SVG_INC_DIR := $(realpath $(call select_from_repositories,include/QtSvg)/..)
+else
+QT5_SVG_INC_DIR := $(QT5_PORT_DIR)/include
+endif
+
+QT5_INC_DIR += $(QT5_SVG_INC_DIR)
+QT5_INC_DIR += $(QT5_SVG_INC_DIR)/QtSvg
+QT5_INC_DIR += $(QT5_SVG_INC_DIR)/QtSvg/$(QT_VERSION)
+QT5_INC_DIR += $(QT5_SVG_INC_DIR)/QtSvg/$(QT_VERSION)/QtSvg
+QT5_INC_DIR += $(QT5_SVG_INC_DIR)/QtSvg/$(QT_VERSION)/QtSvg/private
diff --git a/repos/libports/lib/import/import-qt5_ui_tools.mk b/repos/libports/lib/import/import-qt5_ui_tools.mk
index a5ab490af..893070753 100644
--- a/repos/libports/lib/import/import-qt5_ui_tools.mk
+++ b/repos/libports/lib/import/import-qt5_ui_tools.mk
@@ -2,4 +2,26 @@ IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
include $(IMPORT_QT5_INC)
-QT5_INC_DIR += $(QT5_CONTRIB_DIR)/qttools/include/QtUiTools \
+ifeq ($(CONTRIB_DIR),)
+QT5_DESIGNER_INC_DIR := $(realpath $(call select_from_repositories,include/QtDesigner)/..)
+else
+QT5_DESIGNER_INC_DIR := $(QT5_PORT_DIR)/include
+endif
+
+QT5_INC_DIR += $(QT5_DESIGNER_INC_DIR)
+QT5_INC_DIR += $(QT5_DESIGNER_INC_DIR)/QtDesigner
+QT5_INC_DIR += $(QT5_DESIGNER_INC_DIR)/QtDesigner/$(QT_VERSION)
+QT5_INC_DIR += $(QT5_DESIGNER_INC_DIR)/QtDesigner/$(QT_VERSION)/QtDesigner
+QT5_INC_DIR += $(QT5_DESIGNER_INC_DIR)/QtDesigner/$(QT_VERSION)/QtDesigner/private
+
+ifeq ($(CONTRIB_DIR),)
+QT5_UI_TOOLS_INC_DIR := $(realpath $(call select_from_repositories,include/QtUiTools)/..)
+else
+QT5_UI_TOOLS_INC_DIR := $(QT5_PORT_DIR)/include
+endif
+
+QT5_INC_DIR += $(QT5_UI_TOOLS_INC_DIR)
+QT5_INC_DIR += $(QT5_UI_TOOLS_INC_DIR)/QtUiTools
+QT5_INC_DIR += $(QT5_UI_TOOLS_INC_DIR)/QtUiTools/$(QT_VERSION)
+QT5_INC_DIR += $(QT5_UI_TOOLS_INC_DIR)/QtUiTools/$(QT_VERSION)/QtUiTools
+QT5_INC_DIR += $(QT5_UI_TOOLS_INC_DIR)/QtUiTools/$(QT_VERSION)/QtUiTools/private
diff --git a/repos/libports/lib/import/import-qt5_webkit.mk b/repos/libports/lib/import/import-qt5_webkit.mk
index 0bbfa1568..440769461 100644
--- a/repos/libports/lib/import/import-qt5_webkit.mk
+++ b/repos/libports/lib/import/import-qt5_webkit.mk
@@ -2,7 +2,14 @@ IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
include $(IMPORT_QT5_INC)
-QT5_INC_DIR += $(QT5_REP_DIR)/include/qt5/qtwebkit \
- $(QT5_CONTRIB_DIR)/qtwebkit/include \
- $(QT5_REP_DIR)/include/qt5/qtwebkit/QtWebKit \
- $(QT5_CONTRIB_DIR)/qtwebkit/include/QtWebKit \
+ifeq ($(CONTRIB_DIR),)
+QT5_WEBKIT_INC_DIR := $(realpath $(call select_from_repositories,include/QtWebKit)/..)
+else
+QT5_WEBKIT_INC_DIR := $(QT5_PORT_DIR)/include
+endif
+
+QT5_INC_DIR += $(QT5_WEBKIT_INC_DIR)
+QT5_INC_DIR += $(QT5_WEBKIT_INC_DIR)/QtWebKit
+QT5_INC_DIR += $(QT5_WEBKIT_INC_DIR)/QtWebKit/$(QT_VERSION)
+QT5_INC_DIR += $(QT5_WEBKIT_INC_DIR)/QtWebKit/$(QT_VERSION)/QtWebKit
+QT5_INC_DIR += $(QT5_WEBKIT_INC_DIR)/QtWebKit/$(QT_VERSION)/QtWebKit/private
diff --git a/repos/libports/lib/import/import-qt5_webkitwidgets.mk b/repos/libports/lib/import/import-qt5_webkitwidgets.mk
index 87f6e5659..3a001bc29 100644
--- a/repos/libports/lib/import/import-qt5_webkitwidgets.mk
+++ b/repos/libports/lib/import/import-qt5_webkitwidgets.mk
@@ -2,4 +2,14 @@ IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
include $(IMPORT_QT5_INC)
-QT5_INC_DIR += $(QT5_CONTRIB_DIR)/qtwebkit/include/QtWebKitWidgets \
+ifeq ($(CONTRIB_DIR),)
+QT5_WEBKITWIDGETS_INC_DIR := $(realpath $(call select_from_repositories,include/QtWebKitWidgets)/..)
+else
+QT5_WEBKITWIDGETS_INC_DIR := $(QT5_PORT_DIR)/include
+endif
+
+QT5_INC_DIR += $(QT5_WEBKITWIDGETS_INC_DIR)
+QT5_INC_DIR += $(QT5_WEBKITWIDGETS_INC_DIR)/QtWebKitWidgets
+QT5_INC_DIR += $(QT5_WEBKITWIDGETS_INC_DIR)/QtWebKitWidgets/$(QT_VERSION)
+QT5_INC_DIR += $(QT5_WEBKITWIDGETS_INC_DIR)/QtWebKitWidgets/$(QT_VERSION)/QtWebKitWidgets
+QT5_INC_DIR += $(QT5_WEBKITWIDGETS_INC_DIR)/QtWebKitWidgets/$(QT_VERSION)/QtWebKitWidgets/private
diff --git a/repos/libports/lib/import/import-qt5_widgets.mk b/repos/libports/lib/import/import-qt5_widgets.mk
index 0e374bc08..236bc392a 100644
--- a/repos/libports/lib/import/import-qt5_widgets.mk
+++ b/repos/libports/lib/import/import-qt5_widgets.mk
@@ -2,4 +2,14 @@ IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
include $(IMPORT_QT5_INC)
-QT5_INC_DIR += $(QT5_CONTRIB_DIR)/qtbase/include/QtWidgets \
+ifeq ($(CONTRIB_DIR),)
+QT5_WIDGETS_INC_DIR := $(realpath $(call select_from_repositories,include/QtWidgets)/..)
+else
+QT5_WIDGETS_INC_DIR := $(QT5_PORT_DIR)/include
+endif
+
+QT5_INC_DIR += $(QT5_WIDGETS_INC_DIR)
+QT5_INC_DIR += $(QT5_WIDGETS_INC_DIR)/QtWidgets
+QT5_INC_DIR += $(QT5_WIDGETS_INC_DIR)/QtWidgets/$(QT_VERSION)
+QT5_INC_DIR += $(QT5_WIDGETS_INC_DIR)/QtWidgets/$(QT_VERSION)/QtWidgets
+QT5_INC_DIR += $(QT5_WIDGETS_INC_DIR)/QtWidgets/$(QT_VERSION)/QtWidgets/private
diff --git a/repos/libports/lib/import/import-qt5_windowplugin.mk b/repos/libports/lib/import/import-qt5_windowplugin.mk
deleted file mode 100644
index 5602c0bec..000000000
--- a/repos/libports/lib/import/import-qt5_windowplugin.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
-
-include $(IMPORT_QT5_INC)
diff --git a/repos/libports/lib/import/import-qt5_xml.mk b/repos/libports/lib/import/import-qt5_xml.mk
index fc8a8039e..f1f9ab6fb 100644
--- a/repos/libports/lib/import/import-qt5_xml.mk
+++ b/repos/libports/lib/import/import-qt5_xml.mk
@@ -2,4 +2,14 @@ IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
include $(IMPORT_QT5_INC)
-QT5_INC_DIR += $(QT5_CONTRIB_DIR)/qtbase/include/QtXml
+ifeq ($(CONTRIB_DIR),)
+QT5_XML_INC_DIR := $(realpath $(call select_from_repositories,include/QtXml)/..)
+else
+QT5_XML_INC_DIR := $(QT5_PORT_DIR)/include
+endif
+
+QT5_INC_DIR += $(QT5_XML_INC_DIR)
+QT5_INC_DIR += $(QT5_XML_INC_DIR)/QtXml
+QT5_INC_DIR += $(QT5_XML_INC_DIR)/QtXml/$(QT_VERSION)
+QT5_INC_DIR += $(QT5_XML_INC_DIR)/QtXml/$(QT_VERSION)/QtXml
+QT5_INC_DIR += $(QT5_XML_INC_DIR)/QtXml/$(QT_VERSION)/QtXml/private
diff --git a/repos/libports/lib/mk/qt5_angle.mk b/repos/libports/lib/mk/qt5_angle.mk
index c830540b7..6a0decf1b 100644
--- a/repos/libports/lib/mk/qt5_angle.mk
+++ b/repos/libports/lib/mk/qt5_angle.mk
@@ -1,35 +1,7 @@
-include $(REP_DIR)/lib/import/import-qt5_angle.mk
+include $(call select_from_repositories,lib/import/import-qt5_angle.mk)
SHARED_LIB = yes
-#
-# Generated files
-#
-# some of the following lines have been extracted from the console output
-# of the 'configure' script (with modifications), that's why they can be
-# quite long
-#
-
-ifneq ($(call select_from_ports,qt5),)
-all: $(QT5_PORT_DIR)/src/lib/qt5/qtwebkit/Source/ThirdParty/ANGLE/generated/generated.tag
-endif
-
-ANGLE_DIR = $(QT5_CONTRIB_DIR)/qtwebkit/Source/ThirdParty/ANGLE
-
-# make the 'HOST_TOOLS' variable known
-include $(REP_DIR)/lib/mk/qt5_host_tools.mk
-
-$(QT5_PORT_DIR)/src/lib/qt5/qtwebkit/Source/ThirdParty/ANGLE/generated/generated.tag: $(HOST_TOOLS)
-
- $(VERBOSE)mkdir -p $(dir $@)
-
- $(VERBOSE)flex --noline --nounistd --outfile=$(dir $@)/glslang_lex.cpp $(ANGLE_DIR)/src/compiler/glslang.l
- $(VERBOSE)flex --noline --nounistd --outfile=$(dir $@)/Tokenizer_lex.cpp $(ANGLE_DIR)/src/compiler/preprocessor/Tokenizer.l
- $(VERBOSE)bison --no-lines --skeleton=yacc.c --defines=$(dir $@)/glslang_tab.h --output=$(dir $@)/glslang_tab.cpp $(ANGLE_DIR)/src/compiler/glslang.y
- $(VERBOSE)bison --no-lines --skeleton=yacc.c --defines=$(dir $@)/ExpressionParser_tab.h --output=$(dir $@)/ExpressionParser_tab.cpp $(ANGLE_DIR)/src/compiler/preprocessor/ExpressionParser.y
-
- $(VERBOSE)touch $@
-
include $(REP_DIR)/lib/mk/qt5_angle_generated.inc
QT_INCPATH += qtwebkit/Source/ThirdParty/ANGLE/generated
diff --git a/repos/libports/lib/mk/qt5_core.mk b/repos/libports/lib/mk/qt5_core.mk
index 8ead924ad..0e1034f3f 100644
--- a/repos/libports/lib/mk/qt5_core.mk
+++ b/repos/libports/lib/mk/qt5_core.mk
@@ -1,4 +1,4 @@
-include $(REP_DIR)/lib/import/import-qt5_core.mk
+include $(call select_from_repositories,lib/import/import-qt5_core.mk)
SHARED_LIB = yes
@@ -29,12 +29,6 @@ include $(REP_DIR)/lib/mk/qt5.inc
SRC_CC += libc_dummies.cc
vpath libc_dummies.cc $(REP_DIR)/src/lib/qt5
-INC_DIR += $(REP_DIR)/include/qt5/qtbase/QtCore/private \
- $(REP_DIR)/src/lib/qt5/qtbase/src/corelib/thread \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtCore/$(QT_VERSION) \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtCore/$(QT_VERSION)/QtCore \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtCore/$(QT_VERSION)/QtCore/private
-
-LIBS += qt5_host_tools zlib pcre16 libc libm libc_pipe pthread
+LIBS += zlib pcre16 libc libm libc_pipe pthread
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_gui.mk b/repos/libports/lib/mk/qt5_gui.mk
index 84d5d35f4..475f209c3 100644
--- a/repos/libports/lib/mk/qt5_gui.mk
+++ b/repos/libports/lib/mk/qt5_gui.mk
@@ -1,4 +1,4 @@
-include $(REP_DIR)/lib/import/import-qt5_gui.mk
+include $(call select_from_repositories,lib/import/import-qt5_gui.mk)
SHARED_LIB = yes
@@ -21,25 +21,6 @@ COMPILER_MOC_HEADER_MAKE_ALL_FILES_FILTER_OUT = \
include $(REP_DIR)/lib/mk/qt5.inc
-INC_DIR += $(REP_DIR)/include/qt5/qtbase/QtGui/private \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtGui/$(QT_VERSION) \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtGui/$(QT_VERSION)/QtGui \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtGui/$(QT_VERSION)/QtGui/private \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtCore/$(QT_VERSION) \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtCore/$(QT_VERSION)/QtCore
-
LIBS += qt5_core zlib libpng
-#
-# install fonts
-#
-
-ifneq ($(call select_from_ports,qt5),)
-all: $(BUILD_BASE_DIR)/bin/qt5_fs/qt/lib/fonts
-endif
-
-$(BUILD_BASE_DIR)/bin/qt5_fs/qt/lib/fonts:
- $(VERBOSE)mkdir -p $@
- $(VERBOSE)ln -sf $(QT5_CONTRIB_DIR)/qtquickcontrols/examples/quickcontrols/extras/dashboard/fonts/DejaVuSans.ttf $@/
-
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_host_tools.inc b/repos/libports/lib/mk/qt5_host_tools.inc
deleted file mode 100644
index 3f39f442d..000000000
--- a/repos/libports/lib/mk/qt5_host_tools.inc
+++ /dev/null
@@ -1,51 +0,0 @@
-#
-# Build the tools using qmake
-#
-
-QMAKESPEC = $(QT5_CONTRIB_DIR)/qtbase/mkspecs/linux-g++
-
-bootstrap/libQtBootstrap.a: bootstrap/Makefile
- $(VERBOSE)QMAKESPEC=$(QMAKESPEC) $(MAKE) -C bootstrap \
- DEFINES="-DQT_VERSION_STR='\"5.8.0\"' -DQT_VERSION_MAJOR=5 -DQT_VERSION_MINOR=8 -DQT_VERSION_PATCH=0 -DQT_BOOTSTRAPPED -DQT_NO_CAST_TO_ASCII -DQT_NO_FOREACH -DQT_NO_CAST_FROM_ASCII -DQT_BUILD_BOOTSTRAP_LIB -DQT_BUILDING_QT -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG"
-
-moc/moc: bootstrap/libQtBootstrap.a moc/Makefile
- $(VERBOSE)QMAKESPEC=$(QMAKESPEC) $(MAKE) -C moc \
- DEFINES="-DQT_MOC -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_COMPRESS -DQT_NO_FOREACH -DQT_USE_QSTRINGBUILDER -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_BOOTSTRAP_LIB -DQT_VERSION_STR='\"5.8.0\"' -DQT_VERSION_MAJOR=5 -DQT_VERSION_MINOR=8 -DQT_VERSION_PATCH=0 -DQT_BOOTSTRAPPED -DQT_NO_CAST_TO_ASCII"
-
-rcc/rcc: bootstrap/libQtBootstrap.a rcc/Makefile
- $(VERBOSE)QMAKESPEC=$(QMAKESPEC) $(MAKE) -C rcc \
- DEFINES="-DQT_RCC -DQT_NO_CAST_FROM_ASCII -DQT_NO_FOREACH -DQT_USE_QSTRINGBUILDER -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_BOOTSTRAP_LIB -DQT_VERSION_STR='\"5.8.0\"' -DQT_VERSION_MAJOR=5 -DQT_VERSION_MINOR=8 -DQT_VERSION_PATCH=0 -DQT_BOOTSTRAPPED -DQT_NO_CAST_TO_ASCII"
-
-uic/uic: bootstrap/libQtBootstrap.a uic/Makefile
- $(VERBOSE)QMAKESPEC=$(QMAKESPEC) $(MAKE) -C uic \
- DEFINES="-DQT_UIC -DQT_NO_CAST_FROM_ASCII -DQT_NO_FOREACH -DQT_UIC_CPP_GENERATOR -DQT_USE_QSTRINGBUILDER -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_CORE_LIB"
-
-#
-# Rule to generate tool Makefiles from the respective pro files via qmake
-#
-# The second include path is required to resolve the Genode-specific
-# 'gconfig.cpp' file. Even though this is a 'cpp' file, it is used via
-# '#include'. So we have to make its location known to the 'INCLUDEPATH'.
-#
-%/Makefile: %.pro
- $(VERBOSE)mkdir -p $*/.out
- $(VERBOSE)QMAKESPEC=$(QMAKESPEC) qmake/bin/qmake -o $*/Makefile \
- QT_BUILD_TREE=$(QT5_CONTRIB_DIR)/qtbase \
- QT_CONFIG+=zlib \
- QMAKE_CXXFLAGS=-std=c++11 \
- INCLUDEPATH+=$(QT5_CONTRIB_DIR)/qtbase/include \
- INCLUDEPATH+=$(QT5_CONTRIB_DIR)/qtbase/include \
- INCLUDEPATH+=$(QT5_CONTRIB_DIR)/qtbase/include/QtCore \
- INCLUDEPATH+=$(REP_DIR)/src/lib/qt5/qtbase/src/corelib/global \
- INCLUDEPATH+=$(QT5_CONTRIB_DIR)/qtbase/include/QtCore/5.8.0 \
- INCLUDEPATH+=$(QT5_CONTRIB_DIR)/qtbase/include/QtCore/5.8.0/QtCore \
- INCLUDEPATH+=$(QT5_CONTRIB_DIR)/qtbase/include/QtXml \
- INCLUDEPATH+=$(QT5_CONTRIB_DIR)/qtbase/include/QtXml/5.8.0/QtXml \
- -after DESTDIR= \
- -after "LIBS+=-lQtBootstrap -L../bootstrap" \
- $^
-
-vpath bootstrap.pro $(QT5_CONTRIB_DIR)/qtbase/src/tools/bootstrap
-vpath moc.pro $(QT5_CONTRIB_DIR)/qtbase/src/tools/moc
-vpath rcc.pro $(QT5_CONTRIB_DIR)/qtbase/src/tools/rcc
-vpath uic.pro $(QT5_CONTRIB_DIR)/qtbase/src/tools/uic
diff --git a/repos/libports/lib/mk/qt5_host_tools.mk b/repos/libports/lib/mk/qt5_host_tools.mk
deleted file mode 100644
index 706dfd2ec..000000000
--- a/repos/libports/lib/mk/qt5_host_tools.mk
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# Build the Qt5 host tools
-#
-
-include $(REP_DIR)/lib/mk/qt5_version.inc
-
-QT5_PORT_DIR := $(call select_from_ports,qt5)
-QT5_CONTRIB_DIR := $(QT5_PORT_DIR)/src/lib/qt5/$(QT5)
-
-QT5_TOOL_DIR := $(BUILD_BASE_DIR)/tool/qt5
-QMAKE_DIR := $(QT5_TOOL_DIR)/qmake
-MOC_DIR := $(QT5_TOOL_DIR)/moc
-RCC_DIR := $(QT5_TOOL_DIR)/rcc
-UIC_DIR := $(QT5_TOOL_DIR)/uic
-
-HOST_TOOLS += $(QMAKE_DIR)/bin/qmake $(MOC_DIR)/moc $(RCC_DIR)/rcc $(UIC_DIR)/uic
-
-$(QMAKE_DIR)/bin/qmake:
- $(VERBOSE)mkdir -p $(QMAKE_DIR)/bin
- $(VERBOSE)QT5_CONTRIB_DIR=$(QT5_CONTRIB_DIR) $(MAKE) -C $(QMAKE_DIR) -f $(REP_DIR)/lib/mk/qt5_host_tools_qmake.inc
-
-# parallel build failed sporadically for unknown reason, so building of the tools is serialized for now
-
-$(MOC_DIR)/moc: $(QMAKE_DIR)/bin/qmake
- $(VERBOSE)QT5_CONTRIB_DIR=$(QT5_CONTRIB_DIR) $(MAKE) -C $(QT5_TOOL_DIR) -f $(REP_DIR)/lib/mk/qt5_host_tools.inc moc/moc
-
-$(RCC_DIR)/rcc: $(QMAKE_DIR)/bin/qmake $(MOC_DIR)/moc
- $(VERBOSE)QT5_CONTRIB_DIR=$(QT5_CONTRIB_DIR) $(MAKE) -C $(QT5_TOOL_DIR) -f $(REP_DIR)/lib/mk/qt5_host_tools.inc rcc/rcc
-
-$(UIC_DIR)/uic: $(QMAKE_DIR)/bin/qmake $(RCC_DIR)/rcc
- $(VERBOSE)QT5_CONTRIB_DIR=$(QT5_CONTRIB_DIR) $(MAKE) -C $(QT5_TOOL_DIR) -f $(REP_DIR)/lib/mk/qt5_host_tools.inc uic/uic
-
-CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_host_tools_qmake.inc b/repos/libports/lib/mk/qt5_host_tools_qmake.inc
deleted file mode 100644
index 4a692242d..000000000
--- a/repos/libports/lib/mk/qt5_host_tools_qmake.inc
+++ /dev/null
@@ -1,53 +0,0 @@
-#
-# \brief Makefile for building QMake for Genode
-# \author Christian Prochaska
-# \author Norman Feske
-# \date 2013-03-27
-#
-# This file is based on the generated Makefile created by qt5's configure script.
-#
-# Input variables:
-# - QT5_CONTRIB_DIR
-#
-
-########################################################################
-## This file was autogenerated by configure, all changes will be lost ##
-########################################################################
-CC = gcc
-CXX = g++
-QMAKE_CXXFLAGS = -pipe
-QMAKE_CXXFLAGS_CXX11 = -std=c++11
-QMAKE_CXXFLAGS_SPLIT_SECTIONS = -ffunction-sections
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections
-QMAKE_CXXFLAGS_DEBUG = -g
-BUILD_PATH = .
-SOURCE_PATH = $(QT5_CONTRIB_DIR)/qtbase
-INC_PATH = $(SOURCE_PATH)/include
-QMAKESPEC = $(SOURCE_PATH)/mkspecs/linux-g++
-QT_VERSION = 5.8.0
-QT_MAJOR_VERSION = 5
-QT_MINOR_VERSION = 8
-QT_PATCH_VERSION = 0
-CONFIG_CXXFLAGS = $(QMAKE_CXXFLAGS) $(QMAKE_CXXFLAGS_CXX11) $(QMAKE_CXXFLAGS_SPLIT_SECTIONS) $(QMAKE_CXXFLAGS_DEBUG)
-CONFIG_LFLAGS = $(QMAKE_LFLAGS) $(QMAKE_LFLAGS_GCSECTIONS)
-RM_F = rm -f
-RM_RF = rm -rf
-EXEEXT =
-QTOBJS = \
- qfilesystemengine_unix.o \
- qfilesystemiterator_unix.o \
- qfsfileengine_unix.o \
- qlocale_unix.o
-QTSRCS = \
- $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp \
- $(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_unix.cpp \
- $(SOURCE_PATH)/src/corelib/io/qfsfileengine_unix.cpp \
- $(SOURCE_PATH)/src/corelib/tools/qlocale_unix.cpp
-
-QMKSRC = $(SOURCE_PATH)/qmake
-QMKLIBSRC = $(QMKSRC)/library
-QMKGENSRC = $(QMKSRC)/generators
-EXTRA_CPPFLAGS = -DQMAKE_OPENSOURCE_EDITION
-
-include $(QT5_CONTRIB_DIR)/qtbase/qmake/Makefile.unix
diff --git a/repos/libports/lib/mk/qt5_jscore.mk b/repos/libports/lib/mk/qt5_jscore.mk
index 5743d2efd..55830128f 100644
--- a/repos/libports/lib/mk/qt5_jscore.mk
+++ b/repos/libports/lib/mk/qt5_jscore.mk
@@ -1,4 +1,4 @@
-include $(REP_DIR)/lib/import/import-qt5_jscore.mk
+include $(call select_from_repositories,lib/import/import-qt5_jscore.mk)
SHARED_LIB = yes
@@ -11,58 +11,10 @@ CC_CXX_OPT += -D_GLIBCXX_USE_C99_MATH
# use default warning level to avoid noise when compiling contrib code
CC_WARN =
-#
-# Generated files
-#
-# some of the following lines have been extracted from the console output
-# of the 'configure' script (with modifications), that's why they can be
-# quite long
-#
-
-ifneq ($(call select_from_ports,qt5),)
-all: $(QT5_PORT_DIR)/src/lib/qt5/qtwebkit/Source/JavaScriptCore/generated/generated.tag
-endif
-
-JAVASCRIPTCORE_DIR = $(QT5_CONTRIB_DIR)/qtwebkit/Source/JavaScriptCore
-
-$(QT5_PORT_DIR)/src/lib/qt5/qtwebkit/Source/JavaScriptCore/generated/generated.tag:
-
- $(VERBOSE)mkdir -p $(dir $@)
-
- @# create_hash_table
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/ArrayConstructor.cpp -i > $(dir $@)/ArrayConstructor.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/ArrayPrototype.cpp -i > $(dir $@)/ArrayPrototype.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/BooleanPrototype.cpp -i > $(dir $@)/BooleanPrototype.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/DateConstructor.cpp -i > $(dir $@)/DateConstructor.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/DatePrototype.cpp -i > $(dir $@)/DatePrototype.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/ErrorPrototype.cpp -i > $(dir $@)/ErrorPrototype.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/JSGlobalObject.cpp -i > $(dir $@)/JSGlobalObject.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/JSONObject.cpp -i > $(dir $@)/JSONObject.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/MathObject.cpp -i > $(dir $@)/MathObject.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/NamePrototype.cpp -i > $(dir $@)/NamePrototype.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/NumberConstructor.cpp -i > $(dir $@)/NumberConstructor.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/NumberPrototype.cpp -i > $(dir $@)/NumberPrototype.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/ObjectConstructor.cpp -i > $(dir $@)/ObjectConstructor.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/RegExpConstructor.cpp -i > $(dir $@)/RegExpConstructor.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/RegExpObject.cpp -i > $(dir $@)/RegExpObject.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/RegExpPrototype.cpp -i > $(dir $@)/RegExpPrototype.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/StringConstructor.cpp -i > $(dir $@)/StringConstructor.lut.h
- $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/parser/Keywords.table -i > $(dir $@)/Lexer.lut.h
-
- @# create_regex_tables
- $(VERBOSE)python $(JAVASCRIPTCORE_DIR)/create_regex_tables > $(dir $@)/RegExpJitTables.h
-
- @# KeywordLookupGenerator.py
- $(VERBOSE)python $(JAVASCRIPTCORE_DIR)/KeywordLookupGenerator.py $(JAVASCRIPTCORE_DIR)/parser/Keywords.table > $(dir $@)/KeywordLookup.h
-
- $(VERBOSE)touch $@
-
-
include $(REP_DIR)/lib/mk/qt5_jscore_generated.inc
QT_INCPATH += qtwebkit/Source/JavaScriptCore/generated
-
include $(REP_DIR)/lib/mk/qt5.inc
LIBS += qt5_network qt5_core icu pthread libc libm
diff --git a/repos/libports/lib/mk/qt5_network.mk b/repos/libports/lib/mk/qt5_network.mk
index 8bbd9235b..54ed5a58c 100644
--- a/repos/libports/lib/mk/qt5_network.mk
+++ b/repos/libports/lib/mk/qt5_network.mk
@@ -1,4 +1,4 @@
-include $(REP_DIR)/lib/import/import-qt5_network.mk
+include $(call select_from_repositories,lib/import/import-qt5_network.mk)
SHARED_LIB = yes
@@ -22,10 +22,7 @@ COMPILER_MOC_SOURCE_MAKE_ALL_FILES_FILTER_OUT = \
include $(REP_DIR)/lib/mk/qt5.inc
-INC_DIR += $(QT5_CONTRIB_DIR)/qtbase/include/QtNetwork/$(QT_VERSION) \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtNetwork/$(QT_VERSION)/QtNetwork \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtCore/$(QT_VERSION) \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtCore/$(QT_VERSION)/QtCore
+QT5_INC_DIR += $(QT5_CONTRIB_DIR)/qtbase/src/network/access
LIBS += qt5_core zlib libc libssl
diff --git a/repos/libports/lib/mk/qt5_opengl.mk b/repos/libports/lib/mk/qt5_opengl.mk
index 40dc092a9..ffe567e29 100644
--- a/repos/libports/lib/mk/qt5_opengl.mk
+++ b/repos/libports/lib/mk/qt5_opengl.mk
@@ -1,4 +1,4 @@
-include $(REP_DIR)/lib/import/import-qt5_xml.mk
+include $(call select_from_repositories,lib/import/import-qt5_opengl.mk)
SHARED_LIB = yes
@@ -6,6 +6,6 @@ include $(REP_DIR)/lib/mk/qt5_opengl_generated.inc
include $(REP_DIR)/lib/mk/qt5.inc
-LIBS += qt5_gui
+LIBS += qt5_core qt5_gui qt5_widgets
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_printsupport.mk b/repos/libports/lib/mk/qt5_printsupport.mk
index b67fe406c..e7f1d7fb0 100644
--- a/repos/libports/lib/mk/qt5_printsupport.mk
+++ b/repos/libports/lib/mk/qt5_printsupport.mk
@@ -1,4 +1,4 @@
-include $(REP_DIR)/lib/import/import-qt5_printsupport.mk
+include $(call select_from_repositories,lib/import/import-qt5_printsupport.mk)
SHARED_LIB = yes
@@ -20,11 +20,6 @@ qprintdialog_unix.o: ui_qprintwidget.h
include $(REP_DIR)/lib/mk/qt5.inc
-INC_DIR += $(QT5_CONTRIB_DIR)/qtbase/include/QtPrintSupport/$(QT_VERSION)/QtPrintSupport \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtWidgets/$(QT_VERSION)/QtWidgets \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtGui/$(QT_VERSION)/QtGui \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtCore/$(QT_VERSION)/QtCore \
-
-LIBS += qt5_gui
+LIBS += qt5_core qt5_gui qt5_widgets
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_qjpeg.mk b/repos/libports/lib/mk/qt5_qjpeg.mk
index f0a2a86bd..7571f664a 100644
--- a/repos/libports/lib/mk/qt5_qjpeg.mk
+++ b/repos/libports/lib/mk/qt5_qjpeg.mk
@@ -1,17 +1,15 @@
-include $(REP_DIR)/lib/import/import-qt5_qjpeg.mk
+include $(call select_from_repositories,lib/import/import-qt5_qjpeg.mk)
+
+SHARED_LIB = yes
SRC_CC = main.cpp \
moc_main.cpp \
qjpeghandler.cpp \
import_plugin.cc
-INC_DIR += $(QT5_CONTRIB_DIR)/qtbase/src/plugins/imageformats/jpeg \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtGui/$(QT_VERSION)/QtGui \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtGui/$(QT_VERSION) \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtCore/$(QT_VERSION)/QtCore \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtCore/$(QT_VERSION)
+INC_DIR += $(QT5_CONTRIB_DIR)/qtbase/src/plugins/imageformats/jpeg
-LIBS += qt5_gui qt5_core jpeg
+LIBS += qt5_gui qt5_core libc jpeg
vpath % $(REP_DIR)/src/lib/qt5/qtbase/src/plugins/imageformats/jpeg
vpath % $(QT5_CONTRIB_DIR)/qtbase/src/plugins/imageformats/jpeg
diff --git a/repos/libports/lib/mk/qt5_qml.mk b/repos/libports/lib/mk/qt5_qml.mk
index e40c0f656..6df2d42a7 100644
--- a/repos/libports/lib/mk/qt5_qml.mk
+++ b/repos/libports/lib/mk/qt5_qml.mk
@@ -1,22 +1,7 @@
-include $(REP_DIR)/lib/import/import-qt5_qml.mk
+include $(call select_from_repositories,lib/import/import-qt5_qml.mk)
SHARED_LIB = yes
-ifneq ($(call select_from_ports,qt5),)
-all: $(QT5_PORT_DIR)/src/lib/qt5/qtdeclarative/src/3rdparty/masm/generated.tag
-endif
-
-# make the 'HOST_TOOLS' variable known
-include $(REP_DIR)/lib/mk/qt5_host_tools.mk
-
-$(QT5_PORT_DIR)/src/lib/qt5/qtdeclarative/src/3rdparty/masm/generated.tag: $(HOST_TOOLS)
-
- $(VERBOSE)mkdir -p $(dir $@)
-
- python $(QT5_CONTRIB_DIR)/qtdeclarative/src/3rdparty/masm/create_regex_tables > $(dir $@)/RegExpJitTables.h
-
- $(VERBOSE)touch $@
-
include $(REP_DIR)/lib/mk/qt5_qml_generated.inc
# remove unneeded files to prevent moc warnings
diff --git a/repos/libports/lib/mk/qt5_qmlfolderlistmodelplugin.mk b/repos/libports/lib/mk/qt5_qmlfolderlistmodelplugin.mk
index 87ff5dda0..fc91ebd79 100644
--- a/repos/libports/lib/mk/qt5_qmlfolderlistmodelplugin.mk
+++ b/repos/libports/lib/mk/qt5_qmlfolderlistmodelplugin.mk
@@ -1,4 +1,6 @@
-include $(REP_DIR)/lib/import/import-qt5_qmlfolderlistmodelplugin.mk
+IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
+
+include $(IMPORT_QT5_INC)
SHARED_LIB = yes
@@ -8,35 +10,36 @@ QT_DEFINES += -UQT_STATICPLUGIN
include $(REP_DIR)/lib/mk/qt5.inc
-LIBS += qt5_qml
+LIBS += qt5_core qt5_gui qt5_qml qt5_quick
-# install the QtQuick QML plugin
+# install the QML plugin
-QTQUICK_INSTALL_DIR := $(BUILD_BASE_DIR)/bin/qt5_fs/qt/qml/Qt/labs/folderlistmodel
-QTQUICK_QMLDIR := $(QTQUICK_INSTALL_DIR)/qmldir
-QTQUICK_PLUGIN_NAME := qt5_qmlfolderlistmodelplugin.lib.so
-QTQUICK_PLUGIN := $(QTQUICK_INSTALL_DIR)/$(QTQUICK_PLUGIN_NAME)
+QML_PLUGIN_NAME := qt5_qmlfolderlistmodelplugin
+QML_INSTALL_DIR := qt/qml/Qt/labs/folderlistmodel
-$(QTQUICK_INSTALL_DIR):
+QML_PLUGIN := $(QML_INSTALL_DIR)/$(QML_PLUGIN_NAME).lib.so
+TAR_ARCHIVE := $(BUILD_BASE_DIR)/bin/$(QML_PLUGIN_NAME).tar
+
+$(QML_INSTALL_DIR):
$(VERBOSE)mkdir -p $@
-$(QTQUICK_QMLDIR): $(QTQUICK_INSTALL_DIR)
- $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtdeclarative/src/imports/folderlistmodel/qmldir $(QTQUICK_INSTALL_DIR)
+$(QML_PLUGIN): $(QML_INSTALL_DIR) $(QML_PLUGIN_NAME).lib.so.stripped
+ $(VERBOSE)cp $(QML_PLUGIN_NAME).lib.so.stripped $@
-$(QTQUICK_PLUGIN): $(QTQUICK_INSTALL_DIR)
- $(VERBOSE)ln -sf $(BUILD_BASE_DIR)/bin/$(QTQUICK_PLUGIN_NAME) $(QTQUICK_INSTALL_DIR)/$(QTQUICK_PLUGIN_NAME)
+$(TAR_ARCHIVE): $(QML_PLUGIN)
+ $(VERBOSE)tar cf $@ qt
ifneq ($(call select_from_ports,qt5),)
-all: $(QTQUICK_QMLDIR) $(QTQUICK_PLUGIN)
+$(QML_PLUGIN_NAME).lib.tag: $(TAR_ARCHIVE)
endif
#
# unfortunately, these clean rules don't trigger
#
-clean-qtquick_install_dir:
- rm -rf $(QTQUICK_INSTALL_DIR)
+clean-tar_archive:
+ rm -rf $(TAR_ARCHIVE)
-clean: clean-qtquick_install_dir
+clean: clean-tar_archive
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_qnitpickerviewwidget.mk b/repos/libports/lib/mk/qt5_qnitpickerviewwidget.mk
index 6ab6de2b2..6d387afa2 100644
--- a/repos/libports/lib/mk/qt5_qnitpickerviewwidget.mk
+++ b/repos/libports/lib/mk/qt5_qnitpickerviewwidget.mk
@@ -1,12 +1,14 @@
+include $(call select_from_repositories,lib/import/import-qt5_qnitpickerviewwidget.mk)
+
SHARED_LIB = yes
SRC_CC = qnitpickerviewwidget.cpp
HEADERS += qnitpickerviewwidget.h
-vpath %.h $(REP_DIR)/include/qt5/qnitpickerviewwidget
+vpath %.h $(call select_from_repositories,include/qt5/qnitpickerviewwidget)
vpath %.cpp $(REP_DIR)/src/lib/qt5/qnitpickerviewwidget
-LIBS += qt5_gui qt5_widgets qt5_core libc qt5_qpa_nitpicker qoost
+LIBS += libc qoost qt5_core qt5_gui qt5_qpa_nitpicker qt5_widgets
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_qpa_nitpicker.mk b/repos/libports/lib/mk/qt5_qpa_nitpicker.mk
index 329cb30e8..6161dc92f 100644
--- a/repos/libports/lib/mk/qt5_qpa_nitpicker.mk
+++ b/repos/libports/lib/mk/qt5_qpa_nitpicker.mk
@@ -1,13 +1,13 @@
-include $(REP_DIR)/lib/import/import-qt5_qpa_nitpicker.mk
+include $(call select_from_repositories,lib/import/import-qt5_qpa_nitpicker.mk)
-# get the correct harfbuzz header included
-QT_DEFINES += -DQT_BUILD_GUI_LIB
+SHARED_LIB = yes
SRC_CC = qgenericunixeventdispatcher.cpp \
qunixeventdispatcher.cpp \
qbasicfontdatabase.cpp \
qfontengine_ft.cpp \
- qeglconvenience.cpp
+ qeglconvenience.cpp \
+ moc_qunixeventdispatcher_qpa_p.cpp
SRC_CC += main.cpp \
qgenodeclipboard.cpp \
@@ -20,25 +20,37 @@ SRC_CC += main.cpp \
moc_qnitpickerplatformwindow.cpp \
moc_qnitpickerwindowsurface.cpp \
moc_qnitpickerintegrationplugin.cpp \
- qevdevkeyboardhandler.cpp \
- moc_qunixeventdispatcher_qpa_p.cpp \
- moc_qevdevkeyboardhandler_p.cpp \
moc_qsignalhandlerthread.cpp
-INC_DIR += $(QT5_CONTRIB_DIR)/qtbase/src/platformsupport/eventdispatchers \
- $(QT5_CONTRIB_DIR)/qtbase/src/platformsupport/fontdatabases/basic \
- $(QT5_CONTRIB_DIR)/qtbase/src/3rdparty/harfbuzz/src \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtEglSupport/$(QT_VERSION) \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtGui/$(QT_VERSION) \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtCore/$(QT_VERSION) \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtCore/$(QT_VERSION)/QtCore
+ifeq ($(CONTRIB_DIR),)
-LIBS += qt5_xml qt5_gui qt5_core libm freetype mesa egl qoost
+INC_DIR += $(call select_from_repositories,include/QtEglSupport/$(QT_VERSION)) \
+ $(call select_from_repositories,include/QtEglSupport/$(QT_VERSION)/QtEglSupport/private) \
+ $(call select_from_repositories,include/QtEventDispatcherSupport/$(QT_VERSION)) \
+ $(call select_from_repositories,include/QtEventDispatcherSupport/$(QT_VERSION)/QtEventDispatcherSupport/private) \
+ $(call select_from_repositories,include/QtFontDatabaseSupport/$(QT_VERSION)) \
+ $(call select_from_repositories,include/QtFontDatabaseSupport/$(QT_VERSION)/QtFontDatabaseSupport/private) \
+ $(call select_from_repositories,include/QtInputSupport/$(QT_VERSION)/QtInputSupport/private)
+
+vpath qunixeventdispatcher_qpa_p.h $(call select_from_repositories,include/QtEventDispatcherSupport/$(QT_VERSION)/QtEventDispatcherSupport/private)
+vpath qnitpickerplatformwindow.h $(call select_from_repositories,include/qt5/qpa_nitpicker)
+
+else
+
+INC_DIR += $(QT5_PORT_DIR)/include/QtEglSupport/$(QT_VERSION) \
+ $(QT5_PORT_DIR)/include/QtEventDispatcherSupport/$(QT_VERSION) \
+ $(QT5_PORT_DIR)/include/QtFontDatabaseSupport/$(QT_VERSION) \
+ $(QT5_PORT_DIR)/include/QtInputSupport/$(QT_VERSION)
+
+vpath %.h $(REP_DIR)/include/qt5/qpa_nitpicker
+
+endif
+
+LIBS += qt5_gui qt5_core qoost egl freetype libc
-vpath % $(QT5_CONTRIB_DIR)/qtbase/src/platformsupport/eventdispatchers
-vpath % $(QT5_CONTRIB_DIR)/qtbase/src/platformsupport/input/evdevkeyboard
-vpath % $(QT5_CONTRIB_DIR)/qtbase/src/platformsupport/fontdatabases/basic
vpath % $(QT5_CONTRIB_DIR)/qtbase/src/platformsupport/eglconvenience
+vpath % $(QT5_CONTRIB_DIR)/qtbase/src/platformsupport/eventdispatchers
+vpath % $(QT5_CONTRIB_DIR)/qtbase/src/platformsupport/fontdatabases/basic
vpath % $(QT5_CONTRIB_DIR)/qtbase/src/gui/text
vpath % $(REP_DIR)/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker
diff --git a/repos/libports/lib/mk/qt5_qpluginwidget.mk b/repos/libports/lib/mk/qt5_qpluginwidget.mk
index 05dc723da..a6fe4bcb9 100644
--- a/repos/libports/lib/mk/qt5_qpluginwidget.mk
+++ b/repos/libports/lib/mk/qt5_qpluginwidget.mk
@@ -1,12 +1,14 @@
+include $(call select_from_repositories,lib/import/import-qt5_qpluginwidget.mk)
+
SHARED_LIB = yes
SRC_CC = qpluginwidget.cpp
HEADERS += qpluginwidget.h
-vpath %.h $(REP_DIR)/include/qt5/qpluginwidget
+vpath %.h $(call select_from_repositories,include/qt5/qpluginwidget)
vpath %.cpp $(REP_DIR)/src/lib/qt5/qpluginwidget
-LIBS += qt5_gui qt5_widgets qt5_network qt5_qnitpickerviewwidget qt5_core qt5_qpa_nitpicker libc qoost zlib
+LIBS += libc qoost qt5_core qt5_gui qt5_network qt5_qnitpickerviewwidget qt5_qpa_nitpicker qt5_widgets zlib
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_qquicklayoutsplugin.mk b/repos/libports/lib/mk/qt5_qquicklayoutsplugin.mk
index eb9944ed9..27055aa3a 100644
--- a/repos/libports/lib/mk/qt5_qquicklayoutsplugin.mk
+++ b/repos/libports/lib/mk/qt5_qquicklayoutsplugin.mk
@@ -1,4 +1,6 @@
-include $(REP_DIR)/lib/import/import-qt5_qquicklayoutsplugin.mk
+IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
+
+include $(IMPORT_QT5_INC)
SHARED_LIB = yes
@@ -8,35 +10,36 @@ QT_DEFINES += -UQT_STATICPLUGIN
include $(REP_DIR)/lib/mk/qt5.inc
-LIBS += qt5_qml mesa
+LIBS += qt5_core qt5_gui qt5_qml qt5_quick
-# install the QtQuick QML plugin
+# install the QML plugin
-QTQUICK_INSTALL_DIR := $(BUILD_BASE_DIR)/bin/qt5_fs/qt/qml/QtQuick/Layouts
-QTQUICK_QMLDIR := $(QTQUICK_INSTALL_DIR)/qmldir
-QTQUICK_PLUGIN_NAME := qt5_qquicklayoutsplugin.lib.so
-QTQUICK_PLUGIN := $(QTQUICK_INSTALL_DIR)/$(QTQUICK_PLUGIN_NAME)
+QML_PLUGIN_NAME := qt5_qquicklayoutsplugin
+QML_INSTALL_DIR := qt/qml/QtQuick/Layouts
-$(QTQUICK_INSTALL_DIR):
+QML_PLUGIN := $(QML_INSTALL_DIR)/$(QML_PLUGIN_NAME).lib.so
+TAR_ARCHIVE := $(BUILD_BASE_DIR)/bin/$(QML_PLUGIN_NAME).tar
+
+$(QML_INSTALL_DIR):
$(VERBOSE)mkdir -p $@
-$(QTQUICK_QMLDIR): $(QTQUICK_INSTALL_DIR)
- $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtdeclarative/src/imports/layouts/qmldir $(QTQUICK_INSTALL_DIR)
+$(QML_PLUGIN): $(QML_INSTALL_DIR) $(QML_PLUGIN_NAME).lib.so.stripped
+ $(VERBOSE)cp $(QML_PLUGIN_NAME).lib.so.stripped $@
-$(QTQUICK_PLUGIN): $(QTQUICK_INSTALL_DIR)
- $(VERBOSE)ln -sf $(BUILD_BASE_DIR)/bin/$(QTQUICK_PLUGIN_NAME) $(QTQUICK_INSTALL_DIR)/$(QTQUICK_PLUGIN_NAME)
+$(TAR_ARCHIVE): $(QML_PLUGIN)
+ $(VERBOSE)tar cf $@ qt
ifneq ($(call select_from_ports,qt5),)
-all: $(QTQUICK_QMLDIR) $(QTQUICK_PLUGIN)
+$(QML_PLUGIN_NAME).lib.tag: $(TAR_ARCHIVE)
endif
#
# unfortunately, these clean rules don't trigger
#
-clean-qtquick_install_dir:
- rm -rf $(QTQUICK_INSTALL_DIR)
+clean-tar_archive:
+ rm -rf $(TAR_ARCHIVE)
-clean: clean-qtquick_install_dir
+clean: clean-tar_archive
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_qtquick2plugin.mk b/repos/libports/lib/mk/qt5_qtquick2plugin.mk
index 481fed33a..de2237f71 100644
--- a/repos/libports/lib/mk/qt5_qtquick2plugin.mk
+++ b/repos/libports/lib/mk/qt5_qtquick2plugin.mk
@@ -1,4 +1,6 @@
-include $(REP_DIR)/lib/import/import-qt5_qtquick2plugin.mk
+IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
+
+include $(IMPORT_QT5_INC)
SHARED_LIB = yes
@@ -8,35 +10,36 @@ QT_DEFINES += -UQT_STATICPLUGIN
include $(REP_DIR)/lib/mk/qt5.inc
-LIBS += qt5_qml
+LIBS += qt5_core qt5_gui qt5_qml qt5_quick
-# install the QtQuick QML plugin
+# install the QML plugin
-QTQUICK_INSTALL_DIR := $(BUILD_BASE_DIR)/bin/qt5_fs/qt/qml/QtQuick.2
-QTQUICK_QMLDIR := $(QTQUICK_INSTALL_DIR)/qmldir
-QTQUICK_PLUGIN_NAME := qt5_qtquick2plugin.lib.so
-QTQUICK_PLUGIN := $(QTQUICK_INSTALL_DIR)/$(QTQUICK_PLUGIN_NAME)
+QML_PLUGIN_NAME := qt5_qtquick2plugin
+QML_INSTALL_DIR := qt/qml/QtQuick.2
-$(QTQUICK_INSTALL_DIR):
+QML_PLUGIN := $(QML_INSTALL_DIR)/$(QML_PLUGIN_NAME).lib.so
+TAR_ARCHIVE := $(BUILD_BASE_DIR)/bin/$(QML_PLUGIN_NAME).tar
+
+$(QML_INSTALL_DIR):
$(VERBOSE)mkdir -p $@
-$(QTQUICK_QMLDIR): $(QTQUICK_INSTALL_DIR)
- $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtdeclarative/src/imports/qtquick2/qmldir $(QTQUICK_INSTALL_DIR)
+$(QML_PLUGIN): $(QML_INSTALL_DIR) $(QML_PLUGIN_NAME).lib.so.stripped
+ $(VERBOSE)cp $(QML_PLUGIN_NAME).lib.so.stripped $@
-$(QTQUICK_PLUGIN): $(QTQUICK_INSTALL_DIR)
- $(VERBOSE)ln -sf $(BUILD_BASE_DIR)/bin/$(QTQUICK_PLUGIN_NAME) $(QTQUICK_INSTALL_DIR)/$(QTQUICK_PLUGIN_NAME)
+$(TAR_ARCHIVE): $(QML_PLUGIN)
+ $(VERBOSE)tar cf $@ qt
ifneq ($(call select_from_ports,qt5),)
-all: $(QTQUICK_QMLDIR) $(QTQUICK_PLUGIN)
+$(QML_PLUGIN_NAME).lib.tag: $(TAR_ARCHIVE)
endif
#
# unfortunately, these clean rules don't trigger
#
-clean-qtquick_install_dir:
- rm -rf $(QTQUICK_INSTALL_DIR)
+clean-tar_archive:
+ rm -rf $(TAR_ARCHIVE)
-clean: clean-qtquick_install_dir
+clean: clean-tar_archive
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_qtvirtualkeyboardplugin.mk b/repos/libports/lib/mk/qt5_qtvirtualkeyboardplugin.mk
index 5543332d7..b68a9c81d 100644
--- a/repos/libports/lib/mk/qt5_qtvirtualkeyboardplugin.mk
+++ b/repos/libports/lib/mk/qt5_qtvirtualkeyboardplugin.mk
@@ -1,4 +1,6 @@
-include $(REP_DIR)/lib/import/import-qt5_qtvirtualkeyboardplugin.mk
+IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
+
+include $(IMPORT_QT5_INC)
SHARED_LIB = yes
@@ -8,21 +10,14 @@ QT_DEFINES += -UQT_STATICPLUGIN
include $(REP_DIR)/lib/mk/qt5.inc
-LIBS += qt5_qml qt5_quick qt5_svg qt5_qtvirtualkeyboardstylesplugin qt5_qquicklayoutsplugin qt5_qmlfolderlistmodelplugin mesa
+LIBS += qt5_core qt5_gui qt5_qml qt5_quick qt5_svg
-# install the QtQuick QML plugin
+# install the Qt plugin
-QT_PLUGIN_INSTALL_DIR := $(BUILD_BASE_DIR)/bin/qt5_fs/qt/plugins/platforminputcontexts
-QT_PLUGIN_NAME := qt5_qtvirtualkeyboardplugin.lib.so
-QT_PLUGIN := $(QT_PLUGIN_INSTALL_DIR)/$(QT_PLUGIN_NAME)
-QTQUICK_INSTALL_DIR := $(BUILD_BASE_DIR)/bin/qt5_fs/qt/qml/QtQuick/VirtualKeyboard
-QTQUICK_QMLDIR := $(QTQUICK_INSTALL_DIR)/qmldir
-
-QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
-QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)
-include $(QT5_REP_DIR)/lib/mk/qt5_version.inc
-
-QT5_CONTRIB_DIR := $(call select_from_ports,qt5)/src/lib/qt5/$(QT5)
+QT_PLUGIN_NAME := qt5_qtvirtualkeyboardplugin
+QT_PLUGIN_INSTALL_DIR := qt/plugins/platforminputcontexts
+QT_PLUGIN := $(QT_PLUGIN_INSTALL_DIR)/$(QT_PLUGIN_NAME).lib.so
+TAR_ARCHIVE := $(BUILD_BASE_DIR)/bin/$(QT_PLUGIN_NAME).tar
vpath % $(QT5_CONTRIB_DIR)/qtvirtualkeyboard/src/virtualkeyboard/content
vpath % $(QT5_CONTRIB_DIR)/qtvirtualkeyboard/src/virtualkeyboard/content/styles/retro
@@ -31,29 +26,24 @@ vpath % $(QT5_CONTRIB_DIR)/qtvirtualkeyboard/src/virtualkeyboard/content/styles/
$(QTQUICK_INSTALL_DIR):
$(VERBOSE)mkdir -p $@
-$(STYLES_INSTALL_DIR):
- $(VERBOSE)mkdir -p $@
-
-$(QTQUICK_QMLDIR): $(QTQUICK_INSTALL_DIR)
- $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtvirtualkeyboard/src/virtualkeyboard/import/qmldir $(QTQUICK_INSTALL_DIR)
-
$(QT_PLUGIN_INSTALL_DIR):
$(VERBOSE)mkdir -p $@
-$(QT_PLUGIN): $(QT_PLUGIN_INSTALL_DIR)
- $(VERBOSE)ln -sf $(BUILD_BASE_DIR)/bin/$(QT_PLUGIN_NAME) $(QT_PLUGIN_INSTALL_DIR)/$(QT_PLUGIN_NAME)
+$(QT_PLUGIN): $(QT_PLUGIN_INSTALL_DIR) $(QT_PLUGIN_NAME).lib.so.stripped
+ $(VERBOSE)cp $(QT_PLUGIN_NAME).lib.so.stripped $@
-ifneq ($(call select_from_ports,qt5),)
-all: $(QT_PLUGIN) $(QTQUICK_QMLDIR) $(QTQUICK_PLUGIN)
-endif
+$(TAR_ARCHIVE): $(QT_PLUGIN)
+ $(VERBOSE)tar chf $@ qt
+
+$(QT_PLUGIN_NAME).lib.tag: $(TAR_ARCHIVE)
#
# unfortunately, these clean rules don't trigger
#
-clean-qtquick_install_dir:
- rm -rf $(QT_PLUGIN_INSTALL_DIR)
+clean-tar_archive:
+ rm -rf $(TAR_ARCHIVE)
-clean: clean-qtquick_install_dir
+clean: clean-tar_archive
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_qtvirtualkeyboardstylesplugin.mk b/repos/libports/lib/mk/qt5_qtvirtualkeyboardstylesplugin.mk
index 97eb752ff..26f9ecf1b 100644
--- a/repos/libports/lib/mk/qt5_qtvirtualkeyboardstylesplugin.mk
+++ b/repos/libports/lib/mk/qt5_qtvirtualkeyboardstylesplugin.mk
@@ -1,4 +1,6 @@
-include $(REP_DIR)/lib/import/import-qt5_qtvirtualkeyboardstylesplugin.mk
+IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
+
+include $(IMPORT_QT5_INC)
SHARED_LIB = yes
@@ -8,48 +10,36 @@ QT_DEFINES += -UQT_STATICPLUGIN
include $(REP_DIR)/lib/mk/qt5.inc
-LIBS += qt5_qml qt5_quick
+LIBS += qt5_gui qt5_qml qt5_quick qt5_svg
-# install the QtQuick QML plugin
+# install the QML plugin
-QT_PLUGIN_INSTALL_DIR := $(BUILD_BASE_DIR)/bin/qt5_fs/qt/qml/QtQuick/VirtualKeyboard/Styles
-QT_PLUGIN_NAME := qt5_qtvirtualkeyboardstylesplugin.lib.so
-QT_PLUGIN := $(QT_PLUGIN_INSTALL_DIR)/$(QT_PLUGIN_NAME)
-QTQUICK_INSTALL_DIR := $(BUILD_BASE_DIR)/bin/qt5_fs/qt/qml/QtQuick/VirtualKeyboard/Styles
-QTQUICK_QMLDIR := $(QTQUICK_INSTALL_DIR)/qmldir
+QML_PLUGIN_NAME := qt5_qtvirtualkeyboardstylesplugin
+QML_INSTALL_DIR := qt/qml/QtQuick/VirtualKeyboard/Styles
-QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
-QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)
-include $(QT5_REP_DIR)/lib/mk/qt5_version.inc
+QML_PLUGIN := $(QML_INSTALL_DIR)/$(QML_PLUGIN_NAME).lib.so
+TAR_ARCHIVE := $(BUILD_BASE_DIR)/bin/$(QML_PLUGIN_NAME).tar
-QT5_CONTRIB_DIR := $(call select_from_ports,qt5)/src/lib/qt5/$(QT5)
-
-$(QTQUICK_INSTALL_DIR):
+$(QML_INSTALL_DIR):
$(VERBOSE)mkdir -p $@
-$(STYLES_INSTALL_DIR):
- $(VERBOSE)mkdir -p $@
+$(QML_PLUGIN): $(QML_INSTALL_DIR) $(QML_PLUGIN_NAME).lib.so.stripped
+ $(VERBOSE)cp $(QML_PLUGIN_NAME).lib.so.stripped $@
-$(QTQUICK_QMLDIR): $(QTQUICK_INSTALL_DIR)
- $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtvirtualkeyboard/src/virtualkeyboard/styles/qmldir $(QTQUICK_INSTALL_DIR)
-
-$(QT_PLUGIN_INSTALL_DIR):
- $(VERBOSE)mkdir -p $@
-
-$(QT_PLUGIN): $(QT_PLUGIN_INSTALL_DIR)
- $(VERBOSE)ln -sf $(BUILD_BASE_DIR)/bin/$(QT_PLUGIN_NAME) $(QT_PLUGIN_INSTALL_DIR)/$(QT_PLUGIN_NAME)
+$(TAR_ARCHIVE): $(QML_PLUGIN)
+ $(VERBOSE)tar cf $@ qt
ifneq ($(call select_from_ports,qt5),)
-all: $(QT_PLUGIN) $(QTQUICK_QMLDIR) $(QTQUICK_PLUGIN)
+$(QML_PLUGIN_NAME).lib.tag: $(TAR_ARCHIVE)
endif
#
# unfortunately, these clean rules don't trigger
#
-clean-qtquick_install_dir:
- rm -rf $(QT_PLUGIN_INSTALL_DIR)
+clean-tar_archive:
+ rm -rf $(TAR_ARCHIVE)
-clean: clean-qtquick_install_dir
+clean: clean-tar_archive
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_quick.mk b/repos/libports/lib/mk/qt5_quick.mk
index 5ef5c28f7..c623046f7 100644
--- a/repos/libports/lib/mk/qt5_quick.mk
+++ b/repos/libports/lib/mk/qt5_quick.mk
@@ -1,4 +1,4 @@
-include $(REP_DIR)/lib/import/import-qt5_quick.mk
+include $(call select_from_repositories,lib/import/import-qt5_quick.mk)
SHARED_LIB = yes
@@ -13,6 +13,6 @@ QT_INCPATH += qtdeclarative/src/quick/items
include $(REP_DIR)/lib/mk/qt5.inc
-LIBS += qt5_qml qt5_gui
+LIBS += qt5_core qt5_gui qt5_network qt5_qml
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_scriptclassic.mk b/repos/libports/lib/mk/qt5_scriptclassic.mk
index f1011d494..d721d5e07 100644
--- a/repos/libports/lib/mk/qt5_scriptclassic.mk
+++ b/repos/libports/lib/mk/qt5_scriptclassic.mk
@@ -1,4 +1,4 @@
-include $(REP_DIR)/lib/import/import-qt5_scriptclassic.mk
+include $(call select_from_repositories,lib/import/import-qt5_scriptclassic.mk)
SHARED_LIB = yes
@@ -9,7 +9,9 @@ include $(REP_DIR)/lib/mk/qt5_scriptclassic_generated.inc
include $(REP_DIR)/lib/mk/qt5.inc
-LIBS += qt5_core libc
+LIBS += libc qt5_core qt5_gui qt5_widgets
+
+INC_DIR += $(QT5_PORT_DIR)/src/lib/qt5/qtscriptclassic-1.0_1-opensource/src
vpath % $(QT5_PORT_DIR)/src/lib/qt5/qtscriptclassic-1.0_1-opensource/src
diff --git a/repos/libports/lib/mk/qt5_sql.mk b/repos/libports/lib/mk/qt5_sql.mk
index 59a31c525..0d5e1bdff 100644
--- a/repos/libports/lib/mk/qt5_sql.mk
+++ b/repos/libports/lib/mk/qt5_sql.mk
@@ -1,4 +1,4 @@
-include $(REP_DIR)/lib/import/import-qt5_sql.mk
+include $(call select_from_repositories,lib/import/import-qt5_sql.mk)
SHARED_LIB = yes
@@ -14,9 +14,6 @@ COMPILER_MOC_SOURCE_MAKE_ALL_FILES_FILTER_OUT = \
include $(REP_DIR)/lib/mk/qt5.inc
-INC_DIR += $(QT5_CONTRIB_DIR)/qtbase/include/QtSql/$(QT_VERSION)/QtSql \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtCore/$(QT_VERSION)/QtCore
-
LIBS += qt5_core
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_svg.mk b/repos/libports/lib/mk/qt5_svg.mk
index 7bb0eed2d..d98eef6e6 100644
--- a/repos/libports/lib/mk/qt5_svg.mk
+++ b/repos/libports/lib/mk/qt5_svg.mk
@@ -1,13 +1,11 @@
-include $(REP_DIR)/lib/import/import-qt5_svg.mk
+include $(call select_from_repositories,lib/import/import-qt5_svg.mk)
SHARED_LIB = yes
-LIBS += mesa zlib
+LIBS += qt5_core qt5_gui qt5_widgets zlib
include $(REP_DIR)/lib/mk/qt5_svg_generated.inc
include $(REP_DIR)/lib/mk/qt5.inc
-INC_DIR += $(QT5_CONTRIB_DIR)/qtsvg/include/QtSvg/$(QT_VERSION)/QtSvg \
-
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_ui_tools.mk b/repos/libports/lib/mk/qt5_ui_tools.mk
index 1c8a218e3..d257be4d0 100644
--- a/repos/libports/lib/mk/qt5_ui_tools.mk
+++ b/repos/libports/lib/mk/qt5_ui_tools.mk
@@ -1,4 +1,4 @@
-include $(REP_DIR)/lib/import/import-qt5_ui_tools.mk
+include $(call select_from_repositories,lib/import/import-qt5_ui_tools.mk)
SHARED_LIB = yes
@@ -14,6 +14,6 @@ COMPILER_MOC_SOURCE_MAKE_ALL_FILES_FILTER_OUT = \
include $(REP_DIR)/lib/mk/qt5.inc
-LIBS += qt5_gui
+LIBS += qt5_core qt5_gui qt5_widgets
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_version.inc b/repos/libports/lib/mk/qt5_version.inc
deleted file mode 100644
index d9d5342ee..000000000
--- a/repos/libports/lib/mk/qt5_version.inc
+++ /dev/null
@@ -1,2 +0,0 @@
-QT_VERSION := 5.8.0
-QT5 := qt-everywhere-opensource-src-$(QT_VERSION)
diff --git a/repos/libports/lib/mk/qt5_webcore.mk b/repos/libports/lib/mk/qt5_webcore.mk
index f8042fdc1..f2c18948d 100644
--- a/repos/libports/lib/mk/qt5_webcore.mk
+++ b/repos/libports/lib/mk/qt5_webcore.mk
@@ -1,4 +1,4 @@
-include $(REP_DIR)/lib/import/import-qt5_webcore.mk
+include $(call select_from_repositories,lib/import/import-qt5_webcore.mk)
SHARED_LIB = yes
@@ -16,102 +16,6 @@ CC_OPT_sqlite3 += -Wno-int-to-pointer-cast -Wno-pointer-to-int-cast
# make sure that the correct "Comment.h" file gets included
QT_INCPATH := qtwebkit/Source/WebCore/dom
-#
-# Generated files
-#
-# some of the following lines have been extracted from the console output
-# of the 'configure' script (with modifications), that's why they can be
-# quite long
-#
-
-ifneq ($(call select_from_ports,qt5),)
-all: $(QT5_PORT_DIR)/src/lib/qt5/qtwebkit/Source/WebCore/generated/generated.tag
-endif
-
-# command names used by some of the extracted generator commands
-DEL_FILE := rm
-MOVE := mv
-
-WEBCORE_DIR = $(QT5_CONTRIB_DIR)/qtwebkit/Source/WebCore
-
-DEFINES = "LANGUAGE_JAVASCRIPT=1 ENABLE_3D_RENDERING=1 ENABLE_ACCELERATED_2D_CANVAS=1 ENABLE_BLOB=1 ENABLE_CANVAS_PATH=1 ENABLE_CHANNEL_MESSAGING=1 ENABLE_CSS_BOX_DECORATION_BREAK=1 ENABLE_CSS_COMPOSITING=1 ENABLE_CSS_EXCLUSIONS=1 ENABLE_CSS_FILTERS=1 ENABLE_CSS_IMAGE_SET=1 ENABLE_CSS_REGIONS=1 ENABLE_CSS_SHAPES=1 ENABLE_CSS_STICKY_POSITION=1 ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED=1 ENABLE_DATALIST_ELEMENT=1 ENABLE_DETAILS_ELEMENT=1 ENABLE_DOWNLOAD_ATTRIBUTE=1 ENABLE_FAST_MOBILE_SCROLLING=1 ENABLE_FILTERS=1 ENABLE_FTPDIR=1 ENABLE_FULLSCREEN_API=1 ENABLE_GESTURE_EVENTS=1 ENABLE_ICONDATABASE=1 ENABLE_IFRAME_SEAMLESS=1 ENABLE_INPUT_TYPE_COLOR=1 ENABLE_INSPECTOR=1 ENABLE_INSPECTOR_SERVER=1 ENABLE_JAVASCRIPT_DEBUGGER=1 ENABLE_LEGACY_NOTIFICATIONS=1 ENABLE_LEGACY_VIEWPORT_ADAPTION=1 ENABLE_LEGACY_VENDOR_PREFIXES=1 ENABLE_LEGACY_WEB_AUDIO=1 ENABLE_LINK_PREFETCH=1 ENABLE_METER_ELEMENT=1 ENABLE_MHTML=1 ENABLE_NOTIFICATIONS=1 ENABLE_PAGE_VISIBILITY_API=1 ENABLE_PROGRESS_ELEMENT=1 ENABLE_RESOLUTION_MEDIA_QUERY=1 ENABLE_REQUEST_ANIMATION_FRAME=1 ENABLE_SHARED_WORKERS=1 ENABLE_SMOOTH_SCROLLING=1 ENABLE_SQL_DATABASE=1 ENABLE_SUBPIXEL_LAYOUT=1 ENABLE_SVG=1 ENABLE_SVG_FONTS=1 ENABLE_TOUCH_ADJUSTMENT=1 ENABLE_TOUCH_EVENTS=1 ENABLE_TOUCH_SLIDER=1 ENABLE_VIEW_MODE_CSS_MEDIA=1 ENABLE_WEB_SOCKETS=1 ENABLE_WEB_TIMING=1 ENABLE_WORKERS=1 ENABLE_XHR_TIMEOUT=1 ENABLE_WEBGL=1"
-EXTRA_DEFINES = "QT_NO_MTDEV QT_NO_LIBUDEV QT_NO_TSLIB QT_NO_LIBINPUT ENABLE_3D_RENDERING=1 ENABLE_ACCELERATED_2D_CANVAS=1 ENABLE_BLOB=1 ENABLE_CANVAS_PATH=1 ENABLE_CHANNEL_MESSAGING=1 ENABLE_CSS_BOX_DECORATION_BREAK=1 ENABLE_CSS_COMPOSITING=1 ENABLE_CSS_EXCLUSIONS=1 ENABLE_CSS_FILTERS=1 ENABLE_CSS_IMAGE_SET=1 ENABLE_CSS_REGIONS=1 ENABLE_CSS_SHAPES=1 ENABLE_CSS_STICKY_POSITION=1 ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED=1 ENABLE_DATALIST_ELEMENT=1 ENABLE_DETAILS_ELEMENT=1 ENABLE_DOWNLOAD_ATTRIBUTE=1 ENABLE_FAST_MOBILE_SCROLLING=1 ENABLE_FILTERS=1 ENABLE_FTPDIR=1 ENABLE_FULLSCREEN_API=1 ENABLE_GESTURE_EVENTS=1 ENABLE_ICONDATABASE=1 ENABLE_IFRAME_SEAMLESS=1 ENABLE_INPUT_TYPE_COLOR=1 ENABLE_INSPECTOR=1 ENABLE_INSPECTOR_SERVER=1 ENABLE_JAVASCRIPT_DEBUGGER=1 ENABLE_LEGACY_NOTIFICATIONS=1 ENABLE_LEGACY_VIEWPORT_ADAPTION=1 ENABLE_LEGACY_VENDOR_PREFIXES=1 ENABLE_LEGACY_WEB_AUDIO=1 ENABLE_LINK_PREFETCH=1 ENABLE_METER_ELEMENT=1 ENABLE_MHTML=1 ENABLE_NOTIFICATIONS=1 ENABLE_PAGE_VISIBILITY_API=1 ENABLE_PROGRESS_ELEMENT=1 ENABLE_RESOLUTION_MEDIA_QUERY=1 ENABLE_REQUEST_ANIMATION_FRAME=1 ENABLE_SHARED_WORKERS=1 ENABLE_SMOOTH_SCROLLING=1 ENABLE_SQL_DATABASE=1 ENABLE_SUBPIXEL_LAYOUT=1 ENABLE_SVG=1 ENABLE_SVG_FONTS=1 ENABLE_TOUCH_ADJUSTMENT=1 ENABLE_TOUCH_EVENTS=1 ENABLE_TOUCH_SLIDER=1 ENABLE_VIEW_MODE_CSS_MEDIA=1 ENABLE_WEB_SOCKETS=1 ENABLE_WEB_TIMING=1 ENABLE_WORKERS=1 ENABLE_XHR_TIMEOUT=1 WTF_USE_TILED_BACKING_STORE=1 WTF_USE_CROSS_PLATFORM_CONTEXT_MENUS=1 HAVE_QTQUICK=1 HAVE_QTPRINTSUPPORT=1 HAVE_QSTYLE=1 HAVE_QTTESTLIB=1 WTF_USE_LIBJPEG=1 WTF_USE_LIBPNG=1 PLUGIN_ARCHITECTURE_UNSUPPORTED=1 WTF_USE_3D_GRAPHICS=1 ENABLE_WEBGL=1 ENABLE_BATTERY_STATUS=0 ENABLE_CANVAS_PROXY=0 ENABLE_CSP_NEXT=0 ENABLE_CSS_GRID_LAYOUT=0 ENABLE_CSS_HIERARCHIES=0 ENABLE_CSS_IMAGE_ORIENTATION=0 ENABLE_CSS_IMAGE_RESOLUTION=0 ENABLE_CSS_SHADERS=0 ENABLE_CSS_VARIABLES=0 ENABLE_CSS3_CONDITIONAL_RULES=0 ENABLE_CSS3_TEXT=0 ENABLE_CSS3_TEXT_LINE_BREAK=0 ENABLE_DASHBOARD_SUPPORT=0 ENABLE_DATAGRID=0 ENABLE_DATA_TRANSFER_ITEMS=0 ENABLE_DEVICE_ORIENTATION=0 ENABLE_DIRECTORY_UPLOAD=0 ENABLE_FILE_SYSTEM=0 ENABLE_FONT_LOAD_EVENTS=0 ENABLE_GAMEPAD=0 ENABLE_GEOLOCATION=0 ENABLE_HIGH_DPI_CANVAS=0 ENABLE_INDEXED_DATABASE=0 ENABLE_INPUT_SPEECH=0 ENABLE_INPUT_TYPE_DATE=0 ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE=0 ENABLE_INPUT_TYPE_DATETIMELOCAL=0 ENABLE_INPUT_TYPE_MONTH=0 ENABLE_INPUT_TYPE_TIME=0 ENABLE_INPUT_TYPE_WEEK=0 ENABLE_LEGACY_CSS_VENDOR_PREFIXES=0 ENABLE_MATHML=0 ENABLE_MEDIA_SOURCE=0 ENABLE_MEDIA_STATISTICS=0 ENABLE_MEDIA_STREAM=0 ENABLE_MICRODATA=0 ENABLE_MOUSE_CURSOR_SCALE=0 ENABLE_NAVIGATOR_CONTENT_UTILS=0 ENABLE_NETSCAPE_PLUGIN_API=0 ENABLE_NETWORK_INFO=0 ENABLE_NOSNIFF=0 ENABLE_ORIENTATION_EVENTS=0 ENABLE_PROXIMITY_EVENTS=0 ENABLE_QUOTA=0 ENABLE_RESOURCE_TIMING=0 ENABLE_SCRIPTED_SPEECH=0 ENABLE_SECCOMP_FILTERS=0 ENABLE_SHADOW_DOM=0 ENABLE_STYLE_SCOPED=0 ENABLE_TEMPLATE_ELEMENT=0 ENABLE_TEXT_AUTOSIZING=0 ENABLE_THREADED_HTML_PARSER=0 ENABLE_TOUCH_ICON_LOADING=0 ENABLE_USER_TIMING=0 ENABLE_VIBRATION=0 ENABLE_VIDEO=0 ENABLE_VIDEO_TRACK=0 ENABLE_WEB_AUDIO=0 ENABLE_XSLT=0"
-GENERATE_BINDINGS_PL = export "SOURCE_ROOT=$(WEBCORE_DIR)" && perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/bindings/scripts/generate-bindings.pl --defines $(DEFINES) --generator JS --include Modules/filesystem --include Modules/geolocation --include Modules/indexeddb --include Modules/mediasource --include Modules/notifications --include Modules/quota --include Modules/webaudio --include Modules/webdatabase --include Modules/websockets --include css --include dom --include editing --include fileapi --include html --include html/canvas --include html/shadow --include html/track --include inspector --include loader/appcache --include page --include plugins --include storage --include svg --include testing --include workers --include xml --outputDir $(dir $@) --supplementalDependencyFile $(dir $@)/supplemental_dependency.tmp --idlAttributesFile $(WEBCORE_DIR)/bindings/scripts/IDLAttributes.txt --preprocessor "$(MOC) -E"
-# The directory with the generated files must be added for the Genode build
-# system, because it is not a subdirectory of the current directory.
-GENERATE_BINDINGS_PL += --include $(dir $@)
-
-# make the 'HOST_TOOLS' variable known
-include $(REP_DIR)/lib/mk/qt5_host_tools.mk
-
-$(QT5_PORT_DIR)/src/lib/qt5/qtwebkit/Source/WebCore/generated/generated.tag: $(HOST_TOOLS)
-
- $(VERBOSE)mkdir -p $(dir $@)
-
- @# make_names.pl
- $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_names.pl --tags $(WEBCORE_DIR)/mathml/mathtags.in --attrs $(WEBCORE_DIR)/mathml/mathattrs.in --extraDefines $(EXTRA_DEFINES) --preprocessor "$(MOC) -E" --factory --wrapperFactory --outputDir $(dir $@)
- $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_names.pl --tags $(WEBCORE_DIR)/svg/svgtags.in --attrs $(WEBCORE_DIR)/svg/svgattrs.in --extraDefines $(EXTRA_DEFINES) --preprocessor "$(MOC) -E" --factory --wrapperFactory --outputDir $(dir $@)
- $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_names.pl --attrs $(WEBCORE_DIR)/svg/xlinkattrs.in --preprocessor "$(MOC) -E" --outputDir $(dir $@)
-
- @# makeprop.pl
- $(VERBOSE)perl -ne "print $1" $(WEBCORE_DIR)/css/CSSPropertyNames.in $(WEBCORE_DIR)/css/SVGCSSPropertyNames.in > $(dir $@)/CSSPropertyNames.in && cd $(dir $@) && perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/css/makeprop.pl --defines $(DEFINES) --preprocessor "$(MOC) -E" $(WEBCORE_DIR)/css/CSSPropertyNames.in && $(DEL_FILE) CSSPropertyNames.in CSSPropertyNames.gperf
-
- @# make_settings.pl
- $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/page/make_settings.pl --input $(WEBCORE_DIR)/page/Settings.in --outputDir $(dir $@)
-
- @# makevalues.pl
- $(VERBOSE)perl -ne "print $1" $(WEBCORE_DIR)/css/CSSValueKeywords.in $(WEBCORE_DIR)/css/SVGCSSValueKeywords.in > $(dir $@)/CSSValueKeywords.in && cd $(dir $@) && perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/css/makevalues.pl --defines $(DEFINES) --preprocessor "$(MOC) -E" $(WEBCORE_DIR)/css/CSSValueKeywords.in && $(DEL_FILE) CSSValueKeywords.in CSSValueKeywords.gperf
-
- @# preprocess-idls.pl
- $(VERBOSE)sed -e "s,^qtwebkit,$(QT5_CONTRIB_DIR)/qtwebkit,g" -e "s,^generated/,$(dir $@),g" $(REP_DIR)/src/lib/qt5/qtwebkit/Source/WebCore/idl_files > $(dir $@)/idl_files.tmp
- $(VERBOSE)export "QT5_CONTRIB_DIR=$(QT5_CONTRIB_DIR)" && perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/bindings/scripts/preprocess-idls.pl --defines $(DEFINES) --idlFilesList $(dir $@)/idl_files.tmp --supplementalDependencyFile $(dir $@)/supplemental_dependency.tmp --windowConstructorsFile $(dir $@)/DOMWindowConstructors.idl --workerGlobalScopeConstructorsFile $(dir $@)/WorkerGlobalScopeConstructors.idl --sharedWorkerGlobalScopeConstructorsFile $(dir $@)/SharedWorkerGlobalScopeConstructors.idl --dedicatedWorkerGlobalScopeConstructorsFile $(dir $@)/DedicatedWorkerGlobalScopeConstructors.idl
-
- @# generate-bindings.pl
- $(VERBOSE)while read -r idl_file; do $(GENERATE_BINDINGS_PL) $$idl_file; done < $(dir $@)/idl_files.tmp
- #$(VERBOSE)while read -r idl_file; do echo "$(GENERATE_BINDINGS_PL) $$idl_file"; $(GENERATE_BINDINGS_PL) $$idl_file; done < $(dir $@)/idl_files.tmp
-
- @# CodeGeneratorInspector.py
- $(VERBOSE)python $(WEBCORE_DIR)/inspector/CodeGeneratorInspector.py $(WEBCORE_DIR)/inspector/Inspector.json --output_h_dir $(dir $@) --output_cpp_dir $(dir $@)
-
- @# xxd.pl
- $(VERBOSE)perl $(WEBCORE_DIR)/inspector/xxd.pl InspectorOverlayPage_html $(WEBCORE_DIR)/inspector/InspectorOverlayPage.html $(dir $@)/InspectorOverlayPage.h
- $(VERBOSE)perl $(WEBCORE_DIR)/inspector/xxd.pl InjectedScriptSource_js $(WEBCORE_DIR)/inspector/InjectedScriptSource.js $(dir $@)/InjectedScriptSource.h
- $(VERBOSE)perl $(WEBCORE_DIR)/inspector/xxd.pl InjectedScriptCanvasModuleSource_js $(WEBCORE_DIR)/inspector/InjectedScriptCanvasModuleSource.js $(dir $@)/InjectedScriptCanvasModuleSource.h
-
- @# makegrammar.pl
- $(VERBOSE)perl -I $(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/css/makegrammar.pl --outputDir $(dir $@) --extraDefines $(EXTRA_DEFINES) --preprocessor "$(MOC) -E" --symbolsPrefix cssyy $(WEBCORE_DIR)/css/CSSGrammar.y.in
-
- @# make_names.pl
- $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_names.pl --tags $(WEBCORE_DIR)/html/HTMLTagNames.in --attrs $(WEBCORE_DIR)/html/HTMLAttributeNames.in --extraDefines $(EXTRA_DEFINES) --preprocessor "$(MOC) -E" --factory --wrapperFactory --outputDir $(dir $@)
- $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_names.pl --attrs $(WEBCORE_DIR)/xml/xmlnsattrs.in --preprocessor "$(MOC) -E" --outputDir $(dir $@)
- $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_names.pl --attrs $(WEBCORE_DIR)/xml/xmlattrs.in --preprocessor "$(MOC) -E" --outputDir $(dir $@)
- $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_names.pl --fonts $(WEBCORE_DIR)/css/WebKitFontFamilyNames.in --outputDir $(dir $@)
-
- @# make_event_factory.pl
- $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_event_factory.pl --input $(WEBCORE_DIR)/dom/EventNames.in --outputDir $(dir $@)
- $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_event_factory.pl --input $(WEBCORE_DIR)/dom/EventTargetFactory.in --outputDir $(dir $@)
-
- @# make-dom-exceptions.pl
- $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_dom_exceptions.pl --input $(WEBCORE_DIR)/dom/DOMExceptions.in --outputDir $(dir $@)
-
- @# create-html-entity-table
- $(VERBOSE)python $(WEBCORE_DIR)/html/parser/create-html-entity-table -o $(dir $@)/HTMLEntityTable.cpp $(WEBCORE_DIR)/html/parser/HTMLEntityNames.in
-
- @# make-hash-tools.pl
- $(VERBOSE)perl $(WEBCORE_DIR)/make-hash-tools.pl $(dir $@) $(WEBCORE_DIR)/platform/ColorData.gperf
-
- @# make-css-file-arrays.pl
- $(VERBOSE)perl $(WEBCORE_DIR)/css/make-css-file-arrays.pl $(dir $@)/UserAgentStyleSheets.h $(dir $@)/UserAgentStyleSheetsData.cpp $(WEBCORE_DIR)/css/html.css $(WEBCORE_DIR)/css/quirks.css $(WEBCORE_DIR)/css/mathml.css $(WEBCORE_DIR)/css/svg.css $(WEBCORE_DIR)/css/view-source.css $(WEBCORE_DIR)/css/fullscreen.css $(WEBCORE_DIR)/css/mediaControls.css $(WEBCORE_DIR)/css/mediaControlsQt.css $(WEBCORE_DIR)/css/mediaControlsQtFullscreen.css $(WEBCORE_DIR)/css/plugIns.css $(WEBCORE_DIR)/css/themeQtNoListboxes.css $(WEBCORE_DIR)/css/mobileThemeQt.css
- $(VERBOSE)perl $(WEBCORE_DIR)/css/make-css-file-arrays.pl $(dir $@)/PlugInsResources.h $(dir $@)/PlugInsResourcesData.cpp $(WEBCORE_DIR)/Resources/plugIns.js
-
- @# XPathGrammar
- $(VERBOSE)bison -d -p xpathyy $(WEBCORE_DIR)/xml/XPathGrammar.y -o $(dir $@)/XPathGrammar.tab.c && $(MOVE) $(dir $@)/XPathGrammar.tab.c $(dir $@)/XPathGrammar.cpp && $(MOVE) $(dir $@)/XPathGrammar.tab.h $(dir $@)/XPathGrammar.h
-
- @# generate-webkit-version.pl
- $(VERBOSE)perl $(WEBCORE_DIR)/../WebKit/scripts/generate-webkitversion.pl --config $(WEBCORE_DIR)/../WebKit/mac/Configurations/Version.xcconfig --outputDir $(dir $@)/
-
- $(VERBOSE)touch $@
-
include $(REP_DIR)/lib/mk/qt5_webcore_generated.inc
QT_INCPATH += qtwebkit/Source/WebCore/generated
diff --git a/repos/libports/lib/mk/qt5_webkit.mk b/repos/libports/lib/mk/qt5_webkit.mk
index ff7a48255..8c4956a3e 100644
--- a/repos/libports/lib/mk/qt5_webkit.mk
+++ b/repos/libports/lib/mk/qt5_webkit.mk
@@ -1,4 +1,4 @@
-include $(REP_DIR)/lib/import/import-qt5_webkit.mk
+include $(call select_from_repositories,lib/import/import-qt5_webkit.mk)
SHARED_LIB = yes
diff --git a/repos/libports/lib/mk/qt5_webkitwidgets.mk b/repos/libports/lib/mk/qt5_webkitwidgets.mk
index 542083573..c79859203 100644
--- a/repos/libports/lib/mk/qt5_webkitwidgets.mk
+++ b/repos/libports/lib/mk/qt5_webkitwidgets.mk
@@ -1,4 +1,4 @@
-include $(REP_DIR)/lib/import/import-qt5_webkitwidgets.mk
+include $(call select_from_repositories,lib/import/import-qt5_webkitwidgets.mk)
SHARED_LIB = yes
@@ -19,6 +19,6 @@ COMPILER_MOC_SOURCE_MAKE_ALL_FILES_FILTER_OUT = \
include $(REP_DIR)/lib/mk/qt5.inc
-LIBS += qt5_webkit qt5_widgets qt5_printsupport qt5_gui qt5_core icu
+LIBS += icu qt5_core qt5_gui qt5_network qt5_opengl qt5_printsupport qt5_webkit qt5_widgets
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_widgets.mk b/repos/libports/lib/mk/qt5_widgets.mk
index 4b89fe22a..1ec10f070 100644
--- a/repos/libports/lib/mk/qt5_widgets.mk
+++ b/repos/libports/lib/mk/qt5_widgets.mk
@@ -1,4 +1,4 @@
-include $(REP_DIR)/lib/import/import-qt5_widgets.mk
+include $(call select_from_repositories,lib/import/import-qt5_widgets.mk)
SHARED_LIB = yes
@@ -9,12 +9,6 @@ qfiledialog.o: ui_qfiledialog.h
include $(REP_DIR)/lib/mk/qt5.inc
-INC_DIR += $(QT5_CONTRIB_DIR)/qtbase/include/QtWidgets/$(QT_VERSION)/QtWidgets \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtGui/$(QT_VERSION) \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtGui/$(QT_VERSION)/QtGui \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtCore/$(QT_VERSION) \
- $(QT5_CONTRIB_DIR)/qtbase/include/QtCore/$(QT_VERSION)/QtCore
-
-LIBS += qt5_gui
+LIBS += qt5_gui qt5_core libc
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_windowplugin.mk b/repos/libports/lib/mk/qt5_windowplugin.mk
index 31bfdf038..c3f635b68 100644
--- a/repos/libports/lib/mk/qt5_windowplugin.mk
+++ b/repos/libports/lib/mk/qt5_windowplugin.mk
@@ -1,4 +1,6 @@
-include $(REP_DIR)/lib/import/import-qt5_windowplugin.mk
+IMPORT_QT5_INC=$(call select_from_repositories,lib/import/import-qt5.inc)
+
+include $(IMPORT_QT5_INC)
SHARED_LIB = yes
@@ -8,35 +10,36 @@ QT_DEFINES += -UQT_STATICPLUGIN
include $(REP_DIR)/lib/mk/qt5.inc
-LIBS += qt5_qml mesa
+LIBS += qt5_core qt5_gui qt5_qml qt5_quick
-# install the QtQuick QML plugin
+# install the QML plugin
-QTQUICK_INSTALL_DIR := $(BUILD_BASE_DIR)/bin/qt5_fs/qt/qml/QtQuick/Window.2
-QTQUICK_QMLDIR := $(QTQUICK_INSTALL_DIR)/qmldir
-QTQUICK_PLUGIN_NAME := qt5_windowplugin.lib.so
-QTQUICK_PLUGIN := $(QTQUICK_INSTALL_DIR)/$(QTQUICK_PLUGIN_NAME)
+QML_PLUGIN_NAME := qt5_windowplugin
+QML_INSTALL_DIR := qt/qml/QtQuick/Window.2
-$(QTQUICK_INSTALL_DIR):
+QML_PLUGIN := $(QML_INSTALL_DIR)/$(QML_PLUGIN_NAME).lib.so
+TAR_ARCHIVE := $(BUILD_BASE_DIR)/bin/$(QML_PLUGIN_NAME).tar
+
+$(QML_INSTALL_DIR):
$(VERBOSE)mkdir -p $@
-$(QTQUICK_QMLDIR): $(QTQUICK_INSTALL_DIR)
- $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtdeclarative/src/imports/window/qmldir $(QTQUICK_INSTALL_DIR)
+$(QML_PLUGIN): $(QML_INSTALL_DIR) $(QML_PLUGIN_NAME).lib.so.stripped
+ $(VERBOSE)cp $(QML_PLUGIN_NAME).lib.so.stripped $@
-$(QTQUICK_PLUGIN): $(QTQUICK_INSTALL_DIR)
- $(VERBOSE)ln -sf $(BUILD_BASE_DIR)/bin/$(QTQUICK_PLUGIN_NAME) $(QTQUICK_INSTALL_DIR)/$(QTQUICK_PLUGIN_NAME)
+$(TAR_ARCHIVE): $(QML_PLUGIN)
+ $(VERBOSE)tar cf $@ qt
ifneq ($(call select_from_ports,qt5),)
-all: $(QTQUICK_QMLDIR) $(QTQUICK_PLUGIN)
+$(QML_PLUGIN_NAME).lib.tag: $(TAR_ARCHIVE)
endif
#
# unfortunately, these clean rules don't trigger
#
-clean-qtquick_install_dir:
- rm -rf $(QTQUICK_INSTALL_DIR)
+clean-tar_archive:
+ rm -rf $(TAR_ARCHIVE)
-clean: clean-qtquick_install_dir
+clean: clean-tar_archive
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/qt5_wtf.mk b/repos/libports/lib/mk/qt5_wtf.mk
index 13498f056..354a4cfba 100644
--- a/repos/libports/lib/mk/qt5_wtf.mk
+++ b/repos/libports/lib/mk/qt5_wtf.mk
@@ -1,4 +1,4 @@
-include $(REP_DIR)/lib/import/import-qt5_wtf.mk
+include $(call select_from_repositories,lib/import/import-qt5_wtf.mk)
SHARED_LIB = yes
diff --git a/repos/libports/lib/mk/qt5_xml.mk b/repos/libports/lib/mk/qt5_xml.mk
index 02137a895..787a9821f 100644
--- a/repos/libports/lib/mk/qt5_xml.mk
+++ b/repos/libports/lib/mk/qt5_xml.mk
@@ -1,4 +1,4 @@
-include $(REP_DIR)/lib/import/import-qt5_xml.mk
+include $(call select_from_repositories,lib/import/import-qt5_xml.mk)
SHARED_LIB = yes
@@ -6,6 +6,6 @@ include $(REP_DIR)/lib/mk/qt5_xml_generated.inc
include $(REP_DIR)/lib/mk/qt5.inc
-INC_DIR += $(QT5_CONTRIB_DIR)/qtbase/include/QtCore/$(QT_VERSION)/QtCore \
+LIBS += qt5_core
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/symbols/qt5_component b/repos/libports/lib/symbols/qt5_component
new file mode 100644
index 000000000..5609d30b1
--- /dev/null
+++ b/repos/libports/lib/symbols/qt5_component
@@ -0,0 +1,5 @@
+_ZN4Libc9Component9constructERNS_3EnvE T
+
+# manually added symbols
+
+_Z17initialize_qt_guiRN6Genode3EnvE W
diff --git a/repos/libports/lib/symbols/qt5_qnitpickerviewwidget b/repos/libports/lib/symbols/qt5_qnitpickerviewwidget
new file mode 100644
index 000000000..63825a036
--- /dev/null
+++ b/repos/libports/lib/symbols/qt5_qnitpickerviewwidget
@@ -0,0 +1,30 @@
+_ZN19QEmbeddedViewWidget11qt_metacallEN11QMetaObject4CallEiPPv T
+_ZN19QEmbeddedViewWidget11qt_metacastEPKc T
+_ZN19QEmbeddedViewWidget12valueChangedEv T
+_ZN19QEmbeddedViewWidget16staticMetaObjectE D 48
+_ZN19QEmbeddedViewWidget19_calc_view_geometryEv T
+_ZN19QEmbeddedViewWidget9destroyedEP7QObject T
+_ZN19QEmbeddedViewWidgetC1EP7QWidget T
+_ZN19QEmbeddedViewWidgetC2EP7QWidget T
+_ZN19QEmbeddedViewWidgetD0Ev T
+_ZN19QEmbeddedViewWidgetD1Ev T
+_ZN19QEmbeddedViewWidgetD2Ev T
+_ZN20QNitpickerViewWidget10paintEventEP11QPaintEvent T
+_ZN20QNitpickerViewWidget11qt_metacallEN11QMetaObject4CallEiPPv T
+_ZN20QNitpickerViewWidget11qt_metacastEPKc T
+_ZN20QNitpickerViewWidget12focusInEventEP11QFocusEvent T
+_ZN20QNitpickerViewWidget16setNitpickerViewEPN9Nitpicker14Session_clientEN6Genode6HandleINS0_4ViewEEEiiii T
+_ZN20QNitpickerViewWidget16staticMetaObjectE D 48
+_ZN20QNitpickerViewWidget9hideEventEP10QHideEvent T
+_ZN20QNitpickerViewWidget9showEventEP10QShowEvent T
+_ZN20QNitpickerViewWidgetC1EP7QWidget T
+_ZN20QNitpickerViewWidgetC2EP7QWidget T
+_ZN20QNitpickerViewWidgetD0Ev T
+_ZN20QNitpickerViewWidgetD1Ev T
+_ZN20QNitpickerViewWidgetD2Ev T
+_ZNK19QEmbeddedViewWidget10metaObjectEv T
+_ZNK20QNitpickerViewWidget10metaObjectEv T
+_ZThn16_N19QEmbeddedViewWidgetD0Ev T
+_ZThn16_N19QEmbeddedViewWidgetD1Ev T
+_ZThn16_N20QNitpickerViewWidgetD0Ev T
+_ZThn16_N20QNitpickerViewWidgetD1Ev T
diff --git a/repos/libports/lib/symbols/qt5_qpa_nitpicker b/repos/libports/lib/symbols/qt5_qpa_nitpicker
new file mode 100644
index 000000000..09f6d484f
--- /dev/null
+++ b/repos/libports/lib/symbols/qt5_qpa_nitpicker
@@ -0,0 +1,292 @@
+_Z11qLcEvdevKeyv T
+_Z14qLcEvdevKeyMapv T
+_Z14qt_getFreetypev T
+_Z16q_printEglConfigPvS_ T
+_Z17initialize_qt_guiRN6Genode3EnvE T
+_Z17q_hasEglExtensionPvPKc T
+_Z18q_screenSizeFromFbi T
+_Z18qt_getFreetypeDatav T
+_Z19q_refreshRateFromFbi T
+_Z19q_screenDepthFromFbi T
+_Z20q_configFromGLFormatPvRK14QSurfaceFormatbi T
+_Z20q_glFormatFromConfigPvS_RK14QSurfaceFormat T
+_Z24q_reduceConfigAttributesP7QVectorIiE T
+_Z25createUnixEventDispatcherv T
+_Z26q_physicalScreenSizeFromFbiRK5QSize T
+_Z34q_createConfigAttributesFromFormatRK14QSurfaceFormat T
+_Z44qt_static_plugin_QNitpickerIntegrationPluginv T
+_ZN12QFdContainer5resetEv T
+_ZN13QFontEngineFT11boundingBoxERK12QGlyphLayout T
+_ZN13QFontEngineFT11boundingBoxEj T
+_ZN13QFontEngineFT11boundingBoxEjRK10QTransform T
+_ZN13QFontEngineFT12loadGlyphForEj6QFixedN11QFontEngine11GlyphFormatERK10QTransformbb T
+_ZN13QFontEngineFT12loadGlyphSetERK10QTransform T
+_ZN13QFontEngineFT14bitmapForGlyphEj6QFixedRK10QTransform T
+_ZN13QFontEngineFT15addGlyphsToPathEPjP11QFixedPointiP12QPainterPath6QFlagsIN9QTextItem10RenderFlagEE T
+_ZN13QFontEngineFT16addOutlineToPathEddRK12QGlyphLayoutP12QPainterPath6QFlagsIN9QTextItem10RenderFlagEE T
+_ZN13QFontEngineFT16alphaMapForGlyphEj6QFixed T
+_ZN13QFontEngineFT16alphaMapForGlyphEj6QFixedRK10QTransform T
+_ZN13QFontEngineFT16getUnscaledGlyphEjP12QPainterPathP15glyph_metrics_t T
+_ZN13QFontEngineFT17getPointInOutlineEjijP6QFixedS1_Pj T
+_ZN13QFontEngineFT18initFromFontEngineEPKS_ T
+_ZN13QFontEngineFT19alphaMapBoundingBoxEj6QFixedRK10QTransformN11QFontEngine11GlyphFormatE T
+_ZN13QFontEngineFT19alphaRGBMapForGlyphEj6QFixedRK10QTransform T
+_ZN13QFontEngineFT19setDefaultHintStyleEN11QFontEngine9HintStyleE T
+_ZN13QFontEngineFT20removeGlyphFromCacheEj T
+_ZN13QFontEngineFT21setQtDefaultHintStyleEN5QFont17HintingPreferenceE T
+_ZN13QFontEngineFT22lockedAlphaMapForGlyphEj6QFixedN11QFontEngine11GlyphFormatERK10QTransformP6QPoint T
+_ZN13QFontEngineFT22unlockAlphaMapForGlyphEv T
+_ZN13QFontEngineFT4initEN11QFontEngine6FaceIdEbNS0_11GlyphFormatEP13QFreetypeFace T
+_ZN13QFontEngineFT4initEN11QFontEngine6FaceIdEbNS0_11GlyphFormatERK10QByteArray T
+_ZN13QFontEngineFT5GlyphD1Ev T
+_ZN13QFontEngineFT5GlyphD2Ev T
+_ZN13QFontEngineFT9QGlyphSet20removeGlyphFromCacheEj6QFixed T
+_ZN13QFontEngineFT9QGlyphSet5clearEv T
+_ZN13QFontEngineFT9QGlyphSet8setGlyphEj6QFixedPNS_5GlyphE T
+_ZN13QFontEngineFT9QGlyphSetC1Ev T
+_ZN13QFontEngineFT9QGlyphSetC2Ev T
+_ZN13QFontEngineFT9QGlyphSetD1Ev T
+_ZN13QFontEngineFT9QGlyphSetD2Ev T
+_ZN13QFontEngineFTC1ERK8QFontDef T
+_ZN13QFontEngineFTC2ERK8QFontDef T
+_ZN13QFontEngineFTD0Ev T
+_ZN13QFontEngineFTD1Ev T
+_ZN13QFontEngineFTD2Ev T
+_ZN13QFreetypeFace11computeSizeERK8QFontDefPiS3_PbP6QFixed T
+_ZN13QFreetypeFace14addGlyphToPathEP11FT_FaceRec_P16FT_GlyphSlotRec_RK11QFixedPointP12QPainterPathll T
+_ZN13QFreetypeFace15addBitmapToPathEP16FT_GlyphSlotRec_RK11QFixedPointP12QPainterPath T
+_ZN13QFreetypeFace17getPointInOutlineEjijP6QFixedS1_Pj T
+_ZN13QFreetypeFace7cleanupEv T
+_ZN13QFreetypeFace7getFaceERKN11QFontEngine6FaceIdERK10QByteArray T
+_ZN13QFreetypeFace7releaseERKN11QFontEngine6FaceIdE T
+_ZN14QtFreetypeDataD1Ev T
+_ZN14QtFreetypeDataD2Ev T
+_ZN16QGenodeClipboard11setMimeDataEP9QMimeDataN10QClipboard4ModeE T
+_ZN16QGenodeClipboard17_handle_clipboardEj T
+_ZN16QGenodeClipboard8mimeDataEN10QClipboard4ModeE T
+_ZN16QGenodeClipboardC1ERN6Genode3EnvERNS0_15Signal_receiverE T
+_ZN16QGenodeClipboardC2ERN6Genode3EnvERNS0_15Signal_receiverE T
+_ZN16QGenodeClipboardD0Ev T
+_ZN16QGenodeClipboardD1Ev T
+_ZN16QGenodeClipboardD2Ev T
+_ZN16QNitpickerCursor12changeCursorEP7QCursorP7QWindow T
+_ZN16QNitpickerCursorC1ERN6Genode3EnvE T
+_ZN16QNitpickerCursorC2ERN6Genode3EnvE T
+_ZN17QEglConfigChooser12chooseConfigEv T
+_ZN17QEglConfigChooserC1EPv T
+_ZN17QEglConfigChooserC2EPv T
+_ZN17QEglConfigChooserD0Ev T
+_ZN17QEglConfigChooserD1Ev T
+_ZN17QEglConfigChooserD2Ev T
+_ZN18QBasicFontDatabase10fontEngineERK10QByteArraydN5QFont17HintingPreferenceE T
+_ZN18QBasicFontDatabase10fontEngineERK8QFontDefPv T
+_ZN18QBasicFontDatabase13releaseHandleEPv T
+_ZN18QBasicFontDatabase18addApplicationFontERK10QByteArrayRK7QString T
+_ZN18QBasicFontDatabase20populateFontDatabaseEv T
+_ZN18QBasicFontDatabase9addTTFileERK10QByteArrayS2_ T
+_ZN19QNitpickerGLContext11doneCurrentEv T
+_ZN19QNitpickerGLContext11makeCurrentEP16QPlatformSurface T
+_ZN19QNitpickerGLContext11swapBuffersEP16QPlatformSurface T
+_ZN19QNitpickerGLContext14getProcAddressEPKc T
+_ZN19QNitpickerGLContextC1EP14QOpenGLContext T
+_ZN19QNitpickerGLContextC2EP14QOpenGLContext T
+_ZN20QSignalHandlerThread11qt_metacallEN11QMetaObject4CallEiPPv T
+_ZN20QSignalHandlerThread11qt_metacastEPKc T
+_ZN20QSignalHandlerThread16staticMetaObjectE D 48
+_ZN20QSignalHandlerThread3runEv T
+_ZN21QEvdevKeyboardHandler10loadKeymapERK7QString T
+_ZN21QEvdevKeyboardHandler11qt_metacallEN11QMetaObject4CallEiPPv T
+_ZN21QEvdevKeyboardHandler11qt_metacastEPKc T
+_ZN21QEvdevKeyboardHandler12unloadKeymapEv T
+_ZN21QEvdevKeyboardHandler14processKeycodeEtbb T
+_ZN21QEvdevKeyboardHandler15processKeyEventEiii6QFlagsIN2Qt16KeyboardModifierEEbb T
+_ZN21QEvdevKeyboardHandler16s_keymap_defaultE R 7032
+_ZN21QEvdevKeyboardHandler16staticMetaObjectE D 48
+_ZN21QEvdevKeyboardHandler20s_keycompose_defaultE R 882
+_ZN21QEvdevKeyboardHandlerC1ERK7QStringR12QFdContainerbbS2_ T
+_ZN21QEvdevKeyboardHandlerC2ERK7QStringR12QFdContainerbbS2_ T
+_ZN21QEvdevKeyboardHandlerD0Ev T
+_ZN21QEvdevKeyboardHandlerD1Ev T
+_ZN21QEvdevKeyboardHandlerD2Ev T
+_ZN21QNitpickerIntegration10initializeEv T
+_ZN21QNitpickerIntegration16_signal_receiverEv T
+_ZN21QNitpickerIntegrationC1ERN6Genode3EnvE T
+_ZN21QNitpickerIntegrationC2ERN6Genode3EnvE T
+_ZN23QNitpickerWindowSurface11paintDeviceEv T
+_ZN23QNitpickerWindowSurface11qt_metacallEN11QMetaObject4CallEiPPv T
+_ZN23QNitpickerWindowSurface11qt_metacastEPKc T
+_ZN23QNitpickerWindowSurface16staticMetaObjectE D 48
+_ZN23QNitpickerWindowSurface19framebuffer_changedEv T
+_ZN23QNitpickerWindowSurface5flushEP7QWindowRK7QRegionRK6QPoint T
+_ZN23QNitpickerWindowSurface6resizeERK5QSizeRK7QRegion T
+_ZN23QNitpickerWindowSurfaceC1EP7QWindow T
+_ZN23QNitpickerWindowSurfaceC2EP7QWindow T
+_ZN23QNitpickerWindowSurfaceD0Ev T
+_ZN23QNitpickerWindowSurfaceD1Ev T
+_ZN23QNitpickerWindowSurfaceD2Ev T
+_ZN23QUnixEventDispatcherQPA11qt_metacallEN11QMetaObject4CallEiPPv T
+_ZN23QUnixEventDispatcherQPA11qt_metacastEPKc T
+_ZN23QUnixEventDispatcherQPA13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE T
+_ZN23QUnixEventDispatcherQPA16hasPendingEventsEv T
+_ZN23QUnixEventDispatcherQPA16staticMetaObjectE D 48
+_ZN23QUnixEventDispatcherQPA5flushEv T
+_ZN23QUnixEventDispatcherQPAC1EP7QObject T
+_ZN23QUnixEventDispatcherQPAC2EP7QObject T
+_ZN23QUnixEventDispatcherQPAD0Ev T
+_ZN23QUnixEventDispatcherQPAD1Ev T
+_ZN23QUnixEventDispatcherQPAD2Ev T
+_ZN24QNitpickerPlatformWindow10setOpacityEd T
+_ZN24QNitpickerPlatformWindow10setVisibleEb T
+_ZN24QNitpickerPlatformWindow11_key_repeatEv T
+_ZN24QNitpickerPlatformWindow11egl_surfaceEPv T
+_ZN24QNitpickerPlatformWindow11framebufferEv T
+_ZN24QNitpickerPlatformWindow11qt_metacallEN11QMetaObject4CallEiPPv T
+_ZN24QNitpickerPlatformWindow11qt_metacastEPKc T
+_ZN24QNitpickerPlatformWindow11setGeometryERK5QRect T
+_ZN24QNitpickerPlatformWindow11windowEventEP6QEvent T
+_ZN24QNitpickerPlatformWindow12_create_viewEv T
+_ZN24QNitpickerPlatformWindow13_handle_inputEj T
+_ZN24QNitpickerPlatformWindow13_mode_changedEj T
+_ZN24QNitpickerPlatformWindow13setWindowIconERK5QIcon T
+_ZN24QNitpickerPlatformWindow14setWindowFlagsE6QFlagsIN2Qt10WindowTypeEE T
+_ZN24QNitpickerPlatformWindow14setWindowStateEN2Qt11WindowStateE T
+_ZN24QNitpickerPlatformWindow14setWindowTitleERK7QString T
+_ZN24QNitpickerPlatformWindow16staticMetaObjectE D 48
+_ZN24QNitpickerPlatformWindow17setWindowFilePathERK7QString T
+_ZN24QNitpickerPlatformWindow17setWindowModifiedEb T
+_ZN24QNitpickerPlatformWindow17startSystemResizeERK6QPointN2Qt6CornerE T
+_ZN24QNitpickerPlatformWindow18_init_touch_deviceEv T
+_ZN24QNitpickerPlatformWindow18_process_key_eventERKN5Input5EventE T
+_ZN24QNitpickerPlatformWindow18propagateSizeHintsEv T
+_ZN24QNitpickerPlatformWindow19framebuffer_changedEv T
+_ZN24QNitpickerPlatformWindow19setMouseGrabEnabledEb T
+_ZN24QNitpickerPlatformWindow20_handle_mode_changedEj T
+_ZN24QNitpickerPlatformWindow20_process_mouse_eventERKN5Input5EventE T
+_ZN24QNitpickerPlatformWindow21_process_touch_eventsERK5QListIN5Input5EventEE T
+_ZN24QNitpickerPlatformWindow21requestActivateWindowEv T
+_ZN24QNitpickerPlatformWindow22setKeyboardGrabEnabledEb T
+_ZN24QNitpickerPlatformWindow24_adjust_and_set_geometryERK5QRect T
+_ZN24QNitpickerPlatformWindow26setFrameStrutEventsEnabledEb T
+_ZN24QNitpickerPlatformWindow30handleContentOrientationChangeEN2Qt17ScreenOrientationE T
+_ZN24QNitpickerPlatformWindow5lowerEv T
+_ZN24QNitpickerPlatformWindow5raiseEv T
+_ZN24QNitpickerPlatformWindow6_inputEj T
+_ZN24QNitpickerPlatformWindow7refreshEiiii T
+_ZN24QNitpickerPlatformWindow7setMaskERK7QRegion T
+_ZN24QNitpickerPlatformWindow9nitpickerEv T
+_ZN24QNitpickerPlatformWindow9setParentEPK15QPlatformWindow T
+_ZN24QNitpickerPlatformWindowC1ERN6Genode3EnvEP7QWindowRNS0_15Signal_receiverEii T
+_ZN24QNitpickerPlatformWindowC2ERN6Genode3EnvEP7QWindowRNS0_15Signal_receiverEii T
+_ZN27QNitpickerIntegrationPlugin11qt_metacallEN11QMetaObject4CallEiPPv T
+_ZN27QNitpickerIntegrationPlugin11qt_metacastEPKc T
+_ZN27QNitpickerIntegrationPlugin16staticMetaObjectE D 48
+_ZN27QNitpickerIntegrationPlugin4_envE B 8
+_ZN27QNitpickerIntegrationPlugin6createERK7QStringRK11QStringList T
+_ZNK13QFontEngineFT10glyphCountEv T
+_ZNK13QFontEngineFT10glyphIndexEj T
+_ZNK13QFontEngineFT10propertiesEv T
+_ZNK13QFontEngineFT10unlockFaceEv T
+_ZNK13QFontEngineFT11synthesizedEv T
+_ZNK13QFontEngineFT12emSquareSizeEv T
+_ZNK13QFontEngineFT12maxCharWidthEv T
+_ZNK13QFontEngineFT12stringToCMapEPK5QChariP12QGlyphLayoutPi6QFlagsIN11QFontEngine10ShaperFlagEE T
+_ZNK13QFontEngineFT13cloneWithSizeEd T
+_ZNK13QFontEngineFT13lineThicknessEv T
+_ZNK13QFontEngineFT14recalcAdvancesEP12QGlyphLayout6QFlagsIN11QFontEngine10ShaperFlagEE T
+_ZNK13QFontEngineFT15non_locked_faceEv T
+_ZNK13QFontEngineFT16averageCharWidthEv T
+_ZNK13QFontEngineFT16getSfntTableDataEjPhPj T
+_ZNK13QFontEngineFT17underlinePositionEv T
+_ZNK13QFontEngineFT19scaledBitmapMetricsE6QFixed T
+_ZNK13QFontEngineFT19scaledBitmapMetricsERK15glyph_metrics_t T
+_ZNK13QFontEngineFT22shouldUseDesignMetricsE6QFlagsIN11QFontEngine10ShaperFlagEE T
+_ZNK13QFontEngineFT22supportsTransformationERK10QTransform T
+_ZNK13QFontEngineFT6ascentEv T
+_ZNK13QFontEngineFT6faceIdEv T
+_ZNK13QFontEngineFT6handleEv T
+_ZNK13QFontEngineFT7descentEv T
+_ZNK13QFontEngineFT7leadingEv T
+_ZNK13QFontEngineFT7xHeightEv T
+_ZNK13QFontEngineFT8lockFaceENS_7ScalingE T
+_ZNK13QFontEngineFT9capHeightEv T
+_ZNK13QFontEngineFT9doKerningEP12QGlyphLayout6QFlagsIN11QFontEngine10ShaperFlagEE T
+_ZNK13QFontEngineFT9loadFlagsEPNS_9QGlyphSetEN11QFontEngine11GlyphFormatEiRbRi T
+_ZNK13QFontEngineFT9loadGlyphEPNS_9QGlyphSetEj6QFixedN11QFontEngine11GlyphFormatEbb T
+_ZNK13QFreetypeFace10propertiesEv T
+_ZNK13QFreetypeFace12getSfntTableEjPhPj T
+_ZNK13QFreetypeFace16isScalableBitmapEv T
+_ZNK13QFreetypeFace6fsTypeEv T
+_ZNK17QEglConfigChooser12filterConfigEPv T
+_ZNK19QNitpickerGLContext6formatEv T
+_ZNK20QSignalHandlerThread10metaObjectEv T
+_ZNK21QEvdevKeyboardHandler10metaObjectEv T
+_ZNK21QNitpickerIntegration12fontDatabaseEv T
+_ZNK21QNitpickerIntegration12inputContextEv T
+_ZNK21QNitpickerIntegration13hasCapabilityEN20QPlatformIntegration10CapabilityE T
+_ZNK21QNitpickerIntegration20createPlatformWindowEP7QWindow T
+_ZNK21QNitpickerIntegration21createEventDispatcherEv T
+_ZNK21QNitpickerIntegration26createPlatformBackingStoreEP7QWindow T
+_ZNK21QNitpickerIntegration27createPlatformOpenGLContextEP14QOpenGLContext T
+_ZNK21QNitpickerIntegration9clipboardEv T
+_ZNK23QNitpickerWindowSurface10metaObjectEv T
+_ZNK23QUnixEventDispatcherQPA10metaObjectEv T
+_ZNK24QNitpickerPlatformWindow10isEmbeddedEPK15QPlatformWindow T
+_ZNK24QNitpickerPlatformWindow10metaObjectEv T
+_ZNK24QNitpickerPlatformWindow11egl_surfaceEv T
+_ZNK24QNitpickerPlatformWindow11mapToGlobalERK6QPoint T
+_ZNK24QNitpickerPlatformWindow12frameMarginsEv T
+_ZNK24QNitpickerPlatformWindow13mapFromGlobalERK6QPoint T
+_ZNK24QNitpickerPlatformWindow16devicePixelRatioEv T
+_ZNK24QNitpickerPlatformWindow23frameStrutEventsEnabledEv T
+_ZNK24QNitpickerPlatformWindow5winIdEv T
+_ZNK24QNitpickerPlatformWindow6formatEv T
+_ZNK24QNitpickerPlatformWindow6parentEv T
+_ZNK24QNitpickerPlatformWindow6screenEv T
+_ZNK24QNitpickerPlatformWindow6windowEv T
+_ZNK24QNitpickerPlatformWindow8geometryEv T
+_ZNK24QNitpickerPlatformWindow8isActiveEv T
+_ZNK24QNitpickerPlatformWindow8view_capEv T
+_ZNK24QNitpickerPlatformWindow9isExposedEv T
+_ZNK27QNitpickerIntegrationPlugin10metaObjectEv T
+_ZNK27QNitpickerIntegrationPlugin4keysEv T
+_ZThn16_N23QNitpickerWindowSurface11paintDeviceEv T
+_ZThn16_N23QNitpickerWindowSurface5flushEP7QWindowRK7QRegionRK6QPoint T
+_ZThn16_N23QNitpickerWindowSurface6resizeERK5QSizeRK7QRegion T
+_ZThn16_N23QNitpickerWindowSurfaceD0Ev T
+_ZThn16_N23QNitpickerWindowSurfaceD1Ev T
+_ZThn16_N24QNitpickerPlatformWindow10setOpacityEd T
+_ZThn16_N24QNitpickerPlatformWindow10setVisibleEb T
+_ZThn16_N24QNitpickerPlatformWindow11setGeometryERK5QRect T
+_ZThn16_N24QNitpickerPlatformWindow11windowEventEP6QEvent T
+_ZThn16_N24QNitpickerPlatformWindow13setWindowIconERK5QIcon T
+_ZThn16_N24QNitpickerPlatformWindow14setWindowFlagsE6QFlagsIN2Qt10WindowTypeEE T
+_ZThn16_N24QNitpickerPlatformWindow14setWindowStateEN2Qt11WindowStateE T
+_ZThn16_N24QNitpickerPlatformWindow14setWindowTitleERK7QString T
+_ZThn16_N24QNitpickerPlatformWindow17setWindowFilePathERK7QString T
+_ZThn16_N24QNitpickerPlatformWindow17setWindowModifiedEb T
+_ZThn16_N24QNitpickerPlatformWindow17startSystemResizeERK6QPointN2Qt6CornerE T
+_ZThn16_N24QNitpickerPlatformWindow18propagateSizeHintsEv T
+_ZThn16_N24QNitpickerPlatformWindow19setMouseGrabEnabledEb T
+_ZThn16_N24QNitpickerPlatformWindow21requestActivateWindowEv T
+_ZThn16_N24QNitpickerPlatformWindow22setKeyboardGrabEnabledEb T
+_ZThn16_N24QNitpickerPlatformWindow26setFrameStrutEventsEnabledEb T
+_ZThn16_N24QNitpickerPlatformWindow30handleContentOrientationChangeEN2Qt17ScreenOrientationE T
+_ZThn16_N24QNitpickerPlatformWindow5lowerEv T
+_ZThn16_N24QNitpickerPlatformWindow5raiseEv T
+_ZThn16_N24QNitpickerPlatformWindow7setMaskERK7QRegion T
+_ZThn16_N24QNitpickerPlatformWindow9setParentEPK15QPlatformWindow T
+_ZThn16_NK24QNitpickerPlatformWindow10isEmbeddedEPK15QPlatformWindow T
+_ZThn16_NK24QNitpickerPlatformWindow11mapToGlobalERK6QPoint T
+_ZThn16_NK24QNitpickerPlatformWindow12frameMarginsEv T
+_ZThn16_NK24QNitpickerPlatformWindow13mapFromGlobalERK6QPoint T
+_ZThn16_NK24QNitpickerPlatformWindow16devicePixelRatioEv T
+_ZThn16_NK24QNitpickerPlatformWindow23frameStrutEventsEnabledEv T
+_ZThn16_NK24QNitpickerPlatformWindow5winIdEv T
+_ZThn16_NK24QNitpickerPlatformWindow6formatEv T
+_ZThn16_NK24QNitpickerPlatformWindow8geometryEv T
+_ZThn16_NK24QNitpickerPlatformWindow8isActiveEv T
+_ZThn16_NK24QNitpickerPlatformWindow9isExposedEv T
+
+# manually added typeinfo and vtable symbols
+
+_ZTI24QNitpickerPlatformWindow V
diff --git a/repos/libports/lib/symbols/qt5_qpluginwidget b/repos/libports/lib/symbols/qt5_qpluginwidget
new file mode 100644
index 000000000..fe0703874
--- /dev/null
+++ b/repos/libports/lib/symbols/qt5_qpluginwidget
@@ -0,0 +1,35 @@
+_ZN13PluginStarter11qt_metacallEN11QMetaObject4CallEiPPv T
+_ZN13PluginStarter11qt_metacastEPKc T
+_ZN13PluginStarter13_start_pluginER7QStringRK10QByteArray T
+_ZN13PluginStarter13view_geometryEN6Genode4RectIijEENS0_5PointIiEE T
+_ZN13PluginStarter16staticMetaObjectE D 48
+_ZN13PluginStarter20networkReplyFinishedEv T
+_ZN13PluginStarter3runEv T
+_ZN13PluginStarter8finishedEv T
+_ZN13PluginStarter9view_sizeEv T
+_ZN13PluginStarterC1EPN4Libc3EnvE4QUrlR7QStringiiN6Genode10CapabilityIN9Nitpicker4ViewEEE T
+_ZN13PluginStarterC2EPN4Libc3EnvE4QUrlR7QStringiiN6Genode10CapabilityIN9Nitpicker4ViewEEE T
+_ZN13QPluginWidget10paintEventEP11QPaintEvent T
+_ZN13QPluginWidget11qt_metacallEN11QMetaObject4CallEiPPv T
+_ZN13QPluginWidget11qt_metacastEPKc T
+_ZN13QPluginWidget16staticMetaObjectE D 48
+_ZN13QPluginWidget19pluginStartFinishedEv T
+_ZN13QPluginWidget4_envE B 8
+_ZN13QPluginWidget5_lastE B 8
+_ZN13QPluginWidget7cleanupEv T
+_ZN13QPluginWidget9hideEventEP10QHideEvent T
+_ZN13QPluginWidget9showEventEP10QShowEvent T
+_ZN13QPluginWidgetC1EP7QWidget4QUrlR7QStringii T
+_ZN13QPluginWidgetC2EP7QWidget4QUrlR7QStringii T
+_ZN13QPluginWidgetD0Ev T
+_ZN13QPluginWidgetD1Ev T
+_ZN13QPluginWidgetD2Ev T
+_ZNK13PluginStarter10metaObjectEv T
+_ZNK13QPluginWidget10metaObjectEv T
+_ZThn16_N13QPluginWidgetD0Ev T
+_ZThn16_N13QPluginWidgetD1Ev T
+config D 8
+
+# manually added typeinfo and vtable symbols
+
+_ZTI13QPluginWidget V
diff --git a/repos/libports/ports/qt5-host.hash b/repos/libports/ports/qt5-host.hash
new file mode 100644
index 000000000..7d47945fa
--- /dev/null
+++ b/repos/libports/ports/qt5-host.hash
@@ -0,0 +1 @@
+d96a93cfd32f571807d6d7f18ae439e1100b89a6
diff --git a/repos/libports/ports/qt5-host.port b/repos/libports/ports/qt5-host.port
new file mode 100644
index 000000000..0be9259eb
--- /dev/null
+++ b/repos/libports/ports/qt5-host.port
@@ -0,0 +1,10 @@
+LICENSE := GPL
+VERSION := 5.8.0
+
+QT5 := qtbase-opensource-src-${VERSION}
+
+DOWNLOADS := ${QT5}.archive
+
+URL(${QT5}) := http://download.qt.io/archive/qt/5.8/$(VERSION)/submodules/$(QT5).tar.xz
+SHA(${QT5}) := eacdd022615734ccdba4e7a92f1f5f3366c0c415
+DIR(${QT5}) := src/lib/qt5-host
diff --git a/repos/libports/ports/qt5.hash b/repos/libports/ports/qt5.hash
index e82e2c3ea..eb2d1042d 100644
--- a/repos/libports/ports/qt5.hash
+++ b/repos/libports/ports/qt5.hash
@@ -1 +1 @@
-c481efac94f84d9143f6af2cb0630feb1c14d2de
+ea30a1b02701a7b37e4dad1f0cc301a2cd3c3037
diff --git a/repos/libports/ports/qt5.port b/repos/libports/ports/qt5.port
index 488217d7c..87e1f40e0 100644
--- a/repos/libports/ports/qt5.port
+++ b/repos/libports/ports/qt5.port
@@ -5,34 +5,521 @@ QT5 := qt-everywhere-opensource-src-${VERSION}
QT5_WEBKIT := qtwebkit-opensource-src-$(VERSION)
QTSCRIPTCLASSIC := qtscriptclassic-1.0_1-opensource
-DOWNLOADS := ${QT5}.archive ${QT5_WEBKIT}.archive ${QTSCRIPTCLASSIC}.archive
+DOWNLOADS := ${QT5}.archive ${QT5_WEBKIT}.archive ${QTSCRIPTCLASSIC}.archive symbols.git
URL(${QT5}) := http://download.qt.io/archive/qt/5.8/$(VERSION)/single/$(QT5).tar.xz
SHA(${QT5}) := 1a056ca4f731798e4142a691d0448c2c853228ca
-DIR(${QT5}) := src/lib/qt5/${QT5}
+DIR(${QT5}) := src/lib/qt5/qt5
URL(${QT5_WEBKIT}) := http://download.qt.io/community_releases/5.8/$(VERSION)-final/${QT5_WEBKIT}.tar.xz
SHA(${QT5_WEBKIT}) := 79d898f0e447039fb9f12b2f798a0aedf071ea82
-DIR(${QT5_WEBKIT}) := src/lib/qt5/${QT5}/qtwebkit
+DIR(${QT5_WEBKIT}) := src/lib/qt5/qt5/qtwebkit
URL(${QTSCRIPTCLASSIC}) := http://ftp.icm.edu.pl/packages/qt.old/solutions/lgpl/${QTSCRIPTCLASSIC}.tar.gz
SHA(${QTSCRIPTCLASSIC}) := 74e9dc82dd194d8ae0fb0f8f1df74081948b943a
DIR(${QTSCRIPTCLASSIC}) := src/lib/qt5/${QTSCRIPTCLASSIC}
+URL(symbols) := https://github.com/cproc/genode-symbols.git
+REV(symbols) := 732fb1b64a0e8e704d5a8a4fb5458be3df068751
+DIR(symbols) := lib/symbols
+
PATCHES_DIR := $(REP_DIR)/src/lib/qt5/patches
QT5_PATCHES := $(shell cat $(PATCHES_DIR)/series)
-QT5_WEBKIT_PATCHES := $(shell cat $(PATCHES_DIR)/series.qtwebkit)
QTSCRIPTCLASSIC_PATCHES := $(shell cat $(PATCHES_DIR)/series.qtscriptclassic)
-PATCHES := $(addprefix src/lib/qt5/patches/, ${QT5_PATCHES} ${QT5_WEBKIT_PATCHES} ${QTSCRIPTCLASSIC_PATCHES})
+PATCHES := $(addprefix src/lib/qt5/patches/, ${QT5_PATCHES} ${QTSCRIPTCLASSIC_PATCHES})
PATCH_OPT := -p1 -d ${DIR(${QT5})}
PATCH_OPT(src/lib/qt5/patches/qtscriptclassic_qt5.patch) := -p1 -d ${DIR(${QTSCRIPTCLASSIC})}
PATCH_OPT(src/lib/qt5/patches/qtscriptclassic_qt5_7.patch) := -p1 -d ${DIR(${QTSCRIPTCLASSIC})}
+MOC := /usr/local/genode-qt5/bin/moc
+
$(call check_tool,bison)
+$(call check_tool,flex)
+$(call check_tool,gperf)
$(call check_tool,perl)
$(call check_tool,python)
$(call check_tool,sed)
-$(call check_tool,gperf)
+$(call check_tool,$(MOC))
+
+# generate Qt headers suitable for API package creation (no forwarding headers)
+
+ifneq ($(VERBOSE),)
+OUTPUT_FILTER = >/dev/null 2>&1
+endif
+
+QT5_CONTRIB_DIR = $(CURDIR)/${DIR(${QT5})}
+BUILD_DIR = $(CURDIR)/build
+
+QMAKE = $(BUILD_DIR)/qtbase/bin/qmake
+
+$(QMAKE): _patch
+ $(VERBOSE)$(MSG_GENERATE)files...
+ $(VERBOSE)mkdir -p $(BUILD_DIR)
+ $(VERBOSE)cd $(BUILD_DIR) && $(QT5_CONTRIB_DIR)/configure \
+ -opensource \
+ -confirm-license \
+ -no-iconv \
+ -no-opengl \
+ $(OUTPUT_FILTER)
+
+#
+# generate Makefile from Qmake project file
+#
+# $(1): path of Qmake project file
+#
+define generate_makefile
+ $(VERBOSE)mkdir -p $(dir $@) && \
+ cd $(dir $@) && \
+ $(QMAKE) -o $@ $(1) -qtconf $(BUILD_DIR)/qtbase/bin/qt.conf -- -opensource $(OUTPUT_FILTER) && \
+ sed -i 's/first: all/first:/g' $@
+endef
+
+# qtbase
+
+$(BUILD_DIR)/qtbase/Makefile: $(QMAKE)
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtbase/qtbase.pro)
+
+$(BUILD_DIR)/qtbase/src/Makefile: $(BUILD_DIR)/qtbase/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtbase/src/src.pro)
+
+$(BUILD_DIR)/qtbase/src/corelib/Makefile: $(BUILD_DIR)/qtbase/src/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtbase/src/corelib/corelib.pro)
+
+$(BUILD_DIR)/qtbase/src/gui/Makefile: $(BUILD_DIR)/qtbase/src/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtbase/src/gui/gui.pro)
+
+$(BUILD_DIR)/qtbase/src/network/Makefile: $(BUILD_DIR)/qtbase/src/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtbase/src/network/network.pro)
+
+# the 'include/QtWidgets' dependency is needed for a correct 'QtOpenGLDepends' header
+$(BUILD_DIR)/qtbase/src/opengl/Makefile: $(BUILD_DIR)/qtbase/src/Makefile include/QtWidgets
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtbase/src/opengl/opengl.pro)
+
+$(BUILD_DIR)/qtbase/src/platformheaders/Makefile: $(BUILD_DIR)/qtbase/src/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtbase/src/platformheaders/platformheaders.pro)
+
+$(BUILD_DIR)/qtbase/src/platformsupport/Makefile: $(BUILD_DIR)/qtbase/src/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtbase/src/platformsupport/platformsupport.pro)
+
+$(BUILD_DIR)/qtbase/src/platformsupport/eglconvenience/Makefile: $(BUILD_DIR)/qtbase/src/platformsupport/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtbase/src/platformsupport/eglconvenience/eglconvenience.pro)
+
+$(BUILD_DIR)/qtbase/src/platformsupport/eventdispatchers/Makefile: $(BUILD_DIR)/qtbase/src/platformsupport/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtbase/src/platformsupport/eventdispatchers/eventdispatchers.pro)
+
+$(BUILD_DIR)/qtbase/src/platformsupport/fontdatabases/Makefile: $(BUILD_DIR)/qtbase/src/platformsupport/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtbase/src/platformsupport/fontdatabases/fontdatabases.pro)
+
+$(BUILD_DIR)/qtbase/src/platformsupport/input/Makefile: $(BUILD_DIR)/qtbase/src/platformsupport/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtbase/src/platformsupport/input/input.pro)
+
+# the 'include/QtWidgets' dependency is needed for a correct 'QtPrintSupportDepends' header
+$(BUILD_DIR)/qtbase/src/printsupport/Makefile: $(BUILD_DIR)/qtbase/src/Makefile include/QtWidgets
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtbase/src/printsupport/printsupport.pro)
+
+$(BUILD_DIR)/qtbase/src/sql/Makefile: $(BUILD_DIR)/qtbase/src/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtbase/src/sql/sql.pro)
+
+$(BUILD_DIR)/qtbase/src/widgets/Makefile: $(BUILD_DIR)/qtbase/src/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtbase/src/widgets/widgets.pro)
+
+$(BUILD_DIR)/qtbase/src/xml/Makefile: $(BUILD_DIR)/qtbase/src/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtbase/src/xml/xml.pro)
+
+# qtdeclarative
+
+$(BUILD_DIR)/qtdeclarative/Makefile: $(QMAKE)
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtdeclarative/qtdeclarative.pro)
+
+$(BUILD_DIR)/qtdeclarative/src/Makefile: $(BUILD_DIR)/qtdeclarative/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtdeclarative/src/src.pro)
+
+$(BUILD_DIR)/qtdeclarative/src/qml/Makefile: $(BUILD_DIR)/qtdeclarative/src/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtdeclarative/src/qml/qml.pro)
+
+$(BUILD_DIR)/qtdeclarative/src/quick/Makefile: $(BUILD_DIR)/qtdeclarative/src/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtdeclarative/src/quick/quick.pro)
+
+# qtsvg
+
+$(BUILD_DIR)/qtsvg/Makefile: $(QMAKE)
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtsvg/qtsvg.pro)
+
+$(BUILD_DIR)/qtsvg/src/Makefile: $(BUILD_DIR)/qtsvg/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtsvg/src/src.pro)
+
+$(BUILD_DIR)/qtsvg/src/svg/Makefile: $(BUILD_DIR)/qtsvg/src/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtsvg/src/svg/svg.pro)
+
+# qttools
+
+$(BUILD_DIR)/qttools/Makefile: $(QMAKE)
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qttools/qttools.pro)
+
+$(BUILD_DIR)/qttools/src/Makefile: $(BUILD_DIR)/qttools/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qttools/src/src.pro)
+
+$(BUILD_DIR)/qttools/src/designer/Makefile: $(BUILD_DIR)/qttools/src/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qttools/src/designer/designer.pro)
+
+$(BUILD_DIR)/qttools/src/designer/src/Makefile: $(BUILD_DIR)/qttools/src/designer/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qttools/src/designer/src/src.pro)
+
+$(BUILD_DIR)/qttools/src/designer/src/lib/Makefile: $(BUILD_DIR)/qttools/src/designer/src/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qttools/src/designer/src/lib/lib.pro)
+
+$(BUILD_DIR)/qttools/src/designer/src/uiplugin/Makefile: $(BUILD_DIR)/qttools/src/designer/src/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qttools/src/designer/src/uiplugin/uiplugin.pro)
+
+$(BUILD_DIR)/qttools/src/designer/src/uitools/Makefile: $(BUILD_DIR)/qttools/src/designer/src/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qttools/src/designer/src/uitools/uitools.pro)
+
+# qtwebkit
+
+$(BUILD_DIR)/qtwebkit/Makefile: $(QMAKE)
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtwebkit/WebKit.pro)
+
+$(BUILD_DIR)/qtwebkit/Source/Makefile.api: $(BUILD_DIR)/qtwebkit/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtwebkit/Source/api.pri)
+
+$(BUILD_DIR)/qtwebkit/Source/Makefile.widgetsapi: $(BUILD_DIR)/qtwebkit/Makefile
+ $(call generate_makefile, $(QT5_CONTRIB_DIR)/qtwebkit/Source/widgetsapi.pri)
+
+#
+# include directories
+#
+
+# qtbase
+
+include/QtCore: $(BUILD_DIR)/qtbase/src/corelib/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+ $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtbase/src/corelib/qtcore-config.h $@/
+ $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtbase/src/corelib/qtcore-config_p.h $@/$(VERSION)/QtCore/private/
+
+include/QtEglSupport: $(BUILD_DIR)/qtbase/src/platformsupport/eglconvenience/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+
+include/QtEventDispatcherSupport: $(BUILD_DIR)/qtbase/src/platformsupport/eventdispatchers/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+
+include/QtFontDatabaseSupport: $(BUILD_DIR)/qtbase/src/platformsupport/fontdatabases/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+
+include/QtGui: $(BUILD_DIR)/qtbase/src/gui/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_qpa_headers $(OUTPUT_FILTER)
+ $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtbase/src/gui/qtgui-config.h $@/
+ $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtbase/src/gui/qtgui-config_p.h $@/$(VERSION)/QtGui/private/
+
+include/QtInputSupport: $(BUILD_DIR)/qtbase/src/platformsupport/input/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+
+include/QtNetwork: $(BUILD_DIR)/qtbase/src/network/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+ $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtbase/src/network/qtnetwork-config.h $@/
+ $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtbase/src/network/qtnetwork-config_p.h $@/$(VERSION)/QtNetwork/private/
+
+include/QtOpenGL: $(BUILD_DIR)/qtbase/src/opengl/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+
+include/QtPlatformHeaders: $(BUILD_DIR)/qtbase/src/platformheaders/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+
+include/QtPrintSupport: $(BUILD_DIR)/qtbase/src/printsupport/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_qpa_headers $(OUTPUT_FILTER)
+ $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtbase/src/printsupport/qtprintsupport-config.h $@/
+ $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtbase/src/printsupport/qtprintsupport-config_p.h $@/$(VERSION)/QtPrintSupport/private/
+
+include/QtSql: $(BUILD_DIR)/qtbase/src/sql/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+ $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtbase/src/sql/qtsql-config.h $@/
+ $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtbase/src/sql/qtsql-config_p.h $@/$(VERSION)/QtSql/private/
+
+include/QtWidgets: $(BUILD_DIR)/qtbase/src/widgets/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+ $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtbase/src/widgets/qtwidgets-config.h $@/
+ $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtbase/src/widgets/qtwidgets-config_p.h $@/$(VERSION)/QtWidgets/private/
+
+include/QtXml: $(BUILD_DIR)/qtbase/src/xml/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+ $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtbase/src/xml/qtxml-config.h $@/
+ $(VERBOSE)cp $(QT5_CONTRIB_DIR)/qtbase/src/xml/qtxml-config_p.h $@/$(VERSION)/QtXml/private/
+
+# qtdeclarative
+
+include/QtQml: $(BUILD_DIR)/qtdeclarative/src/qml/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+
+include/QtQuick: $(BUILD_DIR)/qtdeclarative/src/quick/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+
+# qtscriptclassic
+
+include/QtScript:
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)cp -a $(CURDIR)/${DIR(${QTSCRIPTCLASSIC})}/include/QtScript $@
+ $(VERBOSE)cp -a $(CURDIR)/${DIR(${QTSCRIPTCLASSIC})}/src/*[^_p].h $@/
+
+# qtsvg
+
+include/QtSvg: $(BUILD_DIR)/qtsvg/src/svg/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+
+# qttools
+
+include/QtDesigner: $(BUILD_DIR)/qttools/src/designer/src/lib/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+
+include/QtUiPlugin: $(BUILD_DIR)/qttools/src/designer/src/uiplugin/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+
+include/QtUiTools: $(BUILD_DIR)/qttools/src/designer/src/uitools/Makefile
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+
+# qtwebkit
+
+include/QtWebKit: $(BUILD_DIR)/qtwebkit/Source/Makefile.api
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+
+include/QtWebKitWidgets: $(BUILD_DIR)/qtwebkit/Source/Makefile.widgetsapi
+ $(VERBOSE)$(MSG_GENERATE)$@
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_class_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_targ_headers $(OUTPUT_FILTER)
+ $(VERBOSE)make -f $< INSTALL_ROOT=$(CURDIR) install_private_headers $(OUTPUT_FILTER)
+
+#
+# additional generated headers
+#
+
+# qtdeclarative
+
+$(CURDIR)/src/lib/qt5/qtdeclarative/src/3rdparty/masm/generated.tag: _patch
+ $(VERBOSE)mkdir -p $(dir $@)
+ $(VERBOSE)python $(QT5_CONTRIB_DIR)/qtdeclarative/src/3rdparty/masm/create_regex_tables > $(dir $@)/RegExpJitTables.h
+ $(VERBOSE)touch $@
+
+# qtwebkit
+
+ANGLE_DIR := $(QT5_CONTRIB_DIR)/qtwebkit/Source/ThirdParty/ANGLE
+
+$(CURDIR)/src/lib/qt5/qtwebkit/Source/ThirdParty/ANGLE/generated/generated.tag: _patch
+
+ $(VERBOSE)mkdir -p $(dir $@)
+
+ $(VERBOSE)flex --noline --nounistd --outfile=$(dir $@)/glslang_lex.cpp $(ANGLE_DIR)/src/compiler/glslang.l
+ $(VERBOSE)flex --noline --nounistd --outfile=$(dir $@)/Tokenizer_lex.cpp $(ANGLE_DIR)/src/compiler/preprocessor/Tokenizer.l
+ $(VERBOSE)bison --no-lines --skeleton=yacc.c --defines=$(dir $@)/glslang_tab.h --output=$(dir $@)/glslang_tab.cpp $(ANGLE_DIR)/src/compiler/glslang.y
+ $(VERBOSE)bison --no-lines --skeleton=yacc.c --defines=$(dir $@)/ExpressionParser_tab.h --output=$(dir $@)/ExpressionParser_tab.cpp $(ANGLE_DIR)/src/compiler/preprocessor/ExpressionParser.y
+
+ $(VERBOSE)touch $@
+
+JAVASCRIPTCORE_DIR = $(QT5_CONTRIB_DIR)/qtwebkit/Source/JavaScriptCore
+
+$(CURDIR)/src/lib/qt5/qtwebkit/Source/JavaScriptCore/generated/generated.tag: _patch
+
+ $(VERBOSE)mkdir -p $(dir $@)
+
+ @# create_hash_table
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/ArrayConstructor.cpp -i > $(dir $@)/ArrayConstructor.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/ArrayPrototype.cpp -i > $(dir $@)/ArrayPrototype.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/BooleanPrototype.cpp -i > $(dir $@)/BooleanPrototype.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/DateConstructor.cpp -i > $(dir $@)/DateConstructor.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/DatePrototype.cpp -i > $(dir $@)/DatePrototype.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/ErrorPrototype.cpp -i > $(dir $@)/ErrorPrototype.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/JSGlobalObject.cpp -i > $(dir $@)/JSGlobalObject.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/JSONObject.cpp -i > $(dir $@)/JSONObject.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/MathObject.cpp -i > $(dir $@)/MathObject.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/NamePrototype.cpp -i > $(dir $@)/NamePrototype.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/NumberConstructor.cpp -i > $(dir $@)/NumberConstructor.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/NumberPrototype.cpp -i > $(dir $@)/NumberPrototype.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/ObjectConstructor.cpp -i > $(dir $@)/ObjectConstructor.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/RegExpConstructor.cpp -i > $(dir $@)/RegExpConstructor.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/RegExpObject.cpp -i > $(dir $@)/RegExpObject.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/RegExpPrototype.cpp -i > $(dir $@)/RegExpPrototype.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/runtime/StringConstructor.cpp -i > $(dir $@)/StringConstructor.lut.h
+ $(VERBOSE)perl $(JAVASCRIPTCORE_DIR)/create_hash_table $(JAVASCRIPTCORE_DIR)/parser/Keywords.table -i > $(dir $@)/Lexer.lut.h
+
+ @# create_regex_tables
+ $(VERBOSE)python $(JAVASCRIPTCORE_DIR)/create_regex_tables > $(dir $@)/RegExpJitTables.h
+
+ @# KeywordLookupGenerator.py
+ $(VERBOSE)python $(JAVASCRIPTCORE_DIR)/KeywordLookupGenerator.py $(JAVASCRIPTCORE_DIR)/parser/Keywords.table > $(dir $@)/KeywordLookup.h
+
+ $(VERBOSE)touch $@
+
+
+# command names used by some of the extracted generator commands
+DEL_FILE := rm
+MOVE := mv
+
+WEBCORE_DIR = $(QT5_CONTRIB_DIR)/qtwebkit/Source/WebCore
+
+DEFINES = "LANGUAGE_JAVASCRIPT=1 ENABLE_3D_RENDERING=1 ENABLE_ACCELERATED_2D_CANVAS=1 ENABLE_BLOB=1 ENABLE_CANVAS_PATH=1 ENABLE_CHANNEL_MESSAGING=1 ENABLE_CSS_BOX_DECORATION_BREAK=1 ENABLE_CSS_COMPOSITING=1 ENABLE_CSS_EXCLUSIONS=1 ENABLE_CSS_FILTERS=1 ENABLE_CSS_IMAGE_SET=1 ENABLE_CSS_REGIONS=1 ENABLE_CSS_SHAPES=1 ENABLE_CSS_STICKY_POSITION=1 ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED=1 ENABLE_DATALIST_ELEMENT=1 ENABLE_DETAILS_ELEMENT=1 ENABLE_DOWNLOAD_ATTRIBUTE=1 ENABLE_FAST_MOBILE_SCROLLING=1 ENABLE_FILTERS=1 ENABLE_FTPDIR=1 ENABLE_FULLSCREEN_API=1 ENABLE_GESTURE_EVENTS=1 ENABLE_ICONDATABASE=1 ENABLE_IFRAME_SEAMLESS=1 ENABLE_INPUT_TYPE_COLOR=1 ENABLE_INSPECTOR=1 ENABLE_INSPECTOR_SERVER=1 ENABLE_JAVASCRIPT_DEBUGGER=1 ENABLE_LEGACY_NOTIFICATIONS=1 ENABLE_LEGACY_VIEWPORT_ADAPTION=1 ENABLE_LEGACY_VENDOR_PREFIXES=1 ENABLE_LEGACY_WEB_AUDIO=1 ENABLE_LINK_PREFETCH=1 ENABLE_METER_ELEMENT=1 ENABLE_MHTML=1 ENABLE_NOTIFICATIONS=1 ENABLE_PAGE_VISIBILITY_API=1 ENABLE_PROGRESS_ELEMENT=1 ENABLE_RESOLUTION_MEDIA_QUERY=1 ENABLE_REQUEST_ANIMATION_FRAME=1 ENABLE_SHARED_WORKERS=1 ENABLE_SMOOTH_SCROLLING=1 ENABLE_SQL_DATABASE=1 ENABLE_SUBPIXEL_LAYOUT=1 ENABLE_SVG=1 ENABLE_SVG_FONTS=1 ENABLE_TOUCH_ADJUSTMENT=1 ENABLE_TOUCH_EVENTS=1 ENABLE_TOUCH_SLIDER=1 ENABLE_VIEW_MODE_CSS_MEDIA=1 ENABLE_WEB_SOCKETS=1 ENABLE_WEB_TIMING=1 ENABLE_WORKERS=1 ENABLE_XHR_TIMEOUT=1 ENABLE_WEBGL=1"
+EXTRA_DEFINES = "QT_NO_MTDEV QT_NO_LIBUDEV QT_NO_TSLIB QT_NO_LIBINPUT ENABLE_3D_RENDERING=1 ENABLE_ACCELERATED_2D_CANVAS=1 ENABLE_BLOB=1 ENABLE_CANVAS_PATH=1 ENABLE_CHANNEL_MESSAGING=1 ENABLE_CSS_BOX_DECORATION_BREAK=1 ENABLE_CSS_COMPOSITING=1 ENABLE_CSS_EXCLUSIONS=1 ENABLE_CSS_FILTERS=1 ENABLE_CSS_IMAGE_SET=1 ENABLE_CSS_REGIONS=1 ENABLE_CSS_SHAPES=1 ENABLE_CSS_STICKY_POSITION=1 ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED=1 ENABLE_DATALIST_ELEMENT=1 ENABLE_DETAILS_ELEMENT=1 ENABLE_DOWNLOAD_ATTRIBUTE=1 ENABLE_FAST_MOBILE_SCROLLING=1 ENABLE_FILTERS=1 ENABLE_FTPDIR=1 ENABLE_FULLSCREEN_API=1 ENABLE_GESTURE_EVENTS=1 ENABLE_ICONDATABASE=1 ENABLE_IFRAME_SEAMLESS=1 ENABLE_INPUT_TYPE_COLOR=1 ENABLE_INSPECTOR=1 ENABLE_INSPECTOR_SERVER=1 ENABLE_JAVASCRIPT_DEBUGGER=1 ENABLE_LEGACY_NOTIFICATIONS=1 ENABLE_LEGACY_VIEWPORT_ADAPTION=1 ENABLE_LEGACY_VENDOR_PREFIXES=1 ENABLE_LEGACY_WEB_AUDIO=1 ENABLE_LINK_PREFETCH=1 ENABLE_METER_ELEMENT=1 ENABLE_MHTML=1 ENABLE_NOTIFICATIONS=1 ENABLE_PAGE_VISIBILITY_API=1 ENABLE_PROGRESS_ELEMENT=1 ENABLE_RESOLUTION_MEDIA_QUERY=1 ENABLE_REQUEST_ANIMATION_FRAME=1 ENABLE_SHARED_WORKERS=1 ENABLE_SMOOTH_SCROLLING=1 ENABLE_SQL_DATABASE=1 ENABLE_SUBPIXEL_LAYOUT=1 ENABLE_SVG=1 ENABLE_SVG_FONTS=1 ENABLE_TOUCH_ADJUSTMENT=1 ENABLE_TOUCH_EVENTS=1 ENABLE_TOUCH_SLIDER=1 ENABLE_VIEW_MODE_CSS_MEDIA=1 ENABLE_WEB_SOCKETS=1 ENABLE_WEB_TIMING=1 ENABLE_WORKERS=1 ENABLE_XHR_TIMEOUT=1 WTF_USE_TILED_BACKING_STORE=1 WTF_USE_CROSS_PLATFORM_CONTEXT_MENUS=1 HAVE_QTQUICK=1 HAVE_QTPRINTSUPPORT=1 HAVE_QSTYLE=1 HAVE_QTTESTLIB=1 WTF_USE_LIBJPEG=1 WTF_USE_LIBPNG=1 PLUGIN_ARCHITECTURE_UNSUPPORTED=1 WTF_USE_3D_GRAPHICS=1 ENABLE_WEBGL=1 ENABLE_BATTERY_STATUS=0 ENABLE_CANVAS_PROXY=0 ENABLE_CSP_NEXT=0 ENABLE_CSS_GRID_LAYOUT=0 ENABLE_CSS_HIERARCHIES=0 ENABLE_CSS_IMAGE_ORIENTATION=0 ENABLE_CSS_IMAGE_RESOLUTION=0 ENABLE_CSS_SHADERS=0 ENABLE_CSS_VARIABLES=0 ENABLE_CSS3_CONDITIONAL_RULES=0 ENABLE_CSS3_TEXT=0 ENABLE_CSS3_TEXT_LINE_BREAK=0 ENABLE_DASHBOARD_SUPPORT=0 ENABLE_DATAGRID=0 ENABLE_DATA_TRANSFER_ITEMS=0 ENABLE_DEVICE_ORIENTATION=0 ENABLE_DIRECTORY_UPLOAD=0 ENABLE_FILE_SYSTEM=0 ENABLE_FONT_LOAD_EVENTS=0 ENABLE_GAMEPAD=0 ENABLE_GEOLOCATION=0 ENABLE_HIGH_DPI_CANVAS=0 ENABLE_INDEXED_DATABASE=0 ENABLE_INPUT_SPEECH=0 ENABLE_INPUT_TYPE_DATE=0 ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE=0 ENABLE_INPUT_TYPE_DATETIMELOCAL=0 ENABLE_INPUT_TYPE_MONTH=0 ENABLE_INPUT_TYPE_TIME=0 ENABLE_INPUT_TYPE_WEEK=0 ENABLE_LEGACY_CSS_VENDOR_PREFIXES=0 ENABLE_MATHML=0 ENABLE_MEDIA_SOURCE=0 ENABLE_MEDIA_STATISTICS=0 ENABLE_MEDIA_STREAM=0 ENABLE_MICRODATA=0 ENABLE_MOUSE_CURSOR_SCALE=0 ENABLE_NAVIGATOR_CONTENT_UTILS=0 ENABLE_NETSCAPE_PLUGIN_API=0 ENABLE_NETWORK_INFO=0 ENABLE_NOSNIFF=0 ENABLE_ORIENTATION_EVENTS=0 ENABLE_PROXIMITY_EVENTS=0 ENABLE_QUOTA=0 ENABLE_RESOURCE_TIMING=0 ENABLE_SCRIPTED_SPEECH=0 ENABLE_SECCOMP_FILTERS=0 ENABLE_SHADOW_DOM=0 ENABLE_STYLE_SCOPED=0 ENABLE_TEMPLATE_ELEMENT=0 ENABLE_TEXT_AUTOSIZING=0 ENABLE_THREADED_HTML_PARSER=0 ENABLE_TOUCH_ICON_LOADING=0 ENABLE_USER_TIMING=0 ENABLE_VIBRATION=0 ENABLE_VIDEO=0 ENABLE_VIDEO_TRACK=0 ENABLE_WEB_AUDIO=0 ENABLE_XSLT=0"
+GENERATE_BINDINGS_PL = export "SOURCE_ROOT=$(WEBCORE_DIR)" && perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/bindings/scripts/generate-bindings.pl --defines $(DEFINES) --generator JS --include Modules/filesystem --include Modules/geolocation --include Modules/indexeddb --include Modules/mediasource --include Modules/notifications --include Modules/quota --include Modules/webaudio --include Modules/webdatabase --include Modules/websockets --include css --include dom --include editing --include fileapi --include html --include html/canvas --include html/shadow --include html/track --include inspector --include loader/appcache --include page --include plugins --include storage --include svg --include testing --include workers --include xml --outputDir $(dir $@) --supplementalDependencyFile $(dir $@)/supplemental_dependency.tmp --idlAttributesFile $(WEBCORE_DIR)/bindings/scripts/IDLAttributes.txt --preprocessor "$(MOC) -E"
+# The directory with the generated files must be added for the Genode build
+# system, because it is not a subdirectory of the current directory.
+GENERATE_BINDINGS_PL += --include $(dir $@)
+
+$(CURDIR)/src/lib/qt5/qtwebkit/Source/WebCore/generated/generated.tag: _patch
+
+ $(VERBOSE)mkdir -p $(dir $@)
+
+ @# make_names.pl
+ $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_names.pl --tags $(WEBCORE_DIR)/mathml/mathtags.in --attrs $(WEBCORE_DIR)/mathml/mathattrs.in --extraDefines $(EXTRA_DEFINES) --preprocessor "$(MOC) -E" --factory --wrapperFactory --outputDir $(dir $@)
+ $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_names.pl --tags $(WEBCORE_DIR)/svg/svgtags.in --attrs $(WEBCORE_DIR)/svg/svgattrs.in --extraDefines $(EXTRA_DEFINES) --preprocessor "$(MOC) -E" --factory --wrapperFactory --outputDir $(dir $@)
+ $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_names.pl --attrs $(WEBCORE_DIR)/svg/xlinkattrs.in --preprocessor "$(MOC) -E" --outputDir $(dir $@)
+
+ @# makeprop.pl
+ $(VERBOSE)perl -ne "print $1" $(WEBCORE_DIR)/css/CSSPropertyNames.in $(WEBCORE_DIR)/css/SVGCSSPropertyNames.in > $(dir $@)/CSSPropertyNames.in && cd $(dir $@) && perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/css/makeprop.pl --defines $(DEFINES) --preprocessor "$(MOC) -E" $(WEBCORE_DIR)/css/CSSPropertyNames.in && $(DEL_FILE) CSSPropertyNames.in CSSPropertyNames.gperf
+
+ @# make_settings.pl
+ $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/page/make_settings.pl --input $(WEBCORE_DIR)/page/Settings.in --outputDir $(dir $@)
+
+ @# makevalues.pl
+ $(VERBOSE)perl -ne "print $1" $(WEBCORE_DIR)/css/CSSValueKeywords.in $(WEBCORE_DIR)/css/SVGCSSValueKeywords.in > $(dir $@)/CSSValueKeywords.in && cd $(dir $@) && perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/css/makevalues.pl --defines $(DEFINES) --preprocessor "$(MOC) -E" $(WEBCORE_DIR)/css/CSSValueKeywords.in && $(DEL_FILE) CSSValueKeywords.in CSSValueKeywords.gperf
+
+ @# preprocess-idls.pl
+ $(VERBOSE)sed -e "s,^qtwebkit,$(QT5_CONTRIB_DIR)/qtwebkit,g" -e "s,^generated/,$(dir $@),g" $(REP_DIR)/src/lib/qt5/qtwebkit/Source/WebCore/idl_files > $(dir $@)/idl_files.tmp
+ $(VERBOSE)export "QT5_CONTRIB_DIR=$(QT5_CONTRIB_DIR)" && perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/bindings/scripts/preprocess-idls.pl --defines $(DEFINES) --idlFilesList $(dir $@)/idl_files.tmp --supplementalDependencyFile $(dir $@)/supplemental_dependency.tmp --windowConstructorsFile $(dir $@)/DOMWindowConstructors.idl --workerGlobalScopeConstructorsFile $(dir $@)/WorkerGlobalScopeConstructors.idl --sharedWorkerGlobalScopeConstructorsFile $(dir $@)/SharedWorkerGlobalScopeConstructors.idl --dedicatedWorkerGlobalScopeConstructorsFile $(dir $@)/DedicatedWorkerGlobalScopeConstructors.idl
+
+ @# generate-bindings.pl
+ $(VERBOSE)cd $(dir $@) && while read -r idl_file; do $(GENERATE_BINDINGS_PL) $$idl_file; done < $(dir $@)/idl_files.tmp
+ #$(VERBOSE)while read -r idl_file; do echo "$(GENERATE_BINDINGS_PL) $$idl_file"; $(GENERATE_BINDINGS_PL) $$idl_file; done < $(dir $@)/idl_files.tmp
+
+ @# CodeGeneratorInspector.py
+ $(VERBOSE)python $(WEBCORE_DIR)/inspector/CodeGeneratorInspector.py $(WEBCORE_DIR)/inspector/Inspector.json --output_h_dir $(dir $@) --output_cpp_dir $(dir $@)
+
+ @# xxd.pl
+ $(VERBOSE)perl $(WEBCORE_DIR)/inspector/xxd.pl InspectorOverlayPage_html $(WEBCORE_DIR)/inspector/InspectorOverlayPage.html $(dir $@)/InspectorOverlayPage.h
+ $(VERBOSE)perl $(WEBCORE_DIR)/inspector/xxd.pl InjectedScriptSource_js $(WEBCORE_DIR)/inspector/InjectedScriptSource.js $(dir $@)/InjectedScriptSource.h
+ $(VERBOSE)perl $(WEBCORE_DIR)/inspector/xxd.pl InjectedScriptCanvasModuleSource_js $(WEBCORE_DIR)/inspector/InjectedScriptCanvasModuleSource.js $(dir $@)/InjectedScriptCanvasModuleSource.h
+
+ @# makegrammar.pl
+ $(VERBOSE)perl -I $(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/css/makegrammar.pl --outputDir $(dir $@) --extraDefines $(EXTRA_DEFINES) --preprocessor "$(MOC) -E" --symbolsPrefix cssyy $(WEBCORE_DIR)/css/CSSGrammar.y.in
+
+ @# make_names.pl
+ $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_names.pl --tags $(WEBCORE_DIR)/html/HTMLTagNames.in --attrs $(WEBCORE_DIR)/html/HTMLAttributeNames.in --extraDefines $(EXTRA_DEFINES) --preprocessor "$(MOC) -E" --factory --wrapperFactory --outputDir $(dir $@)
+ $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_names.pl --attrs $(WEBCORE_DIR)/xml/xmlnsattrs.in --preprocessor "$(MOC) -E" --outputDir $(dir $@)
+ $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_names.pl --attrs $(WEBCORE_DIR)/xml/xmlattrs.in --preprocessor "$(MOC) -E" --outputDir $(dir $@)
+ $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_names.pl --fonts $(WEBCORE_DIR)/css/WebKitFontFamilyNames.in --outputDir $(dir $@)
+
+ @# make_event_factory.pl
+ $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_event_factory.pl --input $(WEBCORE_DIR)/dom/EventNames.in --outputDir $(dir $@)
+ $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_event_factory.pl --input $(WEBCORE_DIR)/dom/EventTargetFactory.in --outputDir $(dir $@)
+
+ @# make-dom-exceptions.pl
+ $(VERBOSE)perl -I$(WEBCORE_DIR)/bindings/scripts $(WEBCORE_DIR)/dom/make_dom_exceptions.pl --input $(WEBCORE_DIR)/dom/DOMExceptions.in --outputDir $(dir $@)
+
+ @# create-html-entity-table
+ $(VERBOSE)python $(WEBCORE_DIR)/html/parser/create-html-entity-table -o $(dir $@)/HTMLEntityTable.cpp $(WEBCORE_DIR)/html/parser/HTMLEntityNames.in
+
+ @# make-hash-tools.pl
+ $(VERBOSE)perl $(WEBCORE_DIR)/make-hash-tools.pl $(dir $@) $(WEBCORE_DIR)/platform/ColorData.gperf
+
+ @# make-css-file-arrays.pl
+ $(VERBOSE)perl $(WEBCORE_DIR)/css/make-css-file-arrays.pl $(dir $@)/UserAgentStyleSheets.h $(dir $@)/UserAgentStyleSheetsData.cpp $(WEBCORE_DIR)/css/html.css $(WEBCORE_DIR)/css/quirks.css $(WEBCORE_DIR)/css/mathml.css $(WEBCORE_DIR)/css/svg.css $(WEBCORE_DIR)/css/view-source.css $(WEBCORE_DIR)/css/fullscreen.css $(WEBCORE_DIR)/css/mediaControls.css $(WEBCORE_DIR)/css/mediaControlsQt.css $(WEBCORE_DIR)/css/mediaControlsQtFullscreen.css $(WEBCORE_DIR)/css/plugIns.css $(WEBCORE_DIR)/css/themeQtNoListboxes.css $(WEBCORE_DIR)/css/mobileThemeQt.css
+ $(VERBOSE)perl $(WEBCORE_DIR)/css/make-css-file-arrays.pl $(dir $@)/PlugInsResources.h $(dir $@)/PlugInsResourcesData.cpp $(WEBCORE_DIR)/Resources/plugIns.js
+
+ @# XPathGrammar
+ $(VERBOSE)bison -d -p xpathyy $(WEBCORE_DIR)/xml/XPathGrammar.y -o $(dir $@)/XPathGrammar.tab.c && $(MOVE) $(dir $@)/XPathGrammar.tab.c $(dir $@)/XPathGrammar.cpp && $(MOVE) $(dir $@)/XPathGrammar.tab.h $(dir $@)/XPathGrammar.h
+
+ @# generate-webkit-version.pl
+ $(VERBOSE)perl $(WEBCORE_DIR)/../WebKit/scripts/generate-webkitversion.pl --config $(WEBCORE_DIR)/../WebKit/mac/Configurations/Version.xcconfig --outputDir $(dir $@)/
+
+ $(VERBOSE)touch $@
+
+
+qt5_headers: include/QtCore \
+ include/QtEglSupport \
+ include/QtEventDispatcherSupport \
+ include/QtFontDatabaseSupport \
+ include/QtGui \
+ include/QtInputSupport \
+ include/QtNetwork \
+ include/QtOpenGL \
+ include/QtPlatformHeaders \
+ include/QtPrintSupport \
+ include/QtSql \
+ include/QtWidgets \
+ include/QtXml \
+ include/QtScript \
+ include/QtQml \
+ include/QtQuick \
+ include/QtSvg \
+ include/QtDesigner \
+ include/QtUiPlugin \
+ include/QtUiTools \
+ include/QtWebKit \
+ include/QtWebKitWidgets
+ $(VERBOSE)rm -rf $(BUILD_DIR)
+
+qtdeclarative_generated: $(CURDIR)/src/lib/qt5/qtdeclarative/src/3rdparty/masm/generated.tag
+
+qtwebkit_generated: $(CURDIR)/src/lib/qt5/qtwebkit/Source/ThirdParty/ANGLE/generated/generated.tag \
+ $(CURDIR)/src/lib/qt5/qtwebkit/Source/JavaScriptCore/generated/generated.tag \
+ $(CURDIR)/src/lib/qt5/qtwebkit/Source/WebCore/generated/generated.tag
+
+default: qt5_headers qtdeclarative_generated qtwebkit_generated
diff --git a/repos/libports/recipes/api/qt5_component/content.mk b/repos/libports/recipes/api/qt5_component/content.mk
new file mode 100644
index 000000000..fbe7e6519
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_component/content.mk
@@ -0,0 +1,9 @@
+MIRROR_FROM_REP_DIR := lib/symbols/qt5_component
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
diff --git a/repos/libports/recipes/api/qt5_component/hash b/repos/libports/recipes/api/qt5_component/hash
new file mode 100644
index 000000000..819f0e4be
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_component/hash
@@ -0,0 +1 @@
+2018-04-23 736a2965e080df6b0a822a153b594c7dea1461d8
diff --git a/repos/libports/recipes/api/qt5_core/content.mk b/repos/libports/recipes/api/qt5_core/content.mk
new file mode 100644
index 000000000..8e5637b2e
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_core/content.mk
@@ -0,0 +1,26 @@
+MIRROR_FROM_REP_DIR := lib/import/import-qt5_core.mk \
+ lib/import/import-qt5.inc
+
+content: $(MIRROR_FROM_REP_DIR)
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := include/QtCore \
+ lib/symbols/qt5_core \
+ src/lib/qt5/qt5/qtbase/mkspecs/common/c89 \
+ src/lib/qt5/qt5/qtbase/mkspecs/common/posix \
+ src/lib/qt5/qt5/qtbase/mkspecs/genode-g++
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/api/qt5_core/hash b/repos/libports/recipes/api/qt5_core/hash
new file mode 100644
index 000000000..aeab2ca65
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_core/hash
@@ -0,0 +1 @@
+2018-04-23 b61104a2280c5ebb51528e6ed62794db5f3cd89d
diff --git a/repos/libports/recipes/api/qt5_gui/content.mk b/repos/libports/recipes/api/qt5_gui/content.mk
new file mode 100644
index 000000000..b09afdf2b
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_gui/content.mk
@@ -0,0 +1,23 @@
+MIRROR_FROM_REP_DIR := lib/import/import-qt5_gui.mk \
+ lib/import/import-qt5.inc
+
+content: $(MIRROR_FROM_REP_DIR)
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := include/QtGui \
+ lib/symbols/qt5_gui
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/api/qt5_gui/hash b/repos/libports/recipes/api/qt5_gui/hash
new file mode 100644
index 000000000..d91cdbbd8
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_gui/hash
@@ -0,0 +1 @@
+2018-04-23 2595b1b627ee17713f75208a49fdc5b58cf2d355
diff --git a/repos/libports/recipes/api/qt5_network/content.mk b/repos/libports/recipes/api/qt5_network/content.mk
new file mode 100644
index 000000000..ba3db9884
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_network/content.mk
@@ -0,0 +1,23 @@
+MIRROR_FROM_REP_DIR := lib/import/import-qt5_network.mk \
+ lib/import/import-qt5.inc
+
+content: $(MIRROR_FROM_REP_DIR)
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := include/QtNetwork \
+ lib/symbols/qt5_network
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/api/qt5_network/hash b/repos/libports/recipes/api/qt5_network/hash
new file mode 100644
index 000000000..cd4fca5c7
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_network/hash
@@ -0,0 +1 @@
+2018-04-23 df5f0fb0c97112a80dc1c9dc5e871eb1017c8423
diff --git a/repos/libports/recipes/api/qt5_opengl/content.mk b/repos/libports/recipes/api/qt5_opengl/content.mk
new file mode 100644
index 000000000..90436f9f5
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_opengl/content.mk
@@ -0,0 +1,23 @@
+MIRROR_FROM_REP_DIR := lib/import/import-qt5_opengl.mk \
+ lib/import/import-qt5.inc
+
+content: $(MIRROR_FROM_REP_DIR)
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := include/QtOpenGL \
+ lib/symbols/qt5_opengl
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/api/qt5_opengl/hash b/repos/libports/recipes/api/qt5_opengl/hash
new file mode 100644
index 000000000..8293db565
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_opengl/hash
@@ -0,0 +1 @@
+2018-04-23 f80fe0b2b6943193108c144679765c7ff338cb8d
diff --git a/repos/libports/recipes/api/qt5_printsupport/content.mk b/repos/libports/recipes/api/qt5_printsupport/content.mk
new file mode 100644
index 000000000..76e5ab30c
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_printsupport/content.mk
@@ -0,0 +1,23 @@
+MIRROR_FROM_REP_DIR := lib/import/import-qt5_printsupport.mk \
+ lib/import/import-qt5.inc
+
+content: $(MIRROR_FROM_REP_DIR)
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := include/QtPrintSupport \
+ lib/symbols/qt5_printsupport
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/api/qt5_printsupport/hash b/repos/libports/recipes/api/qt5_printsupport/hash
new file mode 100644
index 000000000..eb16db839
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_printsupport/hash
@@ -0,0 +1 @@
+2018-04-23 01bf4a2eda588c4251645687a9f9ad0e95917336
diff --git a/repos/libports/recipes/api/qt5_qjpeg/content.mk b/repos/libports/recipes/api/qt5_qjpeg/content.mk
new file mode 100644
index 000000000..c4c6fe6c9
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_qjpeg/content.mk
@@ -0,0 +1,22 @@
+MIRROR_FROM_REP_DIR := lib/import/import-qt5_qjpeg.mk \
+ lib/import/import-qt5.inc
+
+content: $(MIRROR_FROM_REP_DIR)
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := lib/symbols/qt5_qjpeg
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/api/qt5_qjpeg/hash b/repos/libports/recipes/api/qt5_qjpeg/hash
new file mode 100644
index 000000000..c858c8140
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_qjpeg/hash
@@ -0,0 +1 @@
+2018-04-23 a473d90520da379de97146b66891bd5cc0fad032
diff --git a/repos/libports/recipes/api/qt5_qml/content.mk b/repos/libports/recipes/api/qt5_qml/content.mk
new file mode 100644
index 000000000..884847b85
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_qml/content.mk
@@ -0,0 +1,23 @@
+MIRROR_FROM_REP_DIR := lib/import/import-qt5_qml.mk \
+ lib/import/import-qt5.inc
+
+content: $(MIRROR_FROM_REP_DIR)
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := include/QtQml \
+ lib/symbols/qt5_qml
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/api/qt5_qml/hash b/repos/libports/recipes/api/qt5_qml/hash
new file mode 100644
index 000000000..9b28f37db
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_qml/hash
@@ -0,0 +1 @@
+2018-04-23 52994ab4eef65a6952735af16e2906840e38c0d2
diff --git a/repos/libports/recipes/api/qt5_qnitpickerviewwidget/content.mk b/repos/libports/recipes/api/qt5_qnitpickerviewwidget/content.mk
new file mode 100644
index 000000000..8da5ca1ad
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_qnitpickerviewwidget/content.mk
@@ -0,0 +1,11 @@
+MIRROR_FROM_REP_DIR := include/qt5/qnitpickerviewwidget \
+ lib/import/import-qt5_qnitpickerviewwidget.mk \
+ lib/symbols/qt5_qnitpickerviewwidget
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
diff --git a/repos/libports/recipes/api/qt5_qnitpickerviewwidget/hash b/repos/libports/recipes/api/qt5_qnitpickerviewwidget/hash
new file mode 100644
index 000000000..d9ad33260
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_qnitpickerviewwidget/hash
@@ -0,0 +1 @@
+2018-04-23 f6be2dbc15ef14ae84b5aa6708584102dbb5c173
diff --git a/repos/libports/recipes/api/qt5_qpa_nitpicker/content.mk b/repos/libports/recipes/api/qt5_qpa_nitpicker/content.mk
new file mode 100644
index 000000000..9580d31d6
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_qpa_nitpicker/content.mk
@@ -0,0 +1,27 @@
+MIRROR_FROM_REP_DIR := include/qt5/qpa_nitpicker \
+ lib/import/import-qt5_qpa_nitpicker.mk \
+ lib/import/import-qt5.inc \
+ lib/symbols/qt5_qpa_nitpicker
+
+content: $(MIRROR_FROM_REP_DIR)
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := include/QtEglSupport \
+ include/QtEventDispatcherSupport \
+ include/QtFontDatabaseSupport \
+ include/QtInputSupport
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $@
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
diff --git a/repos/libports/recipes/api/qt5_qpa_nitpicker/hash b/repos/libports/recipes/api/qt5_qpa_nitpicker/hash
new file mode 100644
index 000000000..b7af2a593
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_qpa_nitpicker/hash
@@ -0,0 +1 @@
+2018-04-23 a98328f29f523f6cda5c147f2049325c3a4823a5
diff --git a/repos/libports/recipes/api/qt5_qpluginwidget/content.mk b/repos/libports/recipes/api/qt5_qpluginwidget/content.mk
new file mode 100644
index 000000000..2cd9e2dd4
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_qpluginwidget/content.mk
@@ -0,0 +1,11 @@
+MIRROR_FROM_REP_DIR := include/qt5/qpluginwidget \
+ lib/import/import-qt5_qpluginwidget.mk \
+ lib/symbols/qt5_qpluginwidget
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
diff --git a/repos/libports/recipes/api/qt5_qpluginwidget/hash b/repos/libports/recipes/api/qt5_qpluginwidget/hash
new file mode 100644
index 000000000..2ce0bffc0
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_qpluginwidget/hash
@@ -0,0 +1 @@
+2018-04-23 d323076752ebbc2f1a1c448e403aab6aaf207df7
diff --git a/repos/libports/recipes/api/qt5_quick/content.mk b/repos/libports/recipes/api/qt5_quick/content.mk
new file mode 100644
index 000000000..62b046b9f
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_quick/content.mk
@@ -0,0 +1,23 @@
+MIRROR_FROM_REP_DIR := lib/import/import-qt5_quick.mk \
+ lib/import/import-qt5.inc
+
+content: $(MIRROR_FROM_REP_DIR)
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := include/QtQuick \
+ lib/symbols/qt5_quick
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/api/qt5_quick/hash b/repos/libports/recipes/api/qt5_quick/hash
new file mode 100644
index 000000000..c3ccc3e57
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_quick/hash
@@ -0,0 +1 @@
+2018-04-23 8fa84fbd3fdb92deb5970396046401f28d7cbac3
diff --git a/repos/libports/recipes/api/qt5_scriptclassic/content.mk b/repos/libports/recipes/api/qt5_scriptclassic/content.mk
new file mode 100644
index 000000000..573dbbede
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_scriptclassic/content.mk
@@ -0,0 +1,23 @@
+MIRROR_FROM_REP_DIR := lib/import/import-qt5_scriptclassic.mk \
+ lib/import/import-qt5.inc
+
+content: $(MIRROR_FROM_REP_DIR)
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := include/QtScript \
+ lib/symbols/qt5_scriptclassic
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/api/qt5_scriptclassic/hash b/repos/libports/recipes/api/qt5_scriptclassic/hash
new file mode 100644
index 000000000..957f9d921
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_scriptclassic/hash
@@ -0,0 +1 @@
+2018-04-23 9e4af56ea60ce95709de15403463e1d6ec1d44b9
diff --git a/repos/libports/recipes/api/qt5_sql/content.mk b/repos/libports/recipes/api/qt5_sql/content.mk
new file mode 100644
index 000000000..d5ee5fae5
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_sql/content.mk
@@ -0,0 +1,23 @@
+MIRROR_FROM_REP_DIR := lib/import/import-qt5_sql.mk \
+ lib/import/import-qt5.inc
+
+content: $(MIRROR_FROM_REP_DIR)
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := include/QtSql \
+ lib/symbols/qt5_sql
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/api/qt5_sql/hash b/repos/libports/recipes/api/qt5_sql/hash
new file mode 100644
index 000000000..c3f589e3b
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_sql/hash
@@ -0,0 +1 @@
+2018-04-23 e2b7a25670433d69986a4aff3f049a8dfcf325aa
diff --git a/repos/libports/recipes/api/qt5_svg/content.mk b/repos/libports/recipes/api/qt5_svg/content.mk
new file mode 100644
index 000000000..1e5195934
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_svg/content.mk
@@ -0,0 +1,23 @@
+MIRROR_FROM_REP_DIR := lib/import/import-qt5_svg.mk \
+ lib/import/import-qt5.inc
+
+content: $(MIRROR_FROM_REP_DIR)
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := include/QtSvg \
+ lib/symbols/qt5_svg
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/api/qt5_svg/hash b/repos/libports/recipes/api/qt5_svg/hash
new file mode 100644
index 000000000..aa25ddc94
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_svg/hash
@@ -0,0 +1 @@
+2018-04-23 acf20159c24addd1f925edba212db46e79304522
diff --git a/repos/libports/recipes/api/qt5_ui_tools/content.mk b/repos/libports/recipes/api/qt5_ui_tools/content.mk
new file mode 100644
index 000000000..f41a5f2de
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_ui_tools/content.mk
@@ -0,0 +1,25 @@
+MIRROR_FROM_REP_DIR := lib/import/import-qt5_ui_tools.mk \
+ lib/import/import-qt5.inc
+
+content: $(MIRROR_FROM_REP_DIR)
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := include/QtDesigner \
+ include/QtUiPlugin \
+ include/QtUiTools \
+ lib/symbols/qt5_ui_tools
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/api/qt5_ui_tools/hash b/repos/libports/recipes/api/qt5_ui_tools/hash
new file mode 100644
index 000000000..2884c97fa
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_ui_tools/hash
@@ -0,0 +1 @@
+2018-04-23 45749ae2411e7c3c2724cfd86b145a67f58a3872
diff --git a/repos/libports/recipes/api/qt5_webkit/content.mk b/repos/libports/recipes/api/qt5_webkit/content.mk
new file mode 100644
index 000000000..f8944dcb3
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_webkit/content.mk
@@ -0,0 +1,34 @@
+MIRROR_FROM_REP_DIR := lib/import/import-qt5_angle.mk \
+ lib/import/import-qt5_jscore.mk \
+ lib/import/import-qt5_webcore.mk \
+ lib/import/import-qt5_webkit.mk \
+ lib/import/import-qt5_webkitwidgets.mk \
+ lib/import/import-qt5_wtf.mk \
+ lib/import/import-qt5.inc
+
+content: $(MIRROR_FROM_REP_DIR)
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := include/QtWebKit \
+ include/QtWebKitWidgets \
+ lib/symbols/qt5_angle \
+ lib/symbols/qt5_jscore \
+ lib/symbols/qt5_webcore \
+ lib/symbols/qt5_webkit \
+ lib/symbols/qt5_webkitwidgets \
+ lib/symbols/qt5_wtf
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/api/qt5_webkit/hash b/repos/libports/recipes/api/qt5_webkit/hash
new file mode 100644
index 000000000..38b783d0c
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_webkit/hash
@@ -0,0 +1 @@
+2018-04-23 8a29e231dab0da0dce2281a2c30adddf32fdbc1c
diff --git a/repos/libports/recipes/api/qt5_widgets/content.mk b/repos/libports/recipes/api/qt5_widgets/content.mk
new file mode 100644
index 000000000..760ec6f09
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_widgets/content.mk
@@ -0,0 +1,24 @@
+MIRROR_FROM_REP_DIR := lib/import/import-qt5_widgets.mk \
+ lib/import/import-qt5.inc
+
+content: $(MIRROR_FROM_REP_DIR)
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := include/QtPlatformHeaders \
+ include/QtWidgets \
+ lib/symbols/qt5_widgets
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/api/qt5_widgets/hash b/repos/libports/recipes/api/qt5_widgets/hash
new file mode 100644
index 000000000..e05bf2011
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_widgets/hash
@@ -0,0 +1 @@
+2018-04-23 44ca6824df403155182010eaa23f5c070ed7a17c
diff --git a/repos/libports/recipes/api/qt5_xml/content.mk b/repos/libports/recipes/api/qt5_xml/content.mk
new file mode 100644
index 000000000..2c3d12be4
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_xml/content.mk
@@ -0,0 +1,23 @@
+MIRROR_FROM_REP_DIR := lib/import/import-qt5_xml.mk \
+ lib/import/import-qt5.inc
+
+content: $(MIRROR_FROM_REP_DIR)
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := include/QtXml \
+ lib/symbols/qt5_xml
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/api/qt5_xml/hash b/repos/libports/recipes/api/qt5_xml/hash
new file mode 100644
index 000000000..dafe4d7a9
--- /dev/null
+++ b/repos/libports/recipes/api/qt5_xml/hash
@@ -0,0 +1 @@
+2018-04-23 90ac67372787f14a1143716e7d3eb7ba26914099
diff --git a/repos/libports/recipes/raw/qt5_avplay/content.mk b/repos/libports/recipes/raw/qt5_avplay/content.mk
new file mode 100644
index 000000000..04c49ac3a
--- /dev/null
+++ b/repos/libports/recipes/raw/qt5_avplay/content.mk
@@ -0,0 +1,12 @@
+content: player_play.png \
+ player_pause.png \
+ player_stop.png \
+ volume.png
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+player_play.png player_pause.png player_stop.png:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/qtbase/examples/network/torrent/icons/$@ $@
+
+volume.png:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/qtwebkit/Source/WebCore/platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png $@
diff --git a/repos/libports/recipes/raw/qt5_avplay/hash b/repos/libports/recipes/raw/qt5_avplay/hash
new file mode 100644
index 000000000..4bdef7454
--- /dev/null
+++ b/repos/libports/recipes/raw/qt5_avplay/hash
@@ -0,0 +1 @@
+2018-04-23 e85bededc3e8b4b4a356c2918f890d82806e8e40
diff --git a/repos/libports/recipes/raw/qt5_dejavusans/content.mk b/repos/libports/recipes/raw/qt5_dejavusans/content.mk
new file mode 100644
index 000000000..58a6ca5d7
--- /dev/null
+++ b/repos/libports/recipes/raw/qt5_dejavusans/content.mk
@@ -0,0 +1,11 @@
+content: qt5_dejavusans.tar
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+qt/lib/fonts/DejaVuSans.ttf:
+ mkdir -p $(dir $@)
+ cp $(PORT_DIR)/src/lib/qt5/qt5/qtquickcontrols/examples/quickcontrols/extras/dashboard/fonts/$(notdir $@) $@
+
+qt5_dejavusans.tar: qt/lib/fonts/DejaVuSans.ttf
+ tar cf $@ qt
+ rm -rf qt
diff --git a/repos/libports/recipes/raw/qt5_dejavusans/hash b/repos/libports/recipes/raw/qt5_dejavusans/hash
new file mode 100644
index 000000000..d313d0b9c
--- /dev/null
+++ b/repos/libports/recipes/raw/qt5_dejavusans/hash
@@ -0,0 +1 @@
+2018-04-23 427c2a514db95c0c4c60eabd0d57e9af8217c878
diff --git a/repos/libports/recipes/raw/qt5_qt_labs_folderlistmodel/content.mk b/repos/libports/recipes/raw/qt5_qt_labs_folderlistmodel/content.mk
new file mode 100644
index 000000000..ec0d9599c
--- /dev/null
+++ b/repos/libports/recipes/raw/qt5_qt_labs_folderlistmodel/content.mk
@@ -0,0 +1,16 @@
+content: qt5_qt_labs_folderlistmodel.tar
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+INSTALL_DIR := qt/qml/Qt/labs/folderlistmodel
+QMLDIR := $(INSTALL_DIR)/qmldir
+
+$(INSTALL_DIR):
+ mkdir -p $@
+
+$(QMLDIR): $(INSTALL_DIR)
+ cp $(PORT_DIR)/src/lib/qt5/qt5/qtdeclarative/src/imports/folderlistmodel/qmldir $@
+
+qt5_qt_labs_folderlistmodel.tar: $(QMLDIR)
+ tar cf $@ qt
+ rm -rf qt
diff --git a/repos/libports/recipes/raw/qt5_qt_labs_folderlistmodel/hash b/repos/libports/recipes/raw/qt5_qt_labs_folderlistmodel/hash
new file mode 100644
index 000000000..3074b3a53
--- /dev/null
+++ b/repos/libports/recipes/raw/qt5_qt_labs_folderlistmodel/hash
@@ -0,0 +1 @@
+2018-04-23 00bc46e41941999236b0fa51d4a31d1d6322c1fa
diff --git a/repos/libports/recipes/raw/qt5_qtquick2/content.mk b/repos/libports/recipes/raw/qt5_qtquick2/content.mk
new file mode 100644
index 000000000..02e362607
--- /dev/null
+++ b/repos/libports/recipes/raw/qt5_qtquick2/content.mk
@@ -0,0 +1,16 @@
+content: qt5_qtquick2.tar
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+INSTALL_DIR := qt/qml/QtQuick.2
+QMLDIR := $(INSTALL_DIR)/qmldir
+
+$(INSTALL_DIR):
+ mkdir -p $@
+
+$(QMLDIR): $(INSTALL_DIR)
+ cp $(PORT_DIR)/src/lib/qt5/qt5/qtdeclarative/src/imports/qtquick2/qmldir $@
+
+qt5_qtquick2.tar: $(QMLDIR)
+ tar cf $@ qt
+ rm -rf qt
diff --git a/repos/libports/recipes/raw/qt5_qtquick2/hash b/repos/libports/recipes/raw/qt5_qtquick2/hash
new file mode 100644
index 000000000..0b7764218
--- /dev/null
+++ b/repos/libports/recipes/raw/qt5_qtquick2/hash
@@ -0,0 +1 @@
+2018-04-23 31eebe2c589ce045bd2819755982f7e82f9528b7
diff --git a/repos/libports/recipes/raw/qt5_qtquick_layouts/content.mk b/repos/libports/recipes/raw/qt5_qtquick_layouts/content.mk
new file mode 100644
index 000000000..5caf59f59
--- /dev/null
+++ b/repos/libports/recipes/raw/qt5_qtquick_layouts/content.mk
@@ -0,0 +1,16 @@
+content: qt5_qtquick_layouts.tar
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+INSTALL_DIR := qt/qml/QtQuick/Layouts
+QMLDIR := $(INSTALL_DIR)/qmldir
+
+$(INSTALL_DIR):
+ mkdir -p $@
+
+$(QMLDIR): $(INSTALL_DIR)
+ cp $(PORT_DIR)/src/lib/qt5/qt5/qtdeclarative/src/imports/layouts/qmldir $@
+
+qt5_qtquick_layouts.tar: $(QMLDIR)
+ tar cf $@ qt
+ rm -rf qt
diff --git a/repos/libports/recipes/raw/qt5_qtquick_layouts/hash b/repos/libports/recipes/raw/qt5_qtquick_layouts/hash
new file mode 100644
index 000000000..58487267e
--- /dev/null
+++ b/repos/libports/recipes/raw/qt5_qtquick_layouts/hash
@@ -0,0 +1 @@
+2018-04-23 9f44a9b2071bafb6c84b9b8ba885c94381ce41e6
diff --git a/repos/libports/recipes/raw/qt5_qtquick_virtualkeyboard/content.mk b/repos/libports/recipes/raw/qt5_qtquick_virtualkeyboard/content.mk
new file mode 100644
index 000000000..94a446cc1
--- /dev/null
+++ b/repos/libports/recipes/raw/qt5_qtquick_virtualkeyboard/content.mk
@@ -0,0 +1,23 @@
+content: qt5_qtquick_virtualkeyboard.tar
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+INSTALL_DIR := qt/qml/QtQuick/VirtualKeyboard
+QMLDIR := $(INSTALL_DIR)/qmldir
+STYLES_QMLDIR := $(INSTALL_DIR)/Styles/qmldir
+
+$(INSTALL_DIR):
+ mkdir -p $@
+
+$(INSTALL_DIR)/Styles:
+ mkdir -p $@
+
+$(QMLDIR): $(INSTALL_DIR)
+ cp $(PORT_DIR)/src/lib/qt5/qt5/qtvirtualkeyboard/src/virtualkeyboard/import/qmldir $@
+
+$(STYLES_QMLDIR): $(INSTALL_DIR)/Styles
+ cp $(PORT_DIR)/src/lib/qt5/qt5/qtvirtualkeyboard/src/virtualkeyboard/styles/qmldir $@
+
+qt5_qtquick_virtualkeyboard.tar: $(QMLDIR) $(STYLES_QMLDIR)
+ tar cf $@ qt
+ rm -rf qt
diff --git a/repos/libports/recipes/raw/qt5_qtquick_virtualkeyboard/hash b/repos/libports/recipes/raw/qt5_qtquick_virtualkeyboard/hash
new file mode 100644
index 000000000..3780d7996
--- /dev/null
+++ b/repos/libports/recipes/raw/qt5_qtquick_virtualkeyboard/hash
@@ -0,0 +1 @@
+2018-04-23 c559a8092f1a6cd91f7a8742f9e42f6eb4907db4
diff --git a/repos/libports/recipes/raw/qt5_qtquick_window/content.mk b/repos/libports/recipes/raw/qt5_qtquick_window/content.mk
new file mode 100644
index 000000000..add9f6c98
--- /dev/null
+++ b/repos/libports/recipes/raw/qt5_qtquick_window/content.mk
@@ -0,0 +1,16 @@
+content: qt5_qtquick_window.tar
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+INSTALL_DIR := qt/qml/QtQuick/Window.2
+QMLDIR := $(INSTALL_DIR)/qmldir
+
+$(INSTALL_DIR):
+ mkdir -p $@
+
+$(QMLDIR): $(INSTALL_DIR)
+ cp $(PORT_DIR)/src/lib/qt5/qt5/qtdeclarative/src/imports/window/qmldir $@
+
+qt5_qtquick_window.tar: $(QMLDIR)
+ tar cf $@ qt
+ rm -rf qt
diff --git a/repos/libports/recipes/raw/qt5_qtquick_window/hash b/repos/libports/recipes/raw/qt5_qtquick_window/hash
new file mode 100644
index 000000000..111f28a18
--- /dev/null
+++ b/repos/libports/recipes/raw/qt5_qtquick_window/hash
@@ -0,0 +1 @@
+2018-04-23 94b95d5109ceb801d4384daa4a14f1ce85bafc5d
diff --git a/repos/libports/recipes/raw/qt5_samegame/content.mk b/repos/libports/recipes/raw/qt5_samegame/content.mk
new file mode 100644
index 000000000..e422f5dba
--- /dev/null
+++ b/repos/libports/recipes/raw/qt5_samegame/content.mk
@@ -0,0 +1,33 @@
+content: qt5_samegame.tar
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+SAMEGAME3_RESOURCES := samegame.qml \
+ Dialog.qml \
+ Button.qml \
+ Block.qml \
+ samegame.js
+
+SAMEGAME_RESOURCES := background.jpg \
+ blueStone.png \
+ greenStone.png \
+ redStone.png \
+ yellowStone.png
+
+samegame:
+ mkdir -p $@
+
+samegame/shared/pics:
+ mkdir -p $@
+
+$(addprefix samegame/, $(SAMEGAME3_RESOURCES)): samegame
+ cp $(PORT_DIR)/src/lib/qt5/qt5/qtdeclarative/examples/quick/tutorials/samegame/samegame3/$(notdir $@) $@
+
+$(addprefix samegame/shared/pics/, $(SAMEGAME_RESOURCES)): samegame/shared/pics
+ cp $(PORT_DIR)/src/lib/qt5/qt5/qtdeclarative/examples/quick/tutorials/samegame/shared/pics/$(notdir $@) $@
+
+
+qt5_samegame.tar: $(addprefix samegame/, $(SAMEGAME3_RESOURCES)) \
+ $(addprefix samegame/shared/pics/, $(SAMEGAME_RESOURCES))
+ tar cf $@ -C samegame .
+ rm -rf samegame/
diff --git a/repos/libports/recipes/raw/qt5_samegame/hash b/repos/libports/recipes/raw/qt5_samegame/hash
new file mode 100644
index 000000000..4df9f894c
--- /dev/null
+++ b/repos/libports/recipes/raw/qt5_samegame/hash
@@ -0,0 +1 @@
+2018-04-23 f7b9c5f0c86ca95fc5f42a782f763769cc061e2f
diff --git a/repos/libports/recipes/src/qt5_avplay/content.mk b/repos/libports/recipes/src/qt5_avplay/content.mk
new file mode 100644
index 000000000..4ed4ab618
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_avplay/content.mk
@@ -0,0 +1,21 @@
+MIRROR_FROM_REP_DIR := src/app/qt5/qt_avplay \
+ src/app/qt5/tmpl/target_defaults.inc \
+ src/app/qt5/tmpl/target_final.inc
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+MIRROR_FROM_OS := include/init/child_policy.h
+
+content: $(MIRROR_FROM_OS)
+
+$(MIRROR_FROM_OS):
+ mkdir -p $(dir $@)
+ cp -r $(GENODE_DIR)/repos/os/$@ $(dir $@)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
diff --git a/repos/libports/recipes/src/qt5_avplay/hash b/repos/libports/recipes/src/qt5_avplay/hash
new file mode 100644
index 000000000..034117aac
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_avplay/hash
@@ -0,0 +1 @@
+2018-04-23 e0dc432dfc4bf3f3a7e7b6034687a55f51a8de87
diff --git a/repos/libports/recipes/src/qt5_avplay/used_apis b/repos/libports/recipes/src/qt5_avplay/used_apis
new file mode 100644
index 000000000..9e6aa7cda
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_avplay/used_apis
@@ -0,0 +1,19 @@
+audio_out_session
+base
+framebuffer_session
+input_session
+libc
+mesa
+nitpicker_session
+os
+qoost
+qt5_core
+qt5_gui
+qt5_qpa_nitpicker
+qt5_qjpeg
+qt5_qnitpickerviewwidget
+qt5_widgets
+qt5_xml
+stdcxx
+timer_session
+vfs
diff --git a/repos/libports/recipes/src/qt5_calculatorform/content.mk b/repos/libports/recipes/src/qt5_calculatorform/content.mk
new file mode 100644
index 000000000..ed3a196b2
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_calculatorform/content.mk
@@ -0,0 +1,22 @@
+MIRROR_FROM_REP_DIR := src/app/qt5/examples/calculatorform \
+ src/app/qt5/tmpl/target_defaults.inc \
+ src/app/qt5/tmpl/target_final.inc
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qttools/examples/designer/calculatorform
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
+
diff --git a/repos/libports/recipes/src/qt5_calculatorform/hash b/repos/libports/recipes/src/qt5_calculatorform/hash
new file mode 100644
index 000000000..9a0260472
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_calculatorform/hash
@@ -0,0 +1 @@
+2018-04-23 5d8059eef0f2c4c79795340aec819ee4789c9c40
diff --git a/repos/libports/recipes/src/qt5_calculatorform/used_apis b/repos/libports/recipes/src/qt5_calculatorform/used_apis
new file mode 100644
index 000000000..a7a767339
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_calculatorform/used_apis
@@ -0,0 +1,10 @@
+base
+libc
+mesa
+qt5_component
+qt5_core
+qt5_gui
+qt5_qjpeg
+qt5_qpa_nitpicker
+qt5_widgets
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_component/api b/repos/libports/recipes/src/qt5_component/api
new file mode 100644
index 000000000..deaade71d
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_component/api
@@ -0,0 +1 @@
+qt5_component
diff --git a/repos/libports/recipes/src/qt5_component/content.mk b/repos/libports/recipes/src/qt5_component/content.mk
new file mode 100644
index 000000000..9861adc9f
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_component/content.mk
@@ -0,0 +1,15 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_component.mk \
+ src/lib/qt5/qt_component.cc
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE src/lib/qt5_component/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_component/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_component" > $@
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
+
diff --git a/repos/libports/recipes/src/qt5_component/hash b/repos/libports/recipes/src/qt5_component/hash
new file mode 100644
index 000000000..7b127bb66
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_component/hash
@@ -0,0 +1 @@
+2018-04-23 d35ce6bef65ffa4e932ff45978dc7e911e80c9c3
diff --git a/repos/libports/recipes/src/qt5_component/used_apis b/repos/libports/recipes/src/qt5_component/used_apis
new file mode 100644
index 000000000..d8d4f82e8
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_component/used_apis
@@ -0,0 +1,5 @@
+base
+libc
+os
+so
+vfs
diff --git a/repos/libports/recipes/src/qt5_core/api b/repos/libports/recipes/src/qt5_core/api
new file mode 100644
index 000000000..9e826c37f
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_core/api
@@ -0,0 +1 @@
+qt5_core
diff --git a/repos/libports/recipes/src/qt5_core/content.mk b/repos/libports/recipes/src/qt5_core/content.mk
new file mode 100644
index 000000000..57e9a9654
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_core/content.mk
@@ -0,0 +1,42 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_core.mk \
+ lib/mk/qt5_core_generated.inc \
+ lib/mk/qt5.inc \
+ src/lib/qt5/qtbase/src/corelib \
+ src/lib/qt5/libc_dummies.cc \
+ include/libc-plugin \
+ lib/mk/libc_pipe.mk \
+ src/lib/libc_pipe
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_core/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_core/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_core" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtbase/src/3rdparty/double-conversion \
+ src/lib/qt5/qt5/qtbase/src/3rdparty/easing \
+ src/lib/qt5/qt5/qtbase/src/3rdparty/freebsd \
+ src/lib/qt5/qt5/qtbase/src/3rdparty/harfbuzz \
+ src/lib/qt5/qt5/qtbase/src/3rdparty/md4 \
+ src/lib/qt5/qt5/qtbase/src/3rdparty/md5 \
+ src/lib/qt5/qt5/qtbase/src/3rdparty/pcre \
+ src/lib/qt5/qt5/qtbase/src/3rdparty/rfc6234 \
+ src/lib/qt5/qt5/qtbase/src/3rdparty/sha1 \
+ src/lib/qt5/qt5/qtbase/src/3rdparty/sha3 \
+ src/lib/qt5/qt5/qtbase/src/corelib
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_core/hash b/repos/libports/recipes/src/qt5_core/hash
new file mode 100644
index 000000000..bf4a10cd2
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_core/hash
@@ -0,0 +1 @@
+2018-04-23 8187c8032aa059e500a37aaeb7c4b768fc985423
diff --git a/repos/libports/recipes/src/qt5_core/used_apis b/repos/libports/recipes/src/qt5_core/used_apis
new file mode 100644
index 000000000..be067c647
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_core/used_apis
@@ -0,0 +1,8 @@
+base
+libc
+os
+pcre16
+so
+stdcxx
+timer_session
+zlib
diff --git a/repos/libports/recipes/src/qt5_gui/api b/repos/libports/recipes/src/qt5_gui/api
new file mode 100644
index 000000000..9f3a1b159
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_gui/api
@@ -0,0 +1 @@
+qt5_gui
diff --git a/repos/libports/recipes/src/qt5_gui/content.mk b/repos/libports/recipes/src/qt5_gui/content.mk
new file mode 100644
index 000000000..c5e2764a7
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_gui/content.mk
@@ -0,0 +1,27 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_gui.mk \
+ lib/mk/qt5_gui_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_gui/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_gui/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_gui" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtbase/src/gui
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_gui/hash b/repos/libports/recipes/src/qt5_gui/hash
new file mode 100644
index 000000000..2987b157a
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_gui/hash
@@ -0,0 +1 @@
+2018-04-23 025f79e68e6142c11cd00c29a8e2de2390912103
diff --git a/repos/libports/recipes/src/qt5_gui/used_apis b/repos/libports/recipes/src/qt5_gui/used_apis
new file mode 100644
index 000000000..e414f9aeb
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_gui/used_apis
@@ -0,0 +1,7 @@
+base
+libc
+libpng
+mesa
+qt5_core
+stdcxx
+zlib
diff --git a/repos/libports/recipes/src/qt5_launchpad/content.mk b/repos/libports/recipes/src/qt5_launchpad/content.mk
new file mode 100644
index 000000000..f7d8b63dc
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_launchpad/content.mk
@@ -0,0 +1,29 @@
+MIRROR_FROM_REP_DIR := src/app/qt5/qt_launchpad \
+ src/app/qt5/tmpl/target_defaults.inc \
+ src/app/qt5/tmpl/target_final.inc
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+MIRROR_FROM_DEMO := include/launchpad \
+ lib/mk/launchpad.mk \
+ src/lib/launchpad
+
+content: $(MIRROR_FROM_DEMO)
+
+$(MIRROR_FROM_DEMO):
+ mkdir -p $(dir $@)
+ cp -r $(GENODE_DIR)/repos/demo/$@ $(dir $@)
+
+MIRROR_FROM_OS := include/init/child_policy.h
+
+content: $(MIRROR_FROM_OS)
+
+$(MIRROR_FROM_OS):
+ mkdir -p $(dir $@)
+ cp -r $(GENODE_DIR)/repos/os/$@ $(dir $@)
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
diff --git a/repos/libports/recipes/src/qt5_launchpad/hash b/repos/libports/recipes/src/qt5_launchpad/hash
new file mode 100644
index 000000000..ad89380bf
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_launchpad/hash
@@ -0,0 +1 @@
+2018-04-23 13c3f8dd01ae1ce7847cdf22b4efcadc5812d62b
diff --git a/repos/libports/recipes/src/qt5_launchpad/used_apis b/repos/libports/recipes/src/qt5_launchpad/used_apis
new file mode 100644
index 000000000..1ccc0d6f7
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_launchpad/used_apis
@@ -0,0 +1,12 @@
+base
+libc
+mesa
+os
+qt5_core
+qt5_gui
+qt5_qjpeg
+qt5_qpa_nitpicker
+qt5_widgets
+stdcxx
+timer_session
+vfs
diff --git a/repos/libports/recipes/src/qt5_network/api b/repos/libports/recipes/src/qt5_network/api
new file mode 100644
index 000000000..11223a092
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_network/api
@@ -0,0 +1 @@
+qt5_network
diff --git a/repos/libports/recipes/src/qt5_network/content.mk b/repos/libports/recipes/src/qt5_network/content.mk
new file mode 100644
index 000000000..95914941e
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_network/content.mk
@@ -0,0 +1,27 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_network.mk \
+ lib/mk/qt5_network_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_network/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_network/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_network" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtbase/src/network
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_network/hash b/repos/libports/recipes/src/qt5_network/hash
new file mode 100644
index 000000000..f8744df9c
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_network/hash
@@ -0,0 +1 @@
+2018-04-23 cfca92e46043362a070e911e2fa7f132668967ac
diff --git a/repos/libports/recipes/src/qt5_network/used_apis b/repos/libports/recipes/src/qt5_network/used_apis
new file mode 100644
index 000000000..5c4ad3b05
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_network/used_apis
@@ -0,0 +1,6 @@
+base
+libc
+libssl
+qt5_core
+stdcxx
+zlib
diff --git a/repos/libports/recipes/src/qt5_opengl/api b/repos/libports/recipes/src/qt5_opengl/api
new file mode 100644
index 000000000..2602c08ea
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_opengl/api
@@ -0,0 +1 @@
+qt5_opengl
diff --git a/repos/libports/recipes/src/qt5_opengl/content.mk b/repos/libports/recipes/src/qt5_opengl/content.mk
new file mode 100644
index 000000000..ff2fab4bb
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_opengl/content.mk
@@ -0,0 +1,27 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_opengl.mk \
+ lib/mk/qt5_opengl_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_opengl/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_opengl/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_opengl" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtbase/src/opengl
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_opengl/hash b/repos/libports/recipes/src/qt5_opengl/hash
new file mode 100644
index 000000000..9492c230e
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_opengl/hash
@@ -0,0 +1 @@
+2018-04-23 0dd2f893993be4a6e5a8e83dd08c8469ebc8c224
diff --git a/repos/libports/recipes/src/qt5_opengl/used_apis b/repos/libports/recipes/src/qt5_opengl/used_apis
new file mode 100644
index 000000000..17475348d
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_opengl/used_apis
@@ -0,0 +1,7 @@
+base
+libc
+mesa
+qt5_core
+qt5_gui
+qt5_widgets
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_openglwindow/content.mk b/repos/libports/recipes/src/qt5_openglwindow/content.mk
new file mode 100644
index 000000000..af27dff92
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_openglwindow/content.mk
@@ -0,0 +1,22 @@
+MIRROR_FROM_REP_DIR := src/app/qt5/examples/openglwindow \
+ src/app/qt5/tmpl/target_defaults.inc \
+ src/app/qt5/tmpl/target_final.inc
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtbase/examples/gui/openglwindow
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
+
diff --git a/repos/libports/recipes/src/qt5_openglwindow/hash b/repos/libports/recipes/src/qt5_openglwindow/hash
new file mode 100644
index 000000000..c633b4f7d
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_openglwindow/hash
@@ -0,0 +1 @@
+2018-04-23 1949d75bf65c619e7f771bc54318471e01f714cb
diff --git a/repos/libports/recipes/src/qt5_openglwindow/used_apis b/repos/libports/recipes/src/qt5_openglwindow/used_apis
new file mode 100644
index 000000000..5c72618b7
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_openglwindow/used_apis
@@ -0,0 +1,9 @@
+base
+libc
+mesa
+qt5_component
+qt5_core
+qt5_gui
+qt5_qjpeg
+qt5_qpa_nitpicker
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_printsupport/api b/repos/libports/recipes/src/qt5_printsupport/api
new file mode 100644
index 000000000..eebc78a04
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_printsupport/api
@@ -0,0 +1 @@
+qt5_printsupport
diff --git a/repos/libports/recipes/src/qt5_printsupport/content.mk b/repos/libports/recipes/src/qt5_printsupport/content.mk
new file mode 100644
index 000000000..0d80677a1
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_printsupport/content.mk
@@ -0,0 +1,27 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_printsupport.mk \
+ lib/mk/qt5_printsupport_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_printsupport/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_printsupport/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_printsupport" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtbase/src/printsupport
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_printsupport/hash b/repos/libports/recipes/src/qt5_printsupport/hash
new file mode 100644
index 000000000..c6fe5183a
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_printsupport/hash
@@ -0,0 +1 @@
+2018-04-23 f4915fcf1dace40eb143519c985514db64844009
diff --git a/repos/libports/recipes/src/qt5_printsupport/used_apis b/repos/libports/recipes/src/qt5_printsupport/used_apis
new file mode 100644
index 000000000..17475348d
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_printsupport/used_apis
@@ -0,0 +1,7 @@
+base
+libc
+mesa
+qt5_core
+qt5_gui
+qt5_widgets
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_qjpeg/api b/repos/libports/recipes/src/qt5_qjpeg/api
new file mode 100644
index 000000000..23bfda887
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qjpeg/api
@@ -0,0 +1 @@
+qt5_qjpeg
diff --git a/repos/libports/recipes/src/qt5_qjpeg/content.mk b/repos/libports/recipes/src/qt5_qjpeg/content.mk
new file mode 100644
index 000000000..891e8e21c
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qjpeg/content.mk
@@ -0,0 +1,26 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_qjpeg.mk \
+ src/lib/qt5/qtbase/src/plugins/imageformats/jpeg
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_qjpeg/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_qjpeg/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_qjpeg" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtbase/src/plugins/imageformats/jpeg
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $@
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_qjpeg/hash b/repos/libports/recipes/src/qt5_qjpeg/hash
new file mode 100644
index 000000000..d2ee31a01
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qjpeg/hash
@@ -0,0 +1 @@
+2018-04-23 d5d31c4ebc0586a155c37d0886b1cecc720268cd
diff --git a/repos/libports/recipes/src/qt5_qjpeg/used_apis b/repos/libports/recipes/src/qt5_qjpeg/used_apis
new file mode 100644
index 000000000..91c423ec5
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qjpeg/used_apis
@@ -0,0 +1,6 @@
+base
+jpeg
+libc
+qt5_core
+qt5_gui
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_qml/api b/repos/libports/recipes/src/qt5_qml/api
new file mode 100644
index 000000000..9be0b730c
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qml/api
@@ -0,0 +1 @@
+qt5_qml
diff --git a/repos/libports/recipes/src/qt5_qml/content.mk b/repos/libports/recipes/src/qt5_qml/content.mk
new file mode 100644
index 000000000..0d8f041b7
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qml/content.mk
@@ -0,0 +1,29 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_qml.mk \
+ lib/mk/qt5_qml_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_qml/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_qml/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_qml" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtdeclarative/src/3rdparty/masm \
+ src/lib/qt5/qt5/qtdeclarative/src/qml \
+ src/lib/qt5/qtdeclarative
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_qml/hash b/repos/libports/recipes/src/qt5_qml/hash
new file mode 100644
index 000000000..fc32d1b20
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qml/hash
@@ -0,0 +1 @@
+2018-04-23 5f20a70416aded9678923114b24b3731c1391c03
diff --git a/repos/libports/recipes/src/qt5_qml/used_apis b/repos/libports/recipes/src/qt5_qml/used_apis
new file mode 100644
index 000000000..430a6f4b4
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qml/used_apis
@@ -0,0 +1,5 @@
+base
+libc
+qt5_core
+qt5_network
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_qnitpickerviewwidget/api b/repos/libports/recipes/src/qt5_qnitpickerviewwidget/api
new file mode 100644
index 000000000..c3647c455
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qnitpickerviewwidget/api
@@ -0,0 +1 @@
+qt5_qnitpickerviewwidget
diff --git a/repos/libports/recipes/src/qt5_qnitpickerviewwidget/content.mk b/repos/libports/recipes/src/qt5_qnitpickerviewwidget/content.mk
new file mode 100644
index 000000000..2db29dc50
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qnitpickerviewwidget/content.mk
@@ -0,0 +1,14 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_qnitpickerviewwidget.mk \
+ src/lib/qt5/qnitpickerviewwidget
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE src/lib/qt5_qnitpickerviewwidget/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_qnitpickerviewwidget/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_qnitpickerviewwidget" > $@
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
diff --git a/repos/libports/recipes/src/qt5_qnitpickerviewwidget/hash b/repos/libports/recipes/src/qt5_qnitpickerviewwidget/hash
new file mode 100644
index 000000000..949ec9fd2
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qnitpickerviewwidget/hash
@@ -0,0 +1 @@
+2018-04-23 ecb7fba9121d696220f9450d8736e808371ec245
diff --git a/repos/libports/recipes/src/qt5_qnitpickerviewwidget/used_apis b/repos/libports/recipes/src/qt5_qnitpickerviewwidget/used_apis
new file mode 100644
index 000000000..12de6362d
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qnitpickerviewwidget/used_apis
@@ -0,0 +1,13 @@
+base
+framebuffer_session
+input_session
+libc
+mesa
+nitpicker_session
+os
+qoost
+qt5_core
+qt5_gui
+qt5_qpa_nitpicker
+qt5_widgets
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_qpa_nitpicker/api b/repos/libports/recipes/src/qt5_qpa_nitpicker/api
new file mode 100644
index 000000000..4ce9d6992
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qpa_nitpicker/api
@@ -0,0 +1 @@
+qt5_qpa_nitpicker
diff --git a/repos/libports/recipes/src/qt5_qpa_nitpicker/content.mk b/repos/libports/recipes/src/qt5_qpa_nitpicker/content.mk
new file mode 100644
index 000000000..a95e7f505
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qpa_nitpicker/content.mk
@@ -0,0 +1,39 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_qpa_nitpicker.mk \
+ lib/mk/qt5.inc \
+ src/lib/qt5/qtbase/src/plugins/platforms/nitpicker
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_qpa_nitpicker/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_qpa_nitpicker/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_qpa_nitpicker" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtbase/src/gui/text/qfontengine_ft.cpp \
+ src/lib/qt5/qt5/qtbase/src/platformsupport/eglconvenience/qeglconvenience.cpp \
+ src/lib/qt5/qt5/qtbase/src/platformsupport/eventdispatchers/qgenericunixeventdispatcher.cpp \
+ src/lib/qt5/qt5/qtbase/src/platformsupport/eventdispatchers/qunixeventdispatcher.cpp \
+ src/lib/qt5/qt5/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+MIRROR_FROM_OS := include/pointer/shape_report.h
+
+content: $(MIRROR_FROM_OS)
+
+$(MIRROR_FROM_OS):
+ mkdir -p $(dir $@)
+ cp -r $(GENODE_DIR)/repos/os/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
diff --git a/repos/libports/recipes/src/qt5_qpa_nitpicker/hash b/repos/libports/recipes/src/qt5_qpa_nitpicker/hash
new file mode 100644
index 000000000..1c5c50579
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qpa_nitpicker/hash
@@ -0,0 +1 @@
+2018-04-23 23bd61dfcd0934b0fcadfd7dd7255e8438c74447
diff --git a/repos/libports/recipes/src/qt5_qpa_nitpicker/used_apis b/repos/libports/recipes/src/qt5_qpa_nitpicker/used_apis
new file mode 100644
index 000000000..40871d68d
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qpa_nitpicker/used_apis
@@ -0,0 +1,14 @@
+base
+blit
+framebuffer_session
+freetype
+input_session
+libc
+mesa
+nitpicker_session
+os
+qoost
+qt5_core
+qt5_gui
+report_session
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_qpluginwidget/api b/repos/libports/recipes/src/qt5_qpluginwidget/api
new file mode 100644
index 000000000..6788e7d2d
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qpluginwidget/api
@@ -0,0 +1 @@
+qt5_qpluginwidget
diff --git a/repos/libports/recipes/src/qt5_qpluginwidget/content.mk b/repos/libports/recipes/src/qt5_qpluginwidget/content.mk
new file mode 100644
index 000000000..8afc03ed5
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qpluginwidget/content.mk
@@ -0,0 +1,14 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_qpluginwidget.mk \
+ src/lib/qt5/qpluginwidget
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE src/lib/qt5_qpluginwidget/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_qpluginwidget/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_qpluginwidget" > $@
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
diff --git a/repos/libports/recipes/src/qt5_qpluginwidget/hash b/repos/libports/recipes/src/qt5_qpluginwidget/hash
new file mode 100644
index 000000000..37739d192
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qpluginwidget/hash
@@ -0,0 +1 @@
+2018-04-23 d189f54ef14d170e0ecf81243a64cf60c71690cf
diff --git a/repos/libports/recipes/src/qt5_qpluginwidget/used_apis b/repos/libports/recipes/src/qt5_qpluginwidget/used_apis
new file mode 100644
index 000000000..101cfbcc6
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qpluginwidget/used_apis
@@ -0,0 +1,18 @@
+base
+framebuffer_session
+input_session
+libc
+loader_session
+mesa
+nitpicker_session
+os
+qoost
+qt5_core
+qt5_gui
+qt5_network
+qt5_qnitpickerviewwidget
+qt5_qpa_nitpicker
+qt5_widgets
+stdcxx
+vfs
+zlib
diff --git a/repos/libports/recipes/src/qt5_qt_labs_folderlistmodel/content.mk b/repos/libports/recipes/src/qt5_qt_labs_folderlistmodel/content.mk
new file mode 100644
index 000000000..01e4d19c6
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qt_labs_folderlistmodel/content.mk
@@ -0,0 +1,27 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_qmlfolderlistmodelplugin.mk \
+ lib/mk/qt5_qmlfolderlistmodelplugin_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_qmlfolderlistmodelplugin/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_qmlfolderlistmodelplugin/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_qmlfolderlistmodelplugin" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtdeclarative/src/imports/folderlistmodel
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_qt_labs_folderlistmodel/hash b/repos/libports/recipes/src/qt5_qt_labs_folderlistmodel/hash
new file mode 100644
index 000000000..1aa2531ca
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qt_labs_folderlistmodel/hash
@@ -0,0 +1 @@
+2018-04-23 8448bd3c804566997c14b11cecc55c60622e6c27
diff --git a/repos/libports/recipes/src/qt5_qt_labs_folderlistmodel/used_apis b/repos/libports/recipes/src/qt5_qt_labs_folderlistmodel/used_apis
new file mode 100644
index 000000000..820fed938
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qt_labs_folderlistmodel/used_apis
@@ -0,0 +1,9 @@
+base
+libc
+mesa
+qt5_core
+qt5_gui
+qt5_network
+qt5_qml
+qt5_quick
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_qtquick2/content.mk b/repos/libports/recipes/src/qt5_qtquick2/content.mk
new file mode 100644
index 000000000..4b0ff76a2
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qtquick2/content.mk
@@ -0,0 +1,27 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_qtquick2plugin.mk \
+ lib/mk/qt5_qtquick2plugin_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_qtquick2plugin/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_qtquick2plugin/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_qtquick2plugin" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtdeclarative/src/imports/qtquick2
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_qtquick2/hash b/repos/libports/recipes/src/qt5_qtquick2/hash
new file mode 100644
index 000000000..61edf8141
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qtquick2/hash
@@ -0,0 +1 @@
+2018-04-23 32f91a6cb38bfe0214fbf101353204f6e1f1ce7e
diff --git a/repos/libports/recipes/src/qt5_qtquick2/used_apis b/repos/libports/recipes/src/qt5_qtquick2/used_apis
new file mode 100644
index 000000000..b52fa5e49
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qtquick2/used_apis
@@ -0,0 +1,8 @@
+base
+libc
+qt5_core
+qt5_gui
+qt5_network
+qt5_qml
+qt5_quick
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_qtquick_layouts/content.mk b/repos/libports/recipes/src/qt5_qtquick_layouts/content.mk
new file mode 100644
index 000000000..dea0658f3
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qtquick_layouts/content.mk
@@ -0,0 +1,27 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_qquicklayoutsplugin.mk \
+ lib/mk/qt5_qquicklayoutsplugin_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_qquicklayoutsplugin/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_qquicklayoutsplugin/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_qquicklayoutsplugin" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtdeclarative/src/imports/layouts
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_qtquick_layouts/hash b/repos/libports/recipes/src/qt5_qtquick_layouts/hash
new file mode 100644
index 000000000..f7ee9ce23
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qtquick_layouts/hash
@@ -0,0 +1 @@
+2018-04-23 70089ef9abb35b2aa9c48e18113cb98d8cc001d1
diff --git a/repos/libports/recipes/src/qt5_qtquick_layouts/used_apis b/repos/libports/recipes/src/qt5_qtquick_layouts/used_apis
new file mode 100644
index 000000000..820fed938
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qtquick_layouts/used_apis
@@ -0,0 +1,9 @@
+base
+libc
+mesa
+qt5_core
+qt5_gui
+qt5_network
+qt5_qml
+qt5_quick
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_qtquick_virtualkeyboard/content.mk b/repos/libports/recipes/src/qt5_qtquick_virtualkeyboard/content.mk
new file mode 100644
index 000000000..247be6cb5
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qtquick_virtualkeyboard/content.mk
@@ -0,0 +1,34 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_qtvirtualkeyboardplugin.mk \
+ lib/mk/qt5_qtvirtualkeyboardplugin_generated.inc \
+ lib/mk/qt5_qtvirtualkeyboardstylesplugin.mk \
+ lib/mk/qt5_qtvirtualkeyboardstylesplugin_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_qtvirtualkeyboardplugin/target.mk \
+ src/lib/qt5_qtvirtualkeyboardstylesplugin/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_qtvirtualkeyboardplugin/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_qtvirtualkeyboardplugin" > $@
+
+src/lib/qt5_qtvirtualkeyboardstylesplugin/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_qtvirtualkeyboardstylesplugin" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtvirtualkeyboard/src/virtualkeyboard
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_qtquick_virtualkeyboard/hash b/repos/libports/recipes/src/qt5_qtquick_virtualkeyboard/hash
new file mode 100644
index 000000000..2f0105d31
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qtquick_virtualkeyboard/hash
@@ -0,0 +1 @@
+2018-04-23 d83cf0133c7d037175cfb459cc688b4e16551b86
diff --git a/repos/libports/recipes/src/qt5_qtquick_virtualkeyboard/used_apis b/repos/libports/recipes/src/qt5_qtquick_virtualkeyboard/used_apis
new file mode 100644
index 000000000..3b85c1196
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qtquick_virtualkeyboard/used_apis
@@ -0,0 +1,10 @@
+base
+libc
+mesa
+qt5_core
+qt5_gui
+qt5_network
+qt5_qml
+qt5_quick
+qt5_svg
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_qtquick_window/content.mk b/repos/libports/recipes/src/qt5_qtquick_window/content.mk
new file mode 100644
index 000000000..cabfd6f05
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qtquick_window/content.mk
@@ -0,0 +1,27 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_windowplugin.mk \
+ lib/mk/qt5_windowplugin_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_windowplugin/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_windowplugin/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_windowplugin" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtdeclarative/src/imports/window
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_qtquick_window/hash b/repos/libports/recipes/src/qt5_qtquick_window/hash
new file mode 100644
index 000000000..9fa5c29f5
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qtquick_window/hash
@@ -0,0 +1 @@
+2018-04-23 799a48aae423d72c6fb439e4a402521dbdd468dd
diff --git a/repos/libports/recipes/src/qt5_qtquick_window/used_apis b/repos/libports/recipes/src/qt5_qtquick_window/used_apis
new file mode 100644
index 000000000..820fed938
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_qtquick_window/used_apis
@@ -0,0 +1,9 @@
+base
+libc
+mesa
+qt5_core
+qt5_gui
+qt5_network
+qt5_qml
+qt5_quick
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_quick/api b/repos/libports/recipes/src/qt5_quick/api
new file mode 100644
index 000000000..0b0c9ce36
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_quick/api
@@ -0,0 +1 @@
+qt5_quick
diff --git a/repos/libports/recipes/src/qt5_quick/content.mk b/repos/libports/recipes/src/qt5_quick/content.mk
new file mode 100644
index 000000000..954f01eac
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_quick/content.mk
@@ -0,0 +1,27 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_quick.mk \
+ lib/mk/qt5_quick_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_quick/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_quick/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_quick" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtdeclarative/src/quick
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_quick/hash b/repos/libports/recipes/src/qt5_quick/hash
new file mode 100644
index 000000000..59f8702e4
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_quick/hash
@@ -0,0 +1 @@
+2018-04-23 ace82a43d955f487f462a19dcc5bc12520d0119b
diff --git a/repos/libports/recipes/src/qt5_quick/used_apis b/repos/libports/recipes/src/qt5_quick/used_apis
new file mode 100644
index 000000000..5153ef459
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_quick/used_apis
@@ -0,0 +1,8 @@
+base
+libc
+mesa
+qt5_core
+qt5_gui
+qt5_network
+qt5_qml
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_samegame/content.mk b/repos/libports/recipes/src/qt5_samegame/content.mk
new file mode 100644
index 000000000..5ed0adf66
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_samegame/content.mk
@@ -0,0 +1,11 @@
+MIRROR_FROM_REP_DIR := src/app/qt5/examples/samegame \
+ src/app/qt5/tmpl/target_defaults.inc \
+ src/app/qt5/tmpl/target_final.inc
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
diff --git a/repos/libports/recipes/src/qt5_samegame/hash b/repos/libports/recipes/src/qt5_samegame/hash
new file mode 100644
index 000000000..2ec79e348
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_samegame/hash
@@ -0,0 +1 @@
+2018-04-23 83d1e43aa1fdbe24cba4a90a8a2d96779d9cafba
diff --git a/repos/libports/recipes/src/qt5_samegame/used_apis b/repos/libports/recipes/src/qt5_samegame/used_apis
new file mode 100644
index 000000000..da6534e85
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_samegame/used_apis
@@ -0,0 +1,12 @@
+base
+libc
+mesa
+qt5_component
+qt5_core
+qt5_network
+qt5_gui
+qt5_qjpeg
+qt5_qml
+qt5_qpa_nitpicker
+qt5_quick
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_scriptclassic/api b/repos/libports/recipes/src/qt5_scriptclassic/api
new file mode 100644
index 000000000..abbed1737
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_scriptclassic/api
@@ -0,0 +1 @@
+qt5_scriptclassic
diff --git a/repos/libports/recipes/src/qt5_scriptclassic/content.mk b/repos/libports/recipes/src/qt5_scriptclassic/content.mk
new file mode 100644
index 000000000..5bcecadf4
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_scriptclassic/content.mk
@@ -0,0 +1,27 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_scriptclassic.mk \
+ lib/mk/qt5_scriptclassic_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_scriptclassic/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_scriptclassic/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_scriptclassic" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qtscriptclassic-1.0_1-opensource/src
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_scriptclassic/hash b/repos/libports/recipes/src/qt5_scriptclassic/hash
new file mode 100644
index 000000000..5498863e3
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_scriptclassic/hash
@@ -0,0 +1 @@
+2018-04-23 1ae6179233871192034470ac8cc556349a580c84
diff --git a/repos/libports/recipes/src/qt5_scriptclassic/used_apis b/repos/libports/recipes/src/qt5_scriptclassic/used_apis
new file mode 100644
index 000000000..8f511a5f2
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_scriptclassic/used_apis
@@ -0,0 +1,6 @@
+base
+libc
+qt5_core
+qt5_gui
+qt5_widgets
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_sql/api b/repos/libports/recipes/src/qt5_sql/api
new file mode 100644
index 000000000..97019ad33
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_sql/api
@@ -0,0 +1 @@
+qt5_sql
diff --git a/repos/libports/recipes/src/qt5_sql/content.mk b/repos/libports/recipes/src/qt5_sql/content.mk
new file mode 100644
index 000000000..0ad568033
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_sql/content.mk
@@ -0,0 +1,27 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_sql.mk \
+ lib/mk/qt5_sql_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_sql/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_sql/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_sql" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtbase/src/sql
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_sql/hash b/repos/libports/recipes/src/qt5_sql/hash
new file mode 100644
index 000000000..0ce832cb8
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_sql/hash
@@ -0,0 +1 @@
+2018-04-23 b0decb7131e203d33568fbe5bc7a76015dcb2987
diff --git a/repos/libports/recipes/src/qt5_sql/used_apis b/repos/libports/recipes/src/qt5_sql/used_apis
new file mode 100644
index 000000000..173fddbe0
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_sql/used_apis
@@ -0,0 +1,4 @@
+base
+libc
+qt5_core
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_svg/api b/repos/libports/recipes/src/qt5_svg/api
new file mode 100644
index 000000000..e68c17009
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_svg/api
@@ -0,0 +1 @@
+qt5_svg
diff --git a/repos/libports/recipes/src/qt5_svg/content.mk b/repos/libports/recipes/src/qt5_svg/content.mk
new file mode 100644
index 000000000..612b2f91d
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_svg/content.mk
@@ -0,0 +1,27 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_svg.mk \
+ lib/mk/qt5_svg_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_svg/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_svg/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_svg" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtsvg/src/svg
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_svg/hash b/repos/libports/recipes/src/qt5_svg/hash
new file mode 100644
index 000000000..e830326eb
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_svg/hash
@@ -0,0 +1 @@
+2018-04-23 bde2c8638b1b105c56001a8ce6196ab10dcba27a
diff --git a/repos/libports/recipes/src/qt5_svg/used_apis b/repos/libports/recipes/src/qt5_svg/used_apis
new file mode 100644
index 000000000..c1f1d7dc3
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_svg/used_apis
@@ -0,0 +1,8 @@
+base
+libc
+mesa
+qt5_core
+qt5_gui
+qt5_widgets
+stdcxx
+zlib
diff --git a/repos/libports/recipes/src/qt5_tetrix/content.mk b/repos/libports/recipes/src/qt5_tetrix/content.mk
new file mode 100644
index 000000000..8a2194513
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_tetrix/content.mk
@@ -0,0 +1,22 @@
+MIRROR_FROM_REP_DIR := src/app/qt5/examples/tetrix \
+ src/app/qt5/tmpl/target_defaults.inc \
+ src/app/qt5/tmpl/target_final.inc
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtscript/examples/script/qstetrix
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
+
diff --git a/repos/libports/recipes/src/qt5_tetrix/hash b/repos/libports/recipes/src/qt5_tetrix/hash
new file mode 100644
index 000000000..303f49f9d
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_tetrix/hash
@@ -0,0 +1 @@
+2018-04-23 e3c47030d9469c2d4caa201b72934a1526445f16
diff --git a/repos/libports/recipes/src/qt5_tetrix/used_apis b/repos/libports/recipes/src/qt5_tetrix/used_apis
new file mode 100644
index 000000000..3b561647a
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_tetrix/used_apis
@@ -0,0 +1,12 @@
+base
+libc
+mesa
+qt5_component
+qt5_core
+qt5_gui
+qt5_qjpeg
+qt5_qpa_nitpicker
+qt5_scriptclassic
+qt5_ui_tools
+qt5_widgets
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_textedit/content.mk b/repos/libports/recipes/src/qt5_textedit/content.mk
new file mode 100644
index 000000000..6c15b4783
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_textedit/content.mk
@@ -0,0 +1,22 @@
+MIRROR_FROM_REP_DIR := src/app/qt5/examples/textedit \
+ src/app/qt5/tmpl/target_defaults.inc \
+ src/app/qt5/tmpl/target_final.inc
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtbase/examples/widgets/richtext/textedit
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
+
diff --git a/repos/libports/recipes/src/qt5_textedit/hash b/repos/libports/recipes/src/qt5_textedit/hash
new file mode 100644
index 000000000..8b82f0ebc
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_textedit/hash
@@ -0,0 +1 @@
+2018-04-23 d1c313137c5cd662f813e07241d8b91524c72ced
diff --git a/repos/libports/recipes/src/qt5_textedit/used_apis b/repos/libports/recipes/src/qt5_textedit/used_apis
new file mode 100644
index 000000000..f80e668fa
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_textedit/used_apis
@@ -0,0 +1,11 @@
+base
+libc
+mesa
+qt5_component
+qt5_core
+qt5_gui
+qt5_printsupport
+qt5_qjpeg
+qt5_qpa_nitpicker
+qt5_widgets
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_ui_tools/api b/repos/libports/recipes/src/qt5_ui_tools/api
new file mode 100644
index 000000000..75ce55fdf
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_ui_tools/api
@@ -0,0 +1 @@
+qt5_ui_tools
diff --git a/repos/libports/recipes/src/qt5_ui_tools/content.mk b/repos/libports/recipes/src/qt5_ui_tools/content.mk
new file mode 100644
index 000000000..84545ca4b
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_ui_tools/content.mk
@@ -0,0 +1,28 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_ui_tools.mk \
+ lib/mk/qt5_ui_tools_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_ui_tools/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_ui_tools/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_ui_tools" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qttools/src/designer/src/lib/uilib \
+ src/lib/qt5/qt5/qttools/src/designer/src/uitools
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_ui_tools/hash b/repos/libports/recipes/src/qt5_ui_tools/hash
new file mode 100644
index 000000000..b0dbb534b
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_ui_tools/hash
@@ -0,0 +1 @@
+2018-04-23 eb65015f3474c53384a5d17a2c312f4d6a3de1cc
diff --git a/repos/libports/recipes/src/qt5_ui_tools/used_apis b/repos/libports/recipes/src/qt5_ui_tools/used_apis
new file mode 100644
index 000000000..17475348d
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_ui_tools/used_apis
@@ -0,0 +1,7 @@
+base
+libc
+mesa
+qt5_core
+qt5_gui
+qt5_widgets
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_virtualkeyboard/content.mk b/repos/libports/recipes/src/qt5_virtualkeyboard/content.mk
new file mode 100644
index 000000000..52b625ae4
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_virtualkeyboard/content.mk
@@ -0,0 +1,22 @@
+MIRROR_FROM_REP_DIR := src/app/qt5/examples/virtualkeyboard \
+ src/app/qt5/tmpl/target_defaults.inc \
+ src/app/qt5/tmpl/target_final.inc
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtvirtualkeyboard/examples/virtualkeyboard/basic
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
+
diff --git a/repos/libports/recipes/src/qt5_virtualkeyboard/hash b/repos/libports/recipes/src/qt5_virtualkeyboard/hash
new file mode 100644
index 000000000..fdc9cebea
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_virtualkeyboard/hash
@@ -0,0 +1 @@
+2018-04-23 12ab35c9867a95bd27f46b9f2c0abedd5821f7b3
diff --git a/repos/libports/recipes/src/qt5_virtualkeyboard/used_apis b/repos/libports/recipes/src/qt5_virtualkeyboard/used_apis
new file mode 100644
index 000000000..da6534e85
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_virtualkeyboard/used_apis
@@ -0,0 +1,12 @@
+base
+libc
+mesa
+qt5_component
+qt5_core
+qt5_network
+qt5_gui
+qt5_qjpeg
+qt5_qml
+qt5_qpa_nitpicker
+qt5_quick
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_webkit/api b/repos/libports/recipes/src/qt5_webkit/api
new file mode 100644
index 000000000..5c8d647be
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_webkit/api
@@ -0,0 +1 @@
+qt5_webkit
diff --git a/repos/libports/recipes/src/qt5_webkit/content.mk b/repos/libports/recipes/src/qt5_webkit/content.mk
new file mode 100644
index 000000000..e35499003
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_webkit/content.mk
@@ -0,0 +1,71 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_angle.mk \
+ lib/mk/qt5_angle_generated.inc \
+ lib/mk/qt5_jscore.mk \
+ lib/mk/qt5_jscore_generated.inc \
+ lib/mk/qt5_webcore.mk \
+ lib/mk/qt5_webcore_generated.inc \
+ lib/mk/qt5_webkit.mk \
+ lib/mk/qt5_webkit_generated.inc \
+ lib/mk/qt5_webkitwidgets.mk \
+ lib/mk/qt5_webkitwidgets_generated.inc \
+ lib/mk/qt5_wtf.mk \
+ lib/mk/qt5_wtf_generated.inc \
+ lib/mk/qt5.inc
+
+content: $(MIRROR_FROM_REP_DIR) \
+ src/lib/qt5_angle/target.mk \
+ src/lib/qt5_jscore/target.mk \
+ src/lib/qt5_webcore/target.mk \
+ src/lib/qt5_webkit/target.mk \
+ src/lib/qt5_webkitwidgets/target.mk \
+ src/lib/qt5_wtf/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_angle/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_angle" > $@
+
+src/lib/qt5_jscore/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_jscore" > $@
+
+src/lib/qt5_webcore/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_webcore" > $@
+
+src/lib/qt5_webkit/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_webkit" > $@
+
+src/lib/qt5_webkitwidgets/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_webkitwidgets" > $@
+
+src/lib/qt5_wtf/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_wtf" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtbase/src/3rdparty/sqlite \
+ src/lib/qt5/qt5/qtwebkit/Source/ThirdParty/ANGLE \
+ src/lib/qt5/qt5/qtwebkit/Source/JavaScriptCore \
+ src/lib/qt5/qt5/qtwebkit/Source/WebCore \
+ src/lib/qt5/qt5/qtwebkit/Source/WebKit \
+ src/lib/qt5/qt5/qtwebkit/Source/WTF \
+ src/lib/qt5/qtwebkit/Source/ThirdParty/ANGLE/generated \
+ src/lib/qt5/qtwebkit/Source/JavaScriptCore/generated \
+ src/lib/qt5/qtwebkit/Source/WebCore/generated
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_webkit/hash b/repos/libports/recipes/src/qt5_webkit/hash
new file mode 100644
index 000000000..9c5da2cfe
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_webkit/hash
@@ -0,0 +1 @@
+2018-04-23 529c6b86fde5554ecd71fce2414a2d864710b884
diff --git a/repos/libports/recipes/src/qt5_webkit/used_apis b/repos/libports/recipes/src/qt5_webkit/used_apis
new file mode 100644
index 000000000..81e93e828
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_webkit/used_apis
@@ -0,0 +1,17 @@
+base
+icu
+libc
+libpng
+jpeg
+mesa
+os
+qt5_core
+qt5_gui
+qt5_network
+qt5_opengl
+qt5_printsupport
+qt5_sql
+qt5_widgets
+stdcxx
+timer_session
+zlib
diff --git a/repos/libports/recipes/src/qt5_widgets/api b/repos/libports/recipes/src/qt5_widgets/api
new file mode 100644
index 000000000..ce8695723
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_widgets/api
@@ -0,0 +1 @@
+qt5_widgets
diff --git a/repos/libports/recipes/src/qt5_widgets/content.mk b/repos/libports/recipes/src/qt5_widgets/content.mk
new file mode 100644
index 000000000..222211918
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_widgets/content.mk
@@ -0,0 +1,27 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_widgets.mk \
+ lib/mk/qt5_widgets_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_widgets/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_widgets/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_widgets" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtbase/src/widgets
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_widgets/hash b/repos/libports/recipes/src/qt5_widgets/hash
new file mode 100644
index 000000000..1cad5db36
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_widgets/hash
@@ -0,0 +1 @@
+2018-04-23 1474b2f89c0f0621bf31b0c59b2aa627aee58fa0
diff --git a/repos/libports/recipes/src/qt5_widgets/used_apis b/repos/libports/recipes/src/qt5_widgets/used_apis
new file mode 100644
index 000000000..d06815516
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_widgets/used_apis
@@ -0,0 +1,6 @@
+base
+libc
+mesa
+qt5_core
+qt5_gui
+stdcxx
diff --git a/repos/libports/recipes/src/qt5_xml/api b/repos/libports/recipes/src/qt5_xml/api
new file mode 100644
index 000000000..879db4eda
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_xml/api
@@ -0,0 +1 @@
+qt5_xml
diff --git a/repos/libports/recipes/src/qt5_xml/content.mk b/repos/libports/recipes/src/qt5_xml/content.mk
new file mode 100644
index 000000000..f65e9e3b0
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_xml/content.mk
@@ -0,0 +1,27 @@
+MIRROR_FROM_REP_DIR := lib/mk/qt5_xml.mk \
+ lib/mk/qt5_xml_generated.inc \
+ lib/mk/qt5.inc \
+
+content: $(MIRROR_FROM_REP_DIR) src/lib/qt5_xml/target.mk
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+src/lib/qt5_xml/target.mk:
+ mkdir -p $(dir $@)
+ echo "LIBS = qt5_xml" > $@
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt5)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt5/qt5/qtbase/src/xml
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+content: LICENSE
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt5/qt5/LICENSE.LGPLv3 $@
diff --git a/repos/libports/recipes/src/qt5_xml/hash b/repos/libports/recipes/src/qt5_xml/hash
new file mode 100644
index 000000000..688ddb0ff
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_xml/hash
@@ -0,0 +1 @@
+2018-04-23 6a55202b210bcff2e9d9765973d5b4a747e4d715
diff --git a/repos/libports/recipes/src/qt5_xml/used_apis b/repos/libports/recipes/src/qt5_xml/used_apis
new file mode 100644
index 000000000..173fddbe0
--- /dev/null
+++ b/repos/libports/recipes/src/qt5_xml/used_apis
@@ -0,0 +1,4 @@
+base
+libc
+qt5_core
+stdcxx
diff --git a/repos/libports/recipes/src/test-qpluginwidget/content.mk b/repos/libports/recipes/src/test-qpluginwidget/content.mk
new file mode 100644
index 000000000..f70f19a63
--- /dev/null
+++ b/repos/libports/recipes/src/test-qpluginwidget/content.mk
@@ -0,0 +1,11 @@
+MIRROR_FROM_REP_DIR := src/test/qt5/qpluginwidget \
+ src/app/qt5/tmpl/target_defaults.inc \
+ src/app/qt5/tmpl/target_final.inc
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
diff --git a/repos/libports/recipes/src/test-qpluginwidget/hash b/repos/libports/recipes/src/test-qpluginwidget/hash
new file mode 100644
index 000000000..c2199006d
--- /dev/null
+++ b/repos/libports/recipes/src/test-qpluginwidget/hash
@@ -0,0 +1 @@
+2018-04-23 508633df3f1edc35ec21d319acd12b8e9fda032f
diff --git a/repos/libports/recipes/src/test-qpluginwidget/used_apis b/repos/libports/recipes/src/test-qpluginwidget/used_apis
new file mode 100644
index 000000000..7315763d5
--- /dev/null
+++ b/repos/libports/recipes/src/test-qpluginwidget/used_apis
@@ -0,0 +1,19 @@
+base
+framebuffer_session
+input_session
+libc
+loader_session
+mesa
+nitpicker_session
+os
+qoost
+qt5_core
+qt5_gui
+qt5_network
+qt5_qjpeg
+qt5_qnitpickerviewwidget
+qt5_qpa_nitpicker
+qt5_qpluginwidget
+qt5_widgets
+stdcxx
+vfs
diff --git a/repos/libports/recipes/src/test-qt_core/content.mk b/repos/libports/recipes/src/test-qt_core/content.mk
new file mode 100644
index 000000000..d2c8d3919
--- /dev/null
+++ b/repos/libports/recipes/src/test-qt_core/content.mk
@@ -0,0 +1,12 @@
+MIRROR_FROM_REP_DIR := src/test/qt5/qt_core \
+ src/app/qt5/tmpl/target_defaults.inc \
+ src/app/qt5/tmpl/target_final.inc
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
+
diff --git a/repos/libports/recipes/src/test-qt_core/hash b/repos/libports/recipes/src/test-qt_core/hash
new file mode 100644
index 000000000..6d738d97d
--- /dev/null
+++ b/repos/libports/recipes/src/test-qt_core/hash
@@ -0,0 +1 @@
+2018-04-23 6609dee138d40fd22187ff47731673d61655fba3
diff --git a/repos/libports/recipes/src/test-qt_core/used_apis b/repos/libports/recipes/src/test-qt_core/used_apis
new file mode 100644
index 000000000..309a63060
--- /dev/null
+++ b/repos/libports/recipes/src/test-qt_core/used_apis
@@ -0,0 +1,5 @@
+base
+libc
+qt5_component
+qt5_core
+stdcxx
diff --git a/repos/libports/recipes/src/test-qt_quick/content.mk b/repos/libports/recipes/src/test-qt_quick/content.mk
new file mode 100644
index 000000000..ab372134c
--- /dev/null
+++ b/repos/libports/recipes/src/test-qt_quick/content.mk
@@ -0,0 +1,11 @@
+MIRROR_FROM_REP_DIR := src/test/qt5/qt_quick \
+ src/app/qt5/tmpl/target_defaults.inc \
+ src/app/qt5/tmpl/target_final.inc
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+LICENSE:
+ cp $(GENODE_DIR)/LICENSE $@
diff --git a/repos/libports/recipes/src/test-qt_quick/hash b/repos/libports/recipes/src/test-qt_quick/hash
new file mode 100644
index 000000000..260be458e
--- /dev/null
+++ b/repos/libports/recipes/src/test-qt_quick/hash
@@ -0,0 +1 @@
+2018-04-23 2665a409c05fe5ee24c35444448f6500c1823f1c
diff --git a/repos/libports/recipes/src/test-qt_quick/used_apis b/repos/libports/recipes/src/test-qt_quick/used_apis
new file mode 100644
index 000000000..49dd92b98
--- /dev/null
+++ b/repos/libports/recipes/src/test-qt_quick/used_apis
@@ -0,0 +1,12 @@
+base
+libc
+mesa
+qt5_component
+qt5_core
+qt5_gui
+qt5_network
+qt5_qjpeg
+qt5_qml
+qt5_qpa_nitpicker
+qt5_quick
+stdcxx
diff --git a/repos/libports/run/qt5.run b/repos/libports/run/qt5.run
index ecb9d5edb..48823f7c7 100644
--- a/repos/libports/run/qt5.run
+++ b/repos/libports/run/qt5.run
@@ -1,30 +1,21 @@
source ${genode_dir}/repos/libports/run/qt5_common.inc
+import_from_depot genodelabs/src/qt5_component \
+ genodelabs/src/qt5_calculatorform \
+ genodelabs/src/qt5_launchpad \
+ genodelabs/src/qt5_scriptclassic \
+ genodelabs/src/qt5_tetrix \
+ genodelabs/src/qt5_ui_tools \
+ genodelabs/src/qt5_widgets
+
#
# Build
#
append build_components [qt5_build_components feature]
-append build_components {
- lib/mesa/swrast
- app/qt5/qt_launchpad
- app/qt5/examples/calculatorform
- app/qt5/examples/tetrix
-}
-
build $build_components
-create_boot_directory
-
-#
-# Create Qt tar archives
-#
-
-create_qt5_fs_tar_archive "qt_launchpad" "gui"
-create_qt5_fs_tar_archive "calculatorform" "gui"
-create_qt5_fs_tar_archive "tetrix" "gui"
-
#
# Generate config
#
@@ -46,26 +37,35 @@ append config {
-
+
-
-
+
+
+ 2018-01-01 00:01
+
+
-
+
-
-
+
+
+ 2018-01-01 00:01
+
+
-
+
-
-
+
+
+ 2018-01-01 00:01
+
+
@@ -96,41 +96,6 @@ install_config $config
append boot_modules [qt5_boot_modules feature]
-append boot_modules {
- qt_launchpad
- egl.lib.so
- egl_swrast.lib.so
- expat.lib.so
- freetype.lib.so
- glapi.lib.so
- ld.lib.so
- libc.lib.so vfs.lib.so
- libc_pipe.lib.so
- libm.lib.so
- libpng.lib.so
- jpeg.lib.so
- mesa.lib.so
- pcre16.lib.so
- pthread.lib.so
- qt5_component.lib.so
- qt5_core.lib.so
- qt5_gui.lib.so
- qt5_widgets.lib.so
- qt5_xml.lib.so
- qt5_scriptclassic.lib.so
- qt5_ui_tools.lib.so
- zlib.lib.so
- stdcxx.lib.so
- calculatorform
- tetrix
- qt5_fs_qt_launchpad.tar
- qt5_fs_calculatorform.tar
- qt5_fs_tetrix.tar
-}
-
-
build_boot_image $boot_modules
-
run_genode_until forever
-
diff --git a/repos/libports/run/qt5_avplay.run b/repos/libports/run/qt5_avplay.run
index 7dd6aaf01..c5c3327d7 100644
--- a/repos/libports/run/qt5_avplay.run
+++ b/repos/libports/run/qt5_avplay.run
@@ -1,5 +1,14 @@
source ${genode_dir}/repos/libports/run/qt5_common.inc
+import_from_depot genodelabs/raw/qt5_avplay \
+ genodelabs/src/avplay \
+ genodelabs/src/libav \
+ genodelabs/src/qt5_avplay \
+ genodelabs/src/qt5_qnitpickerviewwidget \
+ genodelabs/src/qt5_widgets \
+ genodelabs/src/qt5_xml \
+ genodelabs/src/sdl
+
set feature(Audio_out) 1
#
@@ -8,12 +17,6 @@ set feature(Audio_out) 1
append build_components [qt5_build_components feature]
-append build_components {
- lib/mesa/swrast
- app/avplay
- app/qt5/qt_avplay
-}
-
build $build_components
#
@@ -26,14 +29,6 @@ if {![file exists bin/mediafile]} {
catch { exec wget -O bin/mediafile $media_url }
}
-create_boot_directory
-
-#
-# Create Qt tar archive
-#
-
-create_qt5_fs_tar_archive "qt_avplay" "gui"
-
#
# Generate config
#
@@ -56,10 +51,17 @@ append config {
-
-
+
+
+ 2018-01-01 00:01
+
+
+
+
+
+
-
+
@@ -83,40 +85,7 @@ install_config $config
append boot_modules [qt5_boot_modules feature]
append boot_modules {
- qt_avplay
- egl.lib.so
- egl_swrast.lib.so
- expat.lib.so
- freetype.lib.so
- glapi.lib.so
- ld.lib.so
- libc.lib.so vfs.lib.so
- mesa.lib.so
- posix.lib.so
- libc_pipe.lib.so
- libm.lib.so
- libpng.lib.so
- jpeg.lib.so
- pcre16.lib.so
- pthread.lib.so
- qt5_core.lib.so
- qt5_gui.lib.so
- qt5_qnitpickerviewwidget.lib.so
- qt5_widgets.lib.so
- qt5_xml.lib.so
- zlib.lib.so
- avcodec.lib.so
- avformat.lib.so
- avutil.lib.so
- avfilter.lib.so
- avresample.lib.so
- swscale.lib.so
- sdl.lib.so
- pthread.lib.so
- avplay
mediafile
- stdcxx.lib.so
- qt5_fs_qt_avplay.tar
}
build_boot_image $boot_modules
diff --git a/repos/libports/run/qt5_calculatorform.run b/repos/libports/run/qt5_calculatorform.run
index 173d4edd6..548dcd1d4 100644
--- a/repos/libports/run/qt5_calculatorform.run
+++ b/repos/libports/run/qt5_calculatorform.run
@@ -1,26 +1,17 @@
source ${genode_dir}/repos/libports/run/qt5_common.inc
+import_from_depot genodelabs/src/qt5_component \
+ genodelabs/src/qt5_widgets \
+ genodelabs/src/qt5_calculatorform
+
#
# Build
#
append build_components [qt5_build_components feature]
-append build_components {
- lib/mesa/swrast
- app/qt5/examples/calculatorform
-}
-
build $build_components
-create_boot_directory
-
-
-#
-# Create Qt tar archive
-#
-
-create_qt5_fs_tar_archive "calculatorform" "gui"
#
# Generate config
@@ -44,10 +35,13 @@ append config {
-
-
+
+
+ 2018-01-01 00:01
+
+
-
+
@@ -69,34 +63,6 @@ install_config $config
append boot_modules [qt5_boot_modules feature]
-append boot_modules {
- calculatorform
- egl.lib.so
- egl_swrast.lib.so
- expat.lib.so
- freetype.lib.so
- glapi.lib.so
- ld.lib.so
- libc.lib.so vfs.lib.so
- libc_pipe.lib.so
- libm.lib.so
- libpng.lib.so
- jpeg.lib.so
- mesa.lib.so
- pcre16.lib.so
- pthread.lib.so
- qt5_component.lib.so
- qt5_core.lib.so
- qt5_gui.lib.so
- qt5_widgets.lib.so
- qt5_xml.lib.so
- zlib.lib.so
- stdcxx.lib.so
- qt5_fs_calculatorform.tar
-}
-
build_boot_image $boot_modules
-
run_genode_until forever
-
diff --git a/repos/libports/run/qt5_common.inc b/repos/libports/run/qt5_common.inc
index 80ad26b40..1cc17e0da 100644
--- a/repos/libports/run/qt5_common.inc
+++ b/repos/libports/run/qt5_common.inc
@@ -4,6 +4,31 @@ set feature(Input) 1
set feature(Framebuffer) 1
set feature(Timer) 1
+create_boot_directory
+
+import_from_depot genodelabs/src/[base_src] \
+ genodelabs/src/decorator \
+ genodelabs/src/expat \
+ genodelabs/src/floating_window_layouter \
+ genodelabs/src/freetype \
+ genodelabs/src/init \
+ genodelabs/src/jpeg \
+ genodelabs/src/libc \
+ genodelabs/src/libpng \
+ genodelabs/src/mesa \
+ genodelabs/src/nitpicker \
+ genodelabs/src/pcre16 \
+ genodelabs/src/qt5_core \
+ genodelabs/src/qt5_gui \
+ genodelabs/src/qt5_qjpeg \
+ genodelabs/src/qt5_qpa_nitpicker \
+ genodelabs/src/report_rom \
+ genodelabs/src/stdcxx \
+ genodelabs/src/vfs \
+ genodelabs/src/wm \
+ genodelabs/src/zlib \
+ genodelabs/raw/qt5_dejavusans
+
#
# Build
#
@@ -12,21 +37,11 @@ proc qt5_build_components { feature_arg } {
upvar $feature_arg feature
- set build_components {
- core
- init
- }
+ set build_components { }
append build_components [drivers_build_components feature]
- append build_components {
- server/nitpicker
- server/report_rom
- app/floating_window_layouter
- app/decorator
- app/pointer
- server/wm
- }
+ append build_components { }
return $build_components
}
@@ -170,50 +185,11 @@ proc qt5_boot_modules { feature_arg } {
upvar $feature_arg feature
- set boot_modules {
- core
- init
- }
+ set boot_modules { }
append boot_modules [drivers_boot_modules feature]
- append boot_modules {
- nitpicker
- report_rom
- floating_window_layouter
- decorator
- wm
- pointer
- }
+ append boot_modules { }
return $boot_modules
}
-
-
-#
-# tar archive
-#
-
-proc create_qt5_fs_tar_archive { app_name qt_modules } {
-
- exec rm -rf bin/qt5_fs/${app_name}/qt
-
- if { [lsearch ${qt_modules} "gui"] != -1 } {
- # add fonts
- exec mkdir -p bin/qt5_fs/${app_name}/qt/lib
- exec ln -sf [pwd]/bin/qt5_fs/qt/lib/fonts bin/qt5_fs/${app_name}/qt/lib/fonts
- }
-
- if { [lsearch ${qt_modules} "quick"] != -1 } {
- # add QtQuick plugins
- exec mkdir -p bin/qt5_fs/${app_name}/qt
- exec ln -sf [pwd]/bin/qt5_fs/qt/qml bin/qt5_fs/${app_name}/qt/qml
- }
-
- if { [lsearch ${qt_modules} "plugins"] != -1 } {
- exec mkdir -p bin/qt5_fs/${app_name}/qt
- exec ln -sf [pwd]/bin/qt5_fs/qt/plugins bin/qt5_fs/${app_name}/qt/plugins
- }
-
- exec tar chf bin/qt5_fs_${app_name}.tar -C bin/qt5_fs/${app_name} .
-}
diff --git a/repos/libports/run/qt5_core.run b/repos/libports/run/qt5_core.run
new file mode 100644
index 000000000..66b3e708a
--- /dev/null
+++ b/repos/libports/run/qt5_core.run
@@ -0,0 +1,53 @@
+create_boot_directory
+
+import_from_depot genodelabs/src/[base_src] \
+ genodelabs/src/init \
+ genodelabs/src/libc \
+ genodelabs/src/pcre16 \
+ genodelabs/src/qt5_component \
+ genodelabs/src/qt5_core \
+ genodelabs/src/stdcxx \
+ genodelabs/src/vfs \
+ genodelabs/src/zlib \
+ genodelabs/src/test-qt_core
+
+install_config {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+build_boot_image { }
+
+append qemu_args " -nographic "
+
+run_genode_until "Test done.*\n" 10
diff --git a/repos/libports/run/qt5_drivers.inc b/repos/libports/run/qt5_drivers.inc
index c68fb22e0..40921a13e 100644
--- a/repos/libports/run/qt5_drivers.inc
+++ b/repos/libports/run/qt5_drivers.inc
@@ -103,7 +103,6 @@ proc drivers_build_components { feature_arg } {
lappend_if [use_input_filter feature] build_components server/input_filter
lappend_if [use_nic_drv feature] build_components drivers/nic
lappend_if [use_ps2_drv feature] build_components drivers/input/spec/ps2
- lappend_if [use_timer feature] build_components drivers/timer
lappend_if [use_usb_drv feature] build_components drivers/usb
return $build_components
@@ -315,7 +314,6 @@ proc drivers_boot_modules { feature_arg } {
lappend_if [use_input_filter feature] boot_modules special.chargen
lappend_if [use_nic_drv feature] boot_modules [nic_drv_binary]
lappend_if [use_ps2_drv feature] boot_modules ps2_drv
- lappend_if [use_timer feature] boot_modules timer
lappend_if [use_usb_drv feature] boot_modules usb_drv
return $boot_modules
diff --git a/repos/libports/run/qt5_openglwindow.run b/repos/libports/run/qt5_openglwindow.run
index a9980dc00..0707f610c 100644
--- a/repos/libports/run/qt5_openglwindow.run
+++ b/repos/libports/run/qt5_openglwindow.run
@@ -1,26 +1,16 @@
source ${genode_dir}/repos/libports/run/qt5_common.inc
+import_from_depot genodelabs/src/qt5_component \
+ genodelabs/src/qt5_openglwindow
+
#
# Build
#
append build_components [qt5_build_components feature]
-append build_components {
- lib/mesa/swrast
- app/qt5/examples/openglwindow
-}
-
build $build_components
-create_boot_directory
-
-#
-# Create Qt tar archive
-#
-
-create_qt5_fs_tar_archive "openglwindow" "gui"
-
#
# Generate config
#
@@ -51,10 +41,13 @@ append config {
-
-
+
+
+ 2018-01-01 00:01
+
+
-
+
@@ -68,34 +61,6 @@ install_config $config
append boot_modules [qt5_boot_modules feature]
-append boot_modules {
- openglwindow
- expat.lib.so
- freetype.lib.so
- ld.lib.so
- libc.lib.so vfs.lib.so
- libc_pipe.lib.so
- libm.lib.so
- libpng.lib.so
- jpeg.lib.so
- mesa.lib.so
- egl.lib.so
- egl_swrast.lib.so
- glapi.lib.so
- pcre16.lib.so
- pthread.lib.so
- qt5_component.lib.so
- qt5_core.lib.so
- qt5_gui.lib.so
- qt5_widgets.lib.so
- qt5_xml.lib.so
- zlib.lib.so
- stdcxx.lib.so
- qt5_fs_openglwindow.tar
-}
-
build_boot_image $boot_modules
-
run_genode_until forever
-
diff --git a/repos/libports/run/qt5_qpluginwidget.run b/repos/libports/run/qt5_qpluginwidget.run
index 8bd09119f..1f82cdfd6 100644
--- a/repos/libports/run/qt5_qpluginwidget.run
+++ b/repos/libports/run/qt5_qpluginwidget.run
@@ -1,5 +1,14 @@
source ${genode_dir}/repos/libports/run/qt5_common.inc
+import_from_depot genodelabs/src/libcrypto \
+ genodelabs/src/libssl \
+ genodelabs/src/qt5_component \
+ genodelabs/src/qt5_network \
+ genodelabs/src/qt5_qnitpickerviewwidget \
+ genodelabs/src/qt5_qpluginwidget \
+ genodelabs/src/qt5_widgets \
+ genodelabs/src/test-qpluginwidget
+
#
# Build
#
@@ -7,23 +16,13 @@ source ${genode_dir}/repos/libports/run/qt5_common.inc
append build_components [qt5_build_components feature]
append build_components {
- lib/mesa/swrast
server/loader
server/tar_rom
test/nitpicker
- test/qt5/qpluginwidget
}
build $build_components
-create_boot_directory
-
-#
-# Create Qt tar archive
-#
-
-create_qt5_fs_tar_archive "test-qpluginwidget" "gui"
-
#
# Generate config
#
@@ -62,10 +61,13 @@ append config {
-
-
+
+
+ 2018-01-01 00:01
+
+
-
+
@@ -85,47 +87,14 @@ install_config $config
# Boot modules
#
-exec sh -c "ln -sf [pwd]/test/qt5/qpluginwidget/test-plugin.tar bin/"
-
append boot_modules [qt5_boot_modules feature]
append boot_modules {
loader
tar_rom
testnit
- test-qpluginwidget
- egl.lib.so
- egl_swrast.lib.so
- expat.lib.so
- freetype.lib.so
- glapi.lib.so
- ld.lib.so
- libc.lib.so vfs.lib.so
- libc_pipe.lib.so
- libcrypto.lib.so
- libm.lib.so
- libpng.lib.so
- libssl.lib.so
- jpeg.lib.so
- mesa.lib.so
- pcre16.lib.so
- pthread.lib.so
- qt5_component.lib.so
- qt5_core.lib.so
- qt5_gui.lib.so
- qt5_qnitpickerviewwidget.lib.so
- qt5_qpluginwidget.lib.so
- qt5_widgets.lib.so
- qt5_xml.lib.so
- qt5_network.lib.so
- zlib.lib.so
- test-plugin.tar
- stdcxx.lib.so
- qt5_fs_test-qpluginwidget.tar
}
build_boot_image $boot_modules
-
run_genode_until forever
-
diff --git a/repos/libports/run/qt5_quicktest.run b/repos/libports/run/qt5_quicktest.run
index b7ebddb9c..97fba2573 100644
--- a/repos/libports/run/qt5_quicktest.run
+++ b/repos/libports/run/qt5_quicktest.run
@@ -1,27 +1,24 @@
source ${genode_dir}/repos/libports/run/qt5_common.inc
+import_from_depot genodelabs/raw/qt5_qtquick2 \
+ genodelabs/src/libcrypto \
+ genodelabs/src/libssl \
+ genodelabs/src/qt5_component \
+ genodelabs/src/qt5_network \
+ genodelabs/src/qt5_qml \
+ genodelabs/src/qt5_qtquick2 \
+ genodelabs/src/qt5_quick \
+ genodelabs/src/qt5_widgets \
+ genodelabs/src/test-qt_quick
+
#
# Build
#
append build_components [qt5_build_components feature]
-append build_components {
- lib/mesa/swrast
- app/qt5/qt_quicktest
- lib/qt5/qtdeclarative/src/imports/qtquick2
-}
-
build $build_components
-create_boot_directory
-
-#
-# Create Qt tar archive
-#
-
-create_qt5_fs_tar_archive "qt_quicktest" "gui quick"
-
#
# Generate config
#
@@ -40,19 +37,24 @@ append config {
append config [qt5_start_nodes feature]
append config {
-
+
-
-
+
+
+ 2018-01-01 00:01
+
+
+
+
-
+
-
+
@@ -67,45 +69,8 @@ install_config $config
# Boot modules
#
-# The QtQuick plugin currently needs to be provided both in the file system
-# (for Qt) and as ROM module (for 'dlopen()').
-
append boot_modules [qt5_boot_modules feature]
-append boot_modules {
- qt_quicktest
- egl.lib.so
- egl_swrast.lib.so
- expat.lib.so
- freetype.lib.so
- glapi.lib.so
- ld.lib.so
- libc.lib.so vfs.lib.so
- libc_pipe.lib.so
- libcrypto.lib.so
- libm.lib.so
- libpng.lib.so
- libssl.lib.so
- jpeg.lib.so
- mesa.lib.so
- pcre16.lib.so
- pthread.lib.so
- qt5_component.lib.so
- qt5_core.lib.so
- qt5_network.lib.so
- qt5_qml.lib.so
- qt5_gui.lib.so
- qt5_quick.lib.so
- qt5_widgets.lib.so
- qt5_xml.lib.so
- zlib.lib.so
- stdcxx.lib.so
- qt5_fs_qt_quicktest.tar
- qt5_qtquick2plugin.lib.so
-}
-
build_boot_image $boot_modules
-
run_genode_until forever
-
diff --git a/repos/libports/run/qt5_samegame.run b/repos/libports/run/qt5_samegame.run
index e4142d1b5..3ce67bdd4 100644
--- a/repos/libports/run/qt5_samegame.run
+++ b/repos/libports/run/qt5_samegame.run
@@ -1,27 +1,24 @@
source ${genode_dir}/repos/libports/run/qt5_common.inc
+import_from_depot genodelabs/raw/qt5_qtquick2 \
+ genodelabs/raw/qt5_samegame \
+ genodelabs/src/libcrypto \
+ genodelabs/src/libssl \
+ genodelabs/src/qt5_component \
+ genodelabs/src/qt5_network \
+ genodelabs/src/qt5_qml \
+ genodelabs/src/qt5_qtquick2 \
+ genodelabs/src/qt5_quick \
+ genodelabs/src/qt5_samegame
+
#
# Build
#
append build_components [qt5_build_components feature]
-append build_components {
- lib/mesa/swrast
- app/qt5/examples/samegame
- lib/qt5/qtdeclarative/src/imports/qtquick2
-}
-
build $build_components
-create_boot_directory
-
-#
-# Create Qt tar archive
-#
-
-create_qt5_fs_tar_archive "samegame" "gui quick"
-
#
# Generate config
#
@@ -44,10 +41,16 @@ append config {
-
-
+
+
+ 2018-01-01 00:01
+
+
+
+
+
-
+
@@ -72,40 +75,6 @@ install_config $config
append boot_modules [qt5_boot_modules feature]
-append boot_modules {
- samegame
- egl.lib.so
- egl_swrast.lib.so
- expat.lib.so
- freetype.lib.so
- glapi.lib.so
- ld.lib.so
- libc.lib.so vfs.lib.so
- libc_pipe.lib.so
- libcrypto.lib.so
- libm.lib.so
- libpng.lib.so
- libssl.lib.so
- jpeg.lib.so
- mesa.lib.so
- pcre16.lib.so
- pthread.lib.so
- qt5_component.lib.so
- qt5_core.lib.so
- qt5_network.lib.so
- qt5_qml.lib.so
- qt5_gui.lib.so
- qt5_quick.lib.so
- qt5_widgets.lib.so
- qt5_xml.lib.so
- zlib.lib.so
- stdcxx.lib.so
- qt5_fs_samegame.tar
- qt5_qtquick2plugin.lib.so
-}
-
build_boot_image $boot_modules
-
run_genode_until forever
-
diff --git a/repos/libports/run/qt5_tetrix.run b/repos/libports/run/qt5_tetrix.run
index a1de0fd58..9c21f4a57 100644
--- a/repos/libports/run/qt5_tetrix.run
+++ b/repos/libports/run/qt5_tetrix.run
@@ -1,26 +1,19 @@
source ${genode_dir}/repos/libports/run/qt5_common.inc
+import_from_depot genodelabs/src/qt5_component \
+ genodelabs/src/qt5_scriptclassic \
+ genodelabs/src/qt5_tetrix \
+ genodelabs/src/qt5_ui_tools \
+ genodelabs/src/qt5_widgets
+
#
# Build
#
append build_components [qt5_build_components feature]
-append build_components {
- lib/mesa/swrast
- app/qt5/examples/tetrix
-}
-
build $build_components
-create_boot_directory
-
-#
-# Create Qt tar archive
-#
-
-create_qt5_fs_tar_archive "tetrix" "gui"
-
#
# Generate config
#
@@ -43,10 +36,13 @@ append config {
-
-
+
+
+ 2018-01-01 00:01
+
+
-
+
@@ -68,36 +64,6 @@ install_config $config
append boot_modules [qt5_boot_modules feature]
-append boot_modules {
- tetrix
- egl.lib.so
- egl_swrast.lib.so
- expat.lib.so
- freetype.lib.so
- glapi.lib.so
- ld.lib.so
- libc.lib.so vfs.lib.so
- libc_pipe.lib.so
- libm.lib.so
- libpng.lib.so
- jpeg.lib.so
- mesa.lib.so
- pcre16.lib.so
- pthread.lib.so
- qt5_component.lib.so
- qt5_core.lib.so
- qt5_gui.lib.so
- qt5_widgets.lib.so
- qt5_scriptclassic.lib.so
- qt5_ui_tools.lib.so
- qt5_xml.lib.so
- zlib.lib.so
- stdcxx.lib.so
- qt5_fs_tetrix.tar
-}
-
build_boot_image $boot_modules
-
run_genode_until forever
-
diff --git a/repos/libports/run/qt5_textedit.run b/repos/libports/run/qt5_textedit.run
index 21e9a295c..d98c0b596 100644
--- a/repos/libports/run/qt5_textedit.run
+++ b/repos/libports/run/qt5_textedit.run
@@ -1,5 +1,10 @@
source ${genode_dir}/repos/libports/run/qt5_common.inc
+import_from_depot genodelabs/src/qt5_component \
+ genodelabs/src/qt5_printsupport \
+ genodelabs/src/qt5_textedit \
+ genodelabs/src/qt5_widgets
+
#
# Build
#
@@ -11,11 +16,6 @@ if {[have_spec odroid_xu]} {
append build_components [qt5_build_components feature]
-append build_components {
- lib/mesa/swrast
- app/qt5/examples/textedit
-}
-
set use_sd_card_driver [expr [have_spec omap4] || [have_spec arndale]]
set use_ahci_driver [expr [have_spec x86] && ![have_spec linux]]
@@ -27,13 +27,6 @@ lappend_if [expr ![have_spec linux]] build_components server/fatfs_fs
build $build_components
-create_boot_directory
-
-#
-# Create Qt tar archive
-
-create_qt5_fs_tar_archive "textedit" "gui"
-
#
# Generate config
#
@@ -91,11 +84,14 @@ append config {
-
+
-
-
+
+
+ 2018-01-01 00:01
+
+
@@ -111,11 +107,14 @@ append config {
-
+
-
-
+
+
+ 2018-01-01 00:01
+
+
@@ -138,33 +137,6 @@ install_config $config
append boot_modules [qt5_boot_modules feature]
-append boot_modules {
- textedit
- egl.lib.so
- egl_swrast.lib.so
- expat.lib.so
- freetype.lib.so
- glapi.lib.so
- ld.lib.so
- libc.lib.so vfs.lib.so
- libc_pipe.lib.so
- libm.lib.so
- libpng.lib.so
- jpeg.lib.so
- mesa.lib.so
- pcre16.lib.so
- pthread.lib.so
- qt5_component.lib.so
- qt5_core.lib.so
- qt5_gui.lib.so
- qt5_printsupport.lib.so
- qt5_widgets.lib.so
- qt5_xml.lib.so
- zlib.lib.so
- stdcxx.lib.so
- qt5_fs_textedit.tar
-}
-
# platform-specific modules
lappend_if [have_spec linux] boot_modules ram_fs
lappend_if [expr ![have_spec linux]] boot_modules fatfs_fs
diff --git a/repos/libports/run/qt5_virtualkeyboard.run b/repos/libports/run/qt5_virtualkeyboard.run
index ae4a26887..5b955df0e 100644
--- a/repos/libports/run/qt5_virtualkeyboard.run
+++ b/repos/libports/run/qt5_virtualkeyboard.run
@@ -1,28 +1,33 @@
source ${genode_dir}/repos/libports/run/qt5_common.inc
+import_from_depot genodelabs/raw/qt5_qt_labs_folderlistmodel \
+ genodelabs/raw/qt5_qtquick_layouts \
+ genodelabs/raw/qt5_qtquick_virtualkeyboard \
+ genodelabs/raw/qt5_qtquick_window \
+ genodelabs/raw/qt5_qtquick2 \
+ genodelabs/src/libcrypto \
+ genodelabs/src/libssl \
+ genodelabs/src/qt5_component \
+ genodelabs/src/qt5_network \
+ genodelabs/src/qt5_qml \
+ genodelabs/src/qt5_qt_labs_folderlistmodel \
+ genodelabs/src/qt5_qtquick_layouts \
+ genodelabs/src/qt5_qtquick_virtualkeyboard \
+ genodelabs/src/qt5_qtquick_window \
+ genodelabs/src/qt5_qtquick2 \
+ genodelabs/src/qt5_quick \
+ genodelabs/src/qt5_svg \
+ genodelabs/src/qt5_virtualkeyboard \
+ genodelabs/src/qt5_widgets
+
#
# Build
#
append build_components [qt5_build_components feature]
-append build_components {
- app/qt5/examples/virtualkeyboard
- lib/qt5/qtdeclarative/src/imports/qtquick2
- lib/qt5/qtvirtualkeyboard/src/imports/qtvirtualkeyboard
- lib/mesa/swrast
-}
-
build $build_components
-create_boot_directory
-
-
-#
-# Create Qt tar archive
-#
-
-create_qt5_fs_tar_archive "basic" "gui quick plugins"
#
# Generate config
@@ -46,10 +51,24 @@ append config {
-
-
+
+
+ 2018-01-01 00:01
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -71,46 +90,6 @@ install_config $config
append boot_modules [qt5_boot_modules feature]
-append boot_modules {
- basic
- freetype.lib.so
- egl.lib.so
- egl_swrast.lib.so
- glapi.lib.so
- expat.lib.so
- mesa.lib.so
- ld.lib.so
- libc.lib.so vfs.lib.so
- libc_pipe.lib.so
- libm.lib.so
- libpng.lib.so
- jpeg.lib.so
- pcre16.lib.so
- pthread.lib.so
- qt5_component.lib.so
- qt5_core.lib.so
- qt5_gui.lib.so
- qt5_network.lib.so
- qt5_svg.lib.so
- qt5_qml.lib.so
- qt5_quick.lib.so
- qt5_qtquick2plugin.lib.so
- qt5_qquicklayoutsplugin.lib.so
- qt5_qmlfolderlistmodelplugin.lib.so
- qt5_qtvirtualkeyboardplugin.lib.so
- qt5_qtvirtualkeyboardstylesplugin.lib.so
- qt5_widgets.lib.so
- qt5_windowplugin.lib.so
- qt5_xml.lib.so
- zlib.lib.so
- stdcxx.lib.so
- libcrypto.lib.so
- libssl.lib.so
- qt5_fs_basic.tar
-}
-
build_boot_image $boot_modules
-
run_genode_until forever
-
diff --git a/repos/libports/src/app/qt5/examples/calculatorform/target.mk b/repos/libports/src/app/qt5/examples/calculatorform/target.mk
index 6e3ce1f81..bb95798e4 100644
--- a/repos/libports/src/app/qt5/examples/calculatorform/target.mk
+++ b/repos/libports/src/app/qt5/examples/calculatorform/target.mk
@@ -1,20 +1,14 @@
-# identify the qt repository by searching for a file that is unique for qt
-QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
-QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)
-
-include $(QT5_REP_DIR)/lib/mk/qt5_version.inc
-
QT5_PORT_DIR := $(call select_from_ports,qt5)
-QT5_CONTRIB_DIR := $(QT5_PORT_DIR)/src/lib/qt5/$(QT5)
+QT5_CONTRIB_DIR := $(QT5_PORT_DIR)/src/lib/qt5/qt5
QMAKE_PROJECT_PATH = $(QT5_CONTRIB_DIR)/qttools/examples/designer/calculatorform
QMAKE_PROJECT_FILE = $(QMAKE_PROJECT_PATH)/calculatorform.pro
vpath % $(QMAKE_PROJECT_PATH)
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_defaults.inc
+include $(call select_from_repositories,src/app/qt5/tmpl/target_defaults.inc)
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_final.inc
+include $(call select_from_repositories,src/app/qt5/tmpl/target_final.inc)
LIBS += qt5_component
diff --git a/repos/libports/src/app/qt5/examples/openglwindow/target.mk b/repos/libports/src/app/qt5/examples/openglwindow/target.mk
index 10ed25afe..3a6c7e7aa 100644
--- a/repos/libports/src/app/qt5/examples/openglwindow/target.mk
+++ b/repos/libports/src/app/qt5/examples/openglwindow/target.mk
@@ -1,20 +1,14 @@
-# identify the Qt5 repository by searching for a file that is unique for Qt5
-QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
-QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)
-
-include $(QT5_REP_DIR)/lib/mk/qt5_version.inc
-
QT5_PORT_DIR := $(call select_from_ports,qt5)
-QT5_CONTRIB_DIR := $(QT5_PORT_DIR)/src/lib/qt5/$(QT5)
+QT5_CONTRIB_DIR := $(QT5_PORT_DIR)/src/lib/qt5/qt5
QMAKE_PROJECT_PATH = $(QT5_CONTRIB_DIR)/qtbase/examples/gui/openglwindow
QMAKE_PROJECT_FILE = $(QMAKE_PROJECT_PATH)/openglwindow.pro
vpath % $(QMAKE_PROJECT_PATH)
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_defaults.inc
+include $(call select_from_repositories,src/app/qt5/tmpl/target_defaults.inc)
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_final.inc
+include $(call select_from_repositories,src/app/qt5/tmpl/target_final.inc)
LIBS += qt5_component
diff --git a/repos/libports/src/app/qt5/examples/samegame/target.mk b/repos/libports/src/app/qt5/examples/samegame/target.mk
index 77f39631f..695c305a8 100644
--- a/repos/libports/src/app/qt5/examples/samegame/target.mk
+++ b/repos/libports/src/app/qt5/examples/samegame/target.mk
@@ -1,41 +1,6 @@
-# identify the qt5 repository by searching for a file that is unique for qt5
-QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
-QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)
+include $(call select_from_repositories,src/app/qt5/tmpl/target_defaults.inc)
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_defaults.inc
-
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_final.inc
-
-#
-# install contrib resources
-#
-
-SAMEGAME3_RESOURCES := samegame.qml \
- Dialog.qml \
- Button.qml \
- Block.qml \
- samegame.js
-
-SAMEGAME_RESOURCES := background.jpg \
- blueStone.png \
- greenStone.png \
- redStone.png \
- yellowStone.png
-
-$(TARGET): $(addprefix $(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)/, $(SAMEGAME3_RESOURCES)) \
- $(addprefix $(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)/shared/pics/, $(SAMEGAME_RESOURCES))
-
-$(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET):
- $(VERBOSE)mkdir -p $@
-
-$(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)/shared/pics:
- $(VERBOSE)mkdir -p $@
-
-$(addprefix $(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)/, $(SAMEGAME3_RESOURCES)): $(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)
- $(VERBOSE)ln -sf $(QT5_CONTRIB_DIR)/qtdeclarative/examples/quick/tutorials/samegame/samegame3/$(notdir $@) $@
-
-$(addprefix $(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)/shared/pics/, $(SAMEGAME_RESOURCES)): $(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)/shared/pics
- $(VERBOSE)ln -sf $(QT5_CONTRIB_DIR)/qtdeclarative/examples/quick/tutorials/samegame/shared/pics/$(notdir $@) $@
+include $(call select_from_repositories,src/app/qt5/tmpl/target_final.inc)
LIBS += qt5_component
diff --git a/repos/libports/src/app/qt5/examples/tetrix/target.mk b/repos/libports/src/app/qt5/examples/tetrix/target.mk
index fc12974af..1cbaa5191 100644
--- a/repos/libports/src/app/qt5/examples/tetrix/target.mk
+++ b/repos/libports/src/app/qt5/examples/tetrix/target.mk
@@ -1,22 +1,16 @@
-# identify the qt5 repository by searching for a file that is unique for qt5
-QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
-QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)
-
-include $(QT5_REP_DIR)/lib/mk/qt5_version.inc
-
QT5_PORT_DIR := $(call select_from_ports,qt5)
-QT5_CONTRIB_DIR := $(QT5_PORT_DIR)/src/lib/qt5/$(QT5)
+QT5_CONTRIB_DIR := $(QT5_PORT_DIR)/src/lib/qt5/qt5
QMAKE_PROJECT_PATH = $(QT5_CONTRIB_DIR)/qtscript/examples/script/qstetrix
QMAKE_PROJECT_FILE = $(QMAKE_PROJECT_PATH)/qstetrix.pro
vpath % $(QMAKE_PROJECT_PATH)
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_defaults.inc
+include $(call select_from_repositories,src/app/qt5/tmpl/target_defaults.inc)
CC_CXX_OPT += -DQT_NO_SCRIPTTOOLS
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_final.inc
+include $(call select_from_repositories,src/app/qt5/tmpl/target_final.inc)
LIBS += qt5_component
diff --git a/repos/libports/src/app/qt5/examples/textedit/target.mk b/repos/libports/src/app/qt5/examples/textedit/target.mk
index cb5e0e1f4..f3976219b 100644
--- a/repos/libports/src/app/qt5/examples/textedit/target.mk
+++ b/repos/libports/src/app/qt5/examples/textedit/target.mk
@@ -1,21 +1,15 @@
-# identify the qt repository by searching for a file that is unique for qt
-QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
-QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)
-
-include $(QT5_REP_DIR)/lib/mk/qt5_version.inc
-
QT5_PORT_DIR := $(call select_from_ports,qt5)
-QT5_CONTRIB_DIR := $(QT5_PORT_DIR)/src/lib/qt5/$(QT5)
+QT5_CONTRIB_DIR := $(QT5_PORT_DIR)/src/lib/qt5/qt5
QMAKE_PROJECT_PATH = $(QT5_CONTRIB_DIR)/qtbase/examples/widgets/richtext/textedit
QMAKE_PROJECT_FILE = $(QMAKE_PROJECT_PATH)/textedit.pro
vpath % $(QMAKE_PROJECT_PATH)
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_defaults.inc
+include $(call select_from_repositories,src/app/qt5/tmpl/target_defaults.inc)
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_final.inc
+include $(call select_from_repositories,src/app/qt5/tmpl/target_final.inc)
-LIBS += qt5_printsupport qt5_component
+LIBS += qt5_component qt5_printsupport
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/src/app/qt5/examples/virtualkeyboard/target.mk b/repos/libports/src/app/qt5/examples/virtualkeyboard/target.mk
index 51ea8968b..123224e23 100644
--- a/repos/libports/src/app/qt5/examples/virtualkeyboard/target.mk
+++ b/repos/libports/src/app/qt5/examples/virtualkeyboard/target.mk
@@ -1,23 +1,17 @@
-# identify the qt5 repository by searching for a file that is unique for qt5
-QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
-QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)
-
-include $(QT5_REP_DIR)/lib/mk/qt5_version.inc
-
QT5_PORT_DIR := $(call select_from_ports,qt5)
-QT5_CONTRIB_DIR := $(QT5_PORT_DIR)/src/lib/qt5/$(QT5)
+QT5_CONTRIB_DIR := $(QT5_PORT_DIR)/src/lib/qt5/qt5
QMAKE_PROJECT_PATH = $(QT5_CONTRIB_DIR)/qtvirtualkeyboard/examples/virtualkeyboard/basic
QMAKE_PROJECT_FILE = $(QMAKE_PROJECT_PATH)/basic.pro
vpath % $(QMAKE_PROJECT_PATH)
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_defaults.inc
+include $(call select_from_repositories,src/app/qt5/tmpl/target_defaults.inc)
CC_CXX_OPT += -D'MAIN_QML="basic-b2qt.qml"'
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_final.inc
+include $(call select_from_repositories,src/app/qt5/tmpl/target_final.inc)
-LIBS += qt5_component qt5_qtvirtualkeyboardplugin qt5_windowplugin
+LIBS += qt5_component
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/src/app/qt5/qt_avplay/avplay_slave.h b/repos/libports/src/app/qt5/qt_avplay/avplay_slave.h
index 7432e7f55..792a71cb9 100644
--- a/repos/libports/src/app/qt5/qt_avplay/avplay_slave.h
+++ b/repos/libports/src/app/qt5/qt_avplay/avplay_slave.h
@@ -84,6 +84,11 @@ class Avplay_slave : public QObject
vfs_dev_node.setAttribute("name", "dev");
QDomElement vfs_dev_log_node = config_doc.createElement("log");
vfs_dev_node.appendChild(vfs_dev_log_node);
+ QDomElement vfs_dev_rtc_node = config_doc.createElement("inline");
+ vfs_dev_rtc_node.setAttribute("name", "rtc");
+ QDomText vfs_dev_rtc_node_text = config_doc.createTextNode("2018-01-01 00:01");
+ vfs_dev_rtc_node.appendChild(vfs_dev_rtc_node_text);
+ vfs_dev_node.appendChild(vfs_dev_rtc_node);
vfs_node.appendChild(vfs_dev_node);
QDomElement vfs_mediafile_node = config_doc.createElement("rom");
vfs_mediafile_node.setAttribute("name", "mediafile");
@@ -93,6 +98,7 @@ class Avplay_slave : public QObject
QDomElement libc_node = config_doc.createElement("libc");
libc_node.setAttribute("stdout", "/dev/log");
libc_node.setAttribute("stderr", "/dev/log");
+ libc_node.setAttribute("rtc", "/dev/rtc");
config_node.appendChild(libc_node);
QDomElement sdl_audio_volume_node = config_doc.createElement("sdl_audio_volume");
diff --git a/repos/libports/src/app/qt5/qt_avplay/main.cpp b/repos/libports/src/app/qt5/qt_avplay/main.cpp
index 360a40f81..56d1dfab9 100644
--- a/repos/libports/src/app/qt5/qt_avplay/main.cpp
+++ b/repos/libports/src/app/qt5/qt_avplay/main.cpp
@@ -13,7 +13,6 @@
/* Qt includes */
#include
-#include
/* qt_avplay includes */
#include "main_window.h"
diff --git a/repos/libports/src/app/qt5/qt_avplay/qt_avplay.pro b/repos/libports/src/app/qt5/qt_avplay/qt_avplay.pro
index 36f04b436..bb3917ab0 100644
--- a/repos/libports/src/app/qt5/qt_avplay/qt_avplay.pro
+++ b/repos/libports/src/app/qt5/qt_avplay/qt_avplay.pro
@@ -1,6 +1,6 @@
TEMPLATE = app
TARGET = qt_avplay
-QT = core gui xml
+QT = core gui widgets xml
HEADERS = avplay_slave.h \
control_bar.h \
main_window.h
diff --git a/repos/libports/src/app/qt5/qt_avplay/target.mk b/repos/libports/src/app/qt5/qt_avplay/target.mk
index 3de6a7515..83539e918 100644
--- a/repos/libports/src/app/qt5/qt_avplay/target.mk
+++ b/repos/libports/src/app/qt5/qt_avplay/target.mk
@@ -1,31 +1,7 @@
-# identify the qt repository by searching for a file that is unique for qt
-QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
-QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)
+include $(call select_from_repositories,src/app/qt5/tmpl/target_defaults.inc)
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_defaults.inc
-
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_final.inc
+include $(call select_from_repositories,src/app/qt5/tmpl/target_final.inc)
LIBS += qt5_qnitpickerviewwidget qoost
-#
-# install contrib resources
-#
-
-$(TARGET): $(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)/player_play.png \
- $(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)/player_pause.png \
- $(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)/player_stop.png \
- $(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)/volume.png
-
-$(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET):
- $(VERBOSE)mkdir -p $@
-
-$(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)/player_play.png \
-$(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)/player_pause.png \
-$(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)/player_stop.png: $(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)
- $(VERBOSE)ln -sf $(QT5_CONTRIB_DIR)/qtbase/examples/network/torrent/icons/$(notdir $@) $@
-
-$(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)/volume.png: $(BUILD_BASE_DIR)/bin/qt5_fs/$(TARGET)
- $(VERBOSE)ln -sf $(QT5_CONTRIB_DIR)/qtwebkit/Source/WebCore/platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png $@
-
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/src/app/qt5/qt_launchpad/qt_launchpad.pro b/repos/libports/src/app/qt5/qt_launchpad/qt_launchpad.pro
index 0546c53e0..a456dd8f5 100644
--- a/repos/libports/src/app/qt5/qt_launchpad/qt_launchpad.pro
+++ b/repos/libports/src/app/qt5/qt_launchpad/qt_launchpad.pro
@@ -1,6 +1,6 @@
TEMPLATE = app
TARGET = qt_launchpad
-QT = core gui
+QT = core gui widgets
HEADERS += child_entry.h \
kbyte_loadbar.h \
launch_entry.h \
diff --git a/repos/libports/src/app/qt5/qt_launchpad/target.mk b/repos/libports/src/app/qt5/qt_launchpad/target.mk
index 7e7ca28fe..21a44b1cc 100644
--- a/repos/libports/src/app/qt5/qt_launchpad/target.mk
+++ b/repos/libports/src/app/qt5/qt_launchpad/target.mk
@@ -1,10 +1,6 @@
-# identify the qt5 repository by searching for a file that is unique for qt5
-QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
-QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)
+include $(call select_from_repositories,src/app/qt5/tmpl/target_defaults.inc)
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_defaults.inc
-
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_final.inc
+include $(call select_from_repositories,src/app/qt5/tmpl/target_final.inc)
LIBS += launchpad
diff --git a/repos/libports/src/app/qt5/qt_quicktest/target.mk b/repos/libports/src/app/qt5/qt_quicktest/target.mk
deleted file mode 100644
index 54c2c9a1a..000000000
--- a/repos/libports/src/app/qt5/qt_quicktest/target.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-# identify the qt5 repository by searching for a file that is unique for qt5
-QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
-QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)
-
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_defaults.inc
-
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_final.inc
-
-LIBS += qt5_component
-
-CC_CXX_WARN_STRICT =
diff --git a/repos/libports/src/app/qt5/tmpl/target_defaults.inc b/repos/libports/src/app/qt5/tmpl/target_defaults.inc
index eccd80144..d94c0be29 100644
--- a/repos/libports/src/app/qt5/tmpl/target_defaults.inc
+++ b/repos/libports/src/app/qt5/tmpl/target_defaults.inc
@@ -28,8 +28,3 @@ endif
ifndef TARGET
TARGET = $(PROJECT_DIR_NAME)
endif
-
-# default stack size of the main thread
-# - can be overridden anywhere in target.mk
-
-QT_MAIN_STACK_SIZE ?= 512*1024
diff --git a/repos/libports/src/app/qt5/tmpl/target_final.inc b/repos/libports/src/app/qt5/tmpl/target_final.inc
index 68b1be895..4573cc9f7 100644
--- a/repos/libports/src/app/qt5/tmpl/target_final.inc
+++ b/repos/libports/src/app/qt5/tmpl/target_final.inc
@@ -1,9 +1,6 @@
INC_DIR += $(PRG_DIR)
-LIBS += libc
-
-# set the stack size of the main thread
-CC_CXX_OPT += -DQT_MAIN_STACK_SIZE=$(QT_MAIN_STACK_SIZE)
+LIBS += libc base
# QtCore
ifeq ($(findstring core, $(QT)), core)
@@ -14,7 +11,13 @@ endif
# QtGui
ifeq ($(findstring gui, $(QT)), gui)
QT_DEFINES += -DQT_GUI_LIB
-LIBS += qt5_gui qt5_qpa_nitpicker qt5_widgets qt5_qjpeg
+LIBS += qt5_gui qt5_qpa_nitpicker qt5_qjpeg
+endif
+
+# QtWidgets
+ifeq ($(findstring widgets, $(QT)), widgets)
+QT_DEFINES += -DQT_WIDGETS_LIB
+LIBS += qt5_widgets
endif
# QtNetwork
diff --git a/repos/libports/src/lib/qt5/patches/header_generation.patch b/repos/libports/src/lib/qt5/patches/header_generation.patch
new file mode 100644
index 000000000..24e3d4d5a
--- /dev/null
+++ b/repos/libports/src/lib/qt5/patches/header_generation.patch
@@ -0,0 +1,58 @@
+header_generation.patch
+
+From: Christian Prochaska
+
+Avoid errors on header generation during port preparation.
+---
+ qtbase/mkspecs/features/qmake_use.prf | 4 ++--
+ qtbase/mkspecs/features/qt.prf | 2 +-
+ .../Tools/qmake/mkspecs/features/default_pre.prf | 8 ++++----
+ 3 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/qtbase/mkspecs/features/qmake_use.prf b/qtbase/mkspecs/features/qmake_use.prf
+index 9b6c67c..aa683d0 100644
+--- a/qtbase/mkspecs/features/qmake_use.prf
++++ b/qtbase/mkspecs/features/qmake_use.prf
+@@ -14,8 +14,8 @@ for(ever) {
+ defines = $$eval(QMAKE_DEFINES_$${nu})
+ includes = $$eval(QMAKE_INCDIR_$${nu})
+
+- isEmpty(libs):isEmpty(defines):isEmpty(includes): \
+- error("Library '$$name' is not defined.")
++ #isEmpty(libs):isEmpty(defines):isEmpty(includes): \
++ # error("Library '$$name' is not defined.")
+
+ !contains(use, nolink) {
+ QMAKE_LIBDIR += $$libdir
+diff --git a/qtbase/mkspecs/features/qt.prf b/qtbase/mkspecs/features/qt.prf
+index 98f794c..f9beec7 100644
+--- a/qtbase/mkspecs/features/qt.prf
++++ b/qtbase/mkspecs/features/qt.prf
+@@ -153,7 +153,7 @@ for(ever) {
+ WINRT_MANIFEST.capabilities_device_default += $$MODULE_WINRT_CAPABILITIES_DEVICE
+ }
+ }
+- !isEmpty(BAD_QT):error("Unknown module(s) in QT$$var_sfx: $$replace(BAD_QT, _private$, -private)")
++ #!isEmpty(BAD_QT):error("Unknown module(s) in QT$$var_sfx: $$replace(BAD_QT, _private$, -private)")
+
+ !isEmpty(var_sfx): break()
+ var_sfx = _PRIVATE
+diff --git a/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf b/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf
+index 5c36e93..5a52092 100644
+--- a/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf
++++ b/qtwebkit/Tools/qmake/mkspecs/features/default_pre.prf
+@@ -67,10 +67,10 @@ else: PYTHON = python
+ CONFIG += production_build
+
+ # Run configure before making decisions that depend on the result
+-root_project_file {
+- load(configure)
+- runConfigure()
+-}
++#root_project_file {
++# load(configure)
++# runConfigure()
++#}
+
+ unix:config_gccdepends {
+ # We have a compiler that supports the -MD option (and neither
diff --git a/repos/libports/src/lib/qt5/patches/host_tools.patch b/repos/libports/src/lib/qt5/patches/host_tools.patch
index 4b8ac9284..e4b94fe1f 100644
--- a/repos/libports/src/lib/qt5/patches/host_tools.patch
+++ b/repos/libports/src/lib/qt5/patches/host_tools.patch
@@ -2,194 +2,30 @@ host_tools.patch
From: Christian Prochaska
-Support out-of-tree build of Qt host tools.
-This patch should not be applied when running the Qt 'configure' script.
+Support shadow build of the host tools when the source tree already
+contains generated files.
---
- qtbase/mkspecs/features/qt.prf | 2
- qtbase/mkspecs/features/qt_build_config.prf | 2
- qtbase/mkspecs/features/qt_module.prf | 4 -
- qtbase/mkspecs/features/qt_tool.prf | 112 ++++++++++++++-------------
- qtbase/qmake/Makefile.unix | 2
- 5 files changed, 61 insertions(+), 61 deletions(-)
+ qtbase/configure | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
-diff --git a/qtbase/mkspecs/features/qt.prf b/qtbase/mkspecs/features/qt.prf
-index 98f794c..f4ec688 100644
---- a/qtbase/mkspecs/features/qt.prf
-+++ b/qtbase/mkspecs/features/qt.prf
-@@ -153,7 +153,7 @@ for(ever) {
- WINRT_MANIFEST.capabilities_device_default += $$MODULE_WINRT_CAPABILITIES_DEVICE
- }
- }
-- !isEmpty(BAD_QT):error("Unknown module(s) in QT$$var_sfx: $$replace(BAD_QT, _private$, -private)")
-+ !isEmpty(BAD_QT):debug("Unknown module(s) in QT$$var_sfx: $$replace(BAD_QT, _private$, -private)")
+diff --git a/qtbase/configure b/qtbase/configure
+index a901fa0..a3e7df7 100755
+--- a/qtbase/configure
++++ b/qtbase/configure
+@@ -1299,11 +1299,11 @@ if [ "$OPT_SHADOW" = "maybe" ]; then
+ fi
+ fi
+ if [ "$OPT_SHADOW" = "yes" ]; then
+- if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
+- echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
+- echo >&2 "Cannot proceed."
+- exit 1
+- fi
++ #if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
++ #echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
++ #echo >&2 "Cannot proceed."
++ #exit 1
++ #fi
+ [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
+ fi
- !isEmpty(var_sfx): break()
- var_sfx = _PRIVATE
-diff --git a/qtbase/mkspecs/features/qt_build_config.prf b/qtbase/mkspecs/features/qt_build_config.prf
-index 3762c14..a19d0ce 100644
---- a/qtbase/mkspecs/features/qt_build_config.prf
-+++ b/qtbase/mkspecs/features/qt_build_config.prf
-@@ -132,5 +132,5 @@ defineTest(qtConfig) {
- contains(QT.$${module}.disabled_features, $$1): \
- return(false)
- }
-- error("Could not find feature $${1}.")
-+ debug(1, "Could not find feature $${1}.")
- }
-diff --git a/qtbase/mkspecs/features/qt_module.prf b/qtbase/mkspecs/features/qt_module.prf
-index 31d6285..eec9850 100644
---- a/qtbase/mkspecs/features/qt_module.prf
-+++ b/qtbase/mkspecs/features/qt_module.prf
-@@ -11,7 +11,7 @@
-
- isEmpty(MODULE):MODULE = $$section($$list($$basename(_PRO_FILE_)), ., 0, 0)
- isEmpty(VERSION): VERSION = $$MODULE_VERSION
--isEmpty(VERSION): error("Module does not define version.")
-+isEmpty(VERSION): debug(1, "Module does not define version.")
-
- exists($$OUT_PWD/qt$${MODULE}-config.pri) {
- include($$OUT_PWD/qt$${MODULE}-config.pri)
-@@ -83,7 +83,7 @@ QMAKE_DOCS_TARGETDIR = qt$${MODULE}
-
- load(qt_common)
- !no_module_headers: load(qt_module_headers)
--load(qt_module_pris)
-+#load(qt_module_pris)
-
- INCLUDEPATH *= $$eval(QT.$${MODULE}.includes) $$eval(QT.$${MODULE}_private.includes)
-
-diff --git a/qtbase/mkspecs/features/qt_tool.prf b/qtbase/mkspecs/features/qt_tool.prf
-index 4b73b4b..a4f4a12 100644
---- a/qtbase/mkspecs/features/qt_tool.prf
-+++ b/qtbase/mkspecs/features/qt_tool.prf
-@@ -18,61 +18,61 @@ DEFINES *= QT_USE_QSTRINGBUILDER
- # If we are doing a prefix build, create a "module" pri which enables
- # qtPrepareTool() to work with the non-installed build.
- # Non-bootstrapped tools always need this because of the environment setup.
--!build_pass:if(!host_build|!force_bootstrap|force_independent|!isEmpty(HOST_QT_TOOLS)) {
-- isEmpty(MODULE):MODULE = $$TARGET
--
-- load(qt_build_paths)
--
-- TOOL_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_tool_$${MODULE}.pri
--
-- vars = binary depends
--
-- isEmpty(HOST_QT_TOOLS) {
-- load(resolve_target)
--
-- !host_build|!force_bootstrap: MODULE_DEPENDS = $$replace(QT, -private$, _private)
--
-- !isEmpty(QT_TOOL_ENV) {
-- vars += envvars
-- module_var_names =
-- module_var_sets =
-- for(var, QT_TOOL_ENV) {
-- vars += env.$${var}.name env.$${var}.value
-- module_var_names += QT_TOOL.$${MODULE}.env.$${var}
-- module_var_sets += \
-- "QT_TOOL.$${MODULE}.env.$${var}.name = $$val_escape($${var}.name)" \
-- "QT_TOOL.$${MODULE}.env.$${var}.value = $$val_escape($${var}.value)"
-- }
-- module_envvars = \
-- "QT_TOOL.$${MODULE}.envvars = $$module_var_names" \
-- $$module_var_sets
-- } else {
-- module_envvars =
-- }
--
-- bin = $$system_path($$QMAKE_RESOLVED_TARGET)
-- } else {
-- bin = $${HOST_QT_TOOLS}/$${TARGET}
-- equals(QMAKE_HOST.os, Windows): bin = $${bin}.exe
-- bin = $$system_path($$bin)
-- }
--
-- TOOL_PRI_CONT = \
-- "QT_TOOL.$${MODULE}.binary = $$val_escape(bin)" \
-- "QT_TOOL.$${MODULE}.depends =$$join(MODULE_DEPENDS, " ", " ")" \
-- $$module_envvars
-- write_file($$TOOL_PRI, TOOL_PRI_CONT)|error()
--
-- # Then, inject the new tool into the current cache state
-- !contains(QMAKE_INTERNAL_INCLUDED_FILES, $$TOOL_PRI) { # before the actual include()!
-- added = $$TOOL_PRI
-- cache(QMAKE_INTERNAL_INCLUDED_FILES, add transient, added)
-- unset(added)
-- }
-- include($$TOOL_PRI)
-- for(var, vars): \
-- cache(QT_TOOL.$${MODULE}.$$var, transient)
--
--}
-+#!build_pass:if(!host_build|!force_bootstrap|force_independent|!isEmpty(HOST_QT_TOOLS)) {
-+# isEmpty(MODULE):MODULE = $$TARGET
-+#
-+# load(qt_build_paths)
-+#
-+# TOOL_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_tool_$${MODULE}.pri
-+#
-+# vars = binary depends
-+#
-+# isEmpty(HOST_QT_TOOLS) {
-+# load(resolve_target)
-+#
-+# !host_build|!force_bootstrap: MODULE_DEPENDS = $$replace(QT, -private$, _private)
-+#
-+# !isEmpty(QT_TOOL_ENV) {
-+# vars += envvars
-+# module_var_names =
-+# module_var_sets =
-+# for(var, QT_TOOL_ENV) {
-+# vars += env.$${var}.name env.$${var}.value
-+# module_var_names += QT_TOOL.$${MODULE}.env.$${var}
-+# module_var_sets += \
-+# "QT_TOOL.$${MODULE}.env.$${var}.name = $$val_escape($${var}.name)" \
-+# "QT_TOOL.$${MODULE}.env.$${var}.value = $$val_escape($${var}.value)"
-+# }
-+# module_envvars = \
-+# "QT_TOOL.$${MODULE}.envvars = $$module_var_names" \
-+# $$module_var_sets
-+# } else {
-+# module_envvars =
-+# }
-+#
-+# bin = $$system_path($$QMAKE_RESOLVED_TARGET)
-+# } else {
-+# bin = $${HOST_QT_TOOLS}/$${TARGET}
-+# equals(QMAKE_HOST.os, Windows): bin = $${bin}.exe
-+# bin = $$system_path($$bin)
-+# }
-+#
-+# TOOL_PRI_CONT = \
-+# "QT_TOOL.$${MODULE}.binary = $$val_escape(bin)" \
-+# "QT_TOOL.$${MODULE}.depends =$$join(MODULE_DEPENDS, " ", " ")" \
-+# $$module_envvars
-+# write_file($$TOOL_PRI, TOOL_PRI_CONT)|error()
-+#
-+# # Then, inject the new tool into the current cache state
-+# !contains(QMAKE_INTERNAL_INCLUDED_FILES, $$TOOL_PRI) { # before the actual include()!
-+# added = $$TOOL_PRI
-+# cache(QMAKE_INTERNAL_INCLUDED_FILES, add transient, added)
-+# unset(added)
-+# }
-+# include($$TOOL_PRI)
-+# for(var, vars): \
-+# cache(QT_TOOL.$${MODULE}.$$var, transient)
-+#
-+#}
- # The variable is re-used by qtPrepareTool(), and we really don't want that.
- unset(QT_TOOL_ENV)
-diff --git a/qtbase/qmake/Makefile.unix b/qtbase/qmake/Makefile.unix
-index 808a6d8..720c82b 100644
---- a/qtbase/qmake/Makefile.unix
-+++ b/qtbase/qmake/Makefile.unix
-@@ -225,7 +225,7 @@ qsettings.o: $(SOURCE_PATH)/src/corelib/io/qsettings.cpp
- qsystemerror.o: $(SOURCE_PATH)/src/corelib/kernel/qsystemerror.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/kernel/qsystemerror.cpp
-
--qlibraryinfo.o: $(SOURCE_PATH)/src/corelib/global/qlibraryinfo.cpp $(BUILD_PATH)/src/corelib/global/qconfig.cpp
-+qlibraryinfo.o: $(SOURCE_PATH)/src/corelib/global/qlibraryinfo.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/global/qlibraryinfo.cpp
-
- qnumeric.o: $(SOURCE_PATH)/src/corelib/global/qnumeric.cpp
diff --git a/repos/libports/src/lib/qt5/patches/qtbase_configuration.patch b/repos/libports/src/lib/qt5/patches/qtbase_configuration.patch
index a3b7c38c5..4a3ec1652 100644
--- a/repos/libports/src/lib/qt5/patches/qtbase_configuration.patch
+++ b/repos/libports/src/lib/qt5/patches/qtbase_configuration.patch
@@ -4,12 +4,13 @@ From: Christian Prochaska
---
- qtbase/configure | 1
- qtbase/mkspecs/genode-g++/qmake.conf | 10 +++
- qtbase/mkspecs/genode-g++/qplatformdefs.h | 87 +++++++++++++++++++++++++++++
- qtbase/src/corelib/global/global.pri | 10 ++-
- qtbase/src/corelib/io/io.pri | 2 -
- 5 files changed, 104 insertions(+), 6 deletions(-)
+ qtbase/configure | 1
+ qtbase/mkspecs/features/qt_build_config.prf | 2 -
+ qtbase/mkspecs/genode-g++/qmake.conf | 10 +++
+ qtbase/mkspecs/genode-g++/qplatformdefs.h | 87 +++++++++++++++++++++++++++
+ qtbase/src/corelib/global/global.pri | 10 ++-
+ qtbase/src/corelib/io/io.pri | 2 -
+ 6 files changed, 105 insertions(+), 7 deletions(-)
create mode 100644 qtbase/mkspecs/genode-g++/qmake.conf
create mode 100644 qtbase/mkspecs/genode-g++/qplatformdefs.h
@@ -25,6 +26,17 @@ index bc18e61..a901fa0 100755
SCO_SV:*)
#PLATFORM=sco-g++
PLATFORM=sco-cc
+diff --git a/qtbase/mkspecs/features/qt_build_config.prf b/qtbase/mkspecs/features/qt_build_config.prf
+index 3762c14..1596dd5 100644
+--- a/qtbase/mkspecs/features/qt_build_config.prf
++++ b/qtbase/mkspecs/features/qt_build_config.prf
+@@ -132,5 +132,5 @@ defineTest(qtConfig) {
+ contains(QT.$${module}.disabled_features, $$1): \
+ return(false)
+ }
+- error("Could not find feature $${1}.")
++ #error("Could not find feature $${1}.")
+ }
diff --git a/qtbase/mkspecs/genode-g++/qmake.conf b/qtbase/mkspecs/genode-g++/qmake.conf
new file mode 100644
index 0000000..734ae5c
diff --git a/repos/libports/src/lib/qt5/patches/qtbase_generated.patch b/repos/libports/src/lib/qt5/patches/qtbase_generated.patch
index 1544f0d53..5e886bf08 100644
--- a/repos/libports/src/lib/qt5/patches/qtbase_generated.patch
+++ b/repos/libports/src/lib/qt5/patches/qtbase_generated.patch
@@ -39,11 +39,13 @@ From: Christian Prochaska
qtbase/src/network/qtnetwork-config_p.h | 5 +
qtbase/src/printsupport/qtprintsupport-config.h | 5 +
qtbase/src/printsupport/qtprintsupport-config_p.h | 1
+ qtbase/src/sql/qtsql-config.h | 9 +++
+ qtbase/src/sql/qtsql-config_p.h | 1
qtbase/src/widgets/qtwidgets-config.h | 68 ++++++++++++++++++++
qtbase/src/widgets/qtwidgets-config_p.h | 1
qtbase/src/xml/qtxml-config.h | 1
qtbase/src/xml/qtxml-config_p.h | 0
- 39 files changed, 358 insertions(+)
+ 41 files changed, 368 insertions(+)
create mode 100644 qtbase/include/QtCore/5.8.0/QtCore/private/qconfig_p.h
create mode 100644 qtbase/include/QtCore/5.8.0/QtCore/private/qtcore-config_p.h
create mode 100644 qtbase/include/QtCore/QtConfig
@@ -79,6 +81,8 @@ From: Christian Prochaska
create mode 100644 qtbase/src/network/qtnetwork-config_p.h
create mode 100644 qtbase/src/printsupport/qtprintsupport-config.h
create mode 100644 qtbase/src/printsupport/qtprintsupport-config_p.h
+ create mode 100644 qtbase/src/sql/qtsql-config.h
+ create mode 100644 qtbase/src/sql/qtsql-config_p.h
create mode 100644 qtbase/src/widgets/qtwidgets-config.h
create mode 100644 qtbase/src/widgets/qtwidgets-config_p.h
create mode 100644 qtbase/src/xml/qtxml-config.h
@@ -266,7 +270,7 @@ index 0000000..602a176
+#include "../../src/xml/qtxml-config.h"
diff --git a/qtbase/src/corelib/global/qconfig.cpp b/qtbase/src/corelib/global/qconfig.cpp
new file mode 100644
-index 0000000..5dc56fe
+index 0000000..7068d65
--- /dev/null
+++ b/qtbase/src/corelib/global/qconfig.cpp
@@ -0,0 +1,51 @@
@@ -276,8 +280,8 @@ index 0000000..5dc56fe
+/* Installation Info */
+static const char qt_configure_prefix_path_str [256 + 12] = "qt_prfxpath=/qt";
+#ifdef QT_BUILD_QMAKE
-+static const char qt_configure_ext_prefix_path_str [256 + 12] = "qt_epfxpath=/qt";
-+static const char qt_configure_host_prefix_path_str [256 + 12] = "qt_hpfxpath=/qt";
++static const char qt_configure_ext_prefix_path_str [256 + 12] = "qt_epfxpath=";
++static const char qt_configure_host_prefix_path_str [256 + 12] = "qt_hpfxpath=";
+#endif
+
+static const short qt_configure_str_offsets[] = {
@@ -305,7 +309,7 @@ index 0000000..5dc56fe
+ "bin\0"
+ "lib\0"
+ ".\0"
-+ "genode-g++\0"
++ "linux-g++\0"
+ "linux-g++\0"
+#endif
+;
@@ -582,6 +586,28 @@ index 0000000..ab4f4dd
+++ b/qtbase/src/printsupport/qtprintsupport-config_p.h
@@ -0,0 +1 @@
+#define QT_FEATURE_cups -1
+diff --git a/qtbase/src/sql/qtsql-config.h b/qtbase/src/sql/qtsql-config.h
+new file mode 100644
+index 0000000..c4e6bef
+--- /dev/null
++++ b/qtbase/src/sql/qtsql-config.h
+@@ -0,0 +1,9 @@
++#define QT_FEATURE_sql_db2 -1
++#define QT_FEATURE_sql_ibase -1
++#define QT_FEATURE_sql_mysql -1
++#define QT_FEATURE_sql_oci -1
++#define QT_FEATURE_sql_odbc -1
++#define QT_FEATURE_sql_psql -1
++#define QT_FEATURE_sql_sqlite 1
++#define QT_FEATURE_sql_sqlite2 -1
++#define QT_FEATURE_sql_tds -1
+diff --git a/qtbase/src/sql/qtsql-config_p.h b/qtbase/src/sql/qtsql-config_p.h
+new file mode 100644
+index 0000000..9b40bf6
+--- /dev/null
++++ b/qtbase/src/sql/qtsql-config_p.h
+@@ -0,0 +1 @@
++#define QT_FEATURE_system_sqlite -1
diff --git a/qtbase/src/widgets/qtwidgets-config.h b/qtbase/src/widgets/qtwidgets-config.h
new file mode 100644
index 0000000..dd8ef6e
diff --git a/repos/libports/src/lib/qt5/patches/series b/repos/libports/src/lib/qt5/patches/series
index f56490782..14846d9d8 100644
--- a/repos/libports/src/lib/qt5/patches/series
+++ b/repos/libports/src/lib/qt5/patches/series
@@ -3,13 +3,18 @@ qtbase_fixes.patch
qtbase_configuration.patch
qtdeclarative_configuration.patch
qttools_configuration.patch
+qtwebkit_fixes.patch
+qtwebkit_configuration.patch
qtbase_generated.patch
qtdeclarative_generated.patch
qtsvg_generated.patch
qttools_generated.patch
+qtwebkit_generated.patch
qtbase_genode.patch
qtbase_genode_qtscriptclassic.patch
qtbase_genode_textedit_example.patch
qtbase_genode_openglwindow_example.patch
qtdeclarative_genode.patch
+qtwebkit_genode.patch
host_tools.patch
+header_generation.patch
diff --git a/repos/libports/src/lib/qt5/patches/series.qtwebkit b/repos/libports/src/lib/qt5/patches/series.qtwebkit
deleted file mode 100644
index 087f72d1f..000000000
--- a/repos/libports/src/lib/qt5/patches/series.qtwebkit
+++ /dev/null
@@ -1,4 +0,0 @@
-qtwebkit_fixes.patch
-qtwebkit_configuration.patch
-qtwebkit_generated.patch
-qtwebkit_genode.patch
diff --git a/repos/libports/src/lib/qt5/qt_main.cc b/repos/libports/src/lib/qt5/qt_main.cc
deleted file mode 100644
index 54d97b4ba..000000000
--- a/repos/libports/src/lib/qt5/qt_main.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * \brief main() wrapper for customizing main()'s stack size
- * \author Christian Prochaska
- * \date 2008-08-20
- */
-
-/*
- * Copyright (C) 2008-2017 Genode Labs GmbH
- *
- * This file is part of the Genode OS framework, which is distributed
- * under the terms of the GNU Affero General Public License version 3.
- */
-
-#ifdef QT_MAIN_STACK_SIZE
-
-#include
-
-Genode::size_t Libc::Component::stack_size() { return QT_MAIN_STACK_SIZE; }
-
-#endif /* QT_MAIN_STACK_SIZE */
diff --git a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerintegration.cpp b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerintegration.cpp
index 851fb6ab2..76bd73fd2 100644
--- a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerintegration.cpp
+++ b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerintegration.cpp
@@ -21,8 +21,8 @@
#include "qnitpickerplatformwindow.h"
#include "qnitpickerscreen.h"
#include "qnitpickerwindowsurface.h"
-#include "qgenericunixeventdispatcher_p.h"
-#include "qbasicfontdatabase_p.h"
+#include "QtEventDispatcherSupport/private/qgenericunixeventdispatcher_p.h"
+#include "QtFontDatabaseSupport/private/qbasicfontdatabase_p.h"
QT_BEGIN_NAMESPACE
diff --git a/repos/libports/src/test/qt5/qpluginwidget/qpluginwidget.pro b/repos/libports/src/test/qt5/qpluginwidget/qpluginwidget.pro
index 86868fe21..d7342a060 100644
--- a/repos/libports/src/test/qt5/qpluginwidget/qpluginwidget.pro
+++ b/repos/libports/src/test/qt5/qpluginwidget/qpluginwidget.pro
@@ -1,4 +1,4 @@
TEMPLATE = app
TARGET = test-qpluginwidget
-QT = core gui
+QT = core gui widgets
SOURCES += main.cpp
diff --git a/repos/libports/src/test/qt5/qpluginwidget/target.mk b/repos/libports/src/test/qt5/qpluginwidget/target.mk
index 433545b9f..4a86863fc 100644
--- a/repos/libports/src/test/qt5/qpluginwidget/target.mk
+++ b/repos/libports/src/test/qt5/qpluginwidget/target.mk
@@ -1,19 +1,17 @@
-# identify the QT5 repository by searching for a file that is unique for QT5
-QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
-QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)
+include $(call select_from_repositories,src/app/qt5/tmpl/target_defaults.inc)
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_defaults.inc
-
-include $(QT5_REP_DIR)/src/app/qt5/tmpl/target_final.inc
+include $(call select_from_repositories,src/app/qt5/tmpl/target_final.inc)
LIBS += qt5_qpluginwidget qt5_network qoost
-$(TARGET): test-plugin.tar
+TEST_PLUGIN_TAR = $(BUILD_BASE_DIR)/bin/test-plugin.tar
-test-plugin.tar: config.plugin
+$(TARGET): $(TEST_PLUGIN_TAR)
+
+$(TEST_PLUGIN_TAR): config.plugin
$(VERBOSE)tar cf $@ -C $(PRG_DIR) config.plugin
clean:
- $(VERBOSE)rm test-plugin.tar
+ $(VERBOSE)rm $(TEST_PLUGIN_TAR)
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/src/test/qt5/qt_core/main.cpp b/repos/libports/src/test/qt5/qt_core/main.cpp
new file mode 100644
index 000000000..1fdc13ba0
--- /dev/null
+++ b/repos/libports/src/test/qt5/qt_core/main.cpp
@@ -0,0 +1,12 @@
+/*
+ * \brief QtCore test
+ * \author Christian Prochaska
+ * \date 2018-01-16
+ */
+
+#include
+
+int main(int argc, char *argv[])
+{
+ qInfo() << "Test done.";
+}
diff --git a/repos/libports/src/test/qt5/qt_core/qt_core.pro b/repos/libports/src/test/qt5/qt_core/qt_core.pro
new file mode 100644
index 000000000..56cfba273
--- /dev/null
+++ b/repos/libports/src/test/qt5/qt_core/qt_core.pro
@@ -0,0 +1,4 @@
+TEMPLATE = app
+TARGET = test-qt_core
+QT = core
+SOURCES += main.cpp
diff --git a/repos/libports/src/test/qt5/qt_core/target.mk b/repos/libports/src/test/qt5/qt_core/target.mk
new file mode 100644
index 000000000..695c305a8
--- /dev/null
+++ b/repos/libports/src/test/qt5/qt_core/target.mk
@@ -0,0 +1,7 @@
+include $(call select_from_repositories,src/app/qt5/tmpl/target_defaults.inc)
+
+include $(call select_from_repositories,src/app/qt5/tmpl/target_final.inc)
+
+LIBS += qt5_component
+
+CC_CXX_WARN_STRICT =
diff --git a/repos/libports/src/app/qt5/qt_quicktest/main.cpp b/repos/libports/src/test/qt5/qt_quick/main.cpp
similarity index 84%
rename from repos/libports/src/app/qt5/qt_quicktest/main.cpp
rename to repos/libports/src/test/qt5/qt_quick/main.cpp
index 348cd20a7..1cc8f6896 100644
--- a/repos/libports/src/app/qt5/qt_quicktest/main.cpp
+++ b/repos/libports/src/test/qt5/qt_quick/main.cpp
@@ -12,7 +12,7 @@ int main(int argc, char *argv[])
QGuiApplication app(argc, argv);
QQuickView view;
- view.setSource(QUrl("qrc:/qt_quicktest.qml"));
+ view.setSource(QUrl("qrc:/qt_quick.qml"));
view.show();
return app.exec();
diff --git a/repos/libports/src/app/qt5/qt_quicktest/qt_quicktest.pro b/repos/libports/src/test/qt5/qt_quick/qt_quick.pro
similarity index 56%
rename from repos/libports/src/app/qt5/qt_quicktest/qt_quicktest.pro
rename to repos/libports/src/test/qt5/qt_quick/qt_quick.pro
index 558b7b13e..5ca40ce8a 100644
--- a/repos/libports/src/app/qt5/qt_quicktest/qt_quicktest.pro
+++ b/repos/libports/src/test/qt5/qt_quick/qt_quick.pro
@@ -1,5 +1,6 @@
TEMPLATE += app
+TARGET = test-qt_quick
QT += quick
SOURCES += main.cpp
-RESOURCES += qt_quicktest.qrc
+RESOURCES += qt_quick.qrc
CONFIG += debug
diff --git a/repos/libports/src/app/qt5/qt_quicktest/qt_quicktest.qml b/repos/libports/src/test/qt5/qt_quick/qt_quick.qml
similarity index 100%
rename from repos/libports/src/app/qt5/qt_quicktest/qt_quicktest.qml
rename to repos/libports/src/test/qt5/qt_quick/qt_quick.qml
diff --git a/repos/libports/src/app/qt5/qt_quicktest/qt_quicktest.qrc b/repos/libports/src/test/qt5/qt_quick/qt_quick.qrc
similarity index 72%
rename from repos/libports/src/app/qt5/qt_quicktest/qt_quicktest.qrc
rename to repos/libports/src/test/qt5/qt_quick/qt_quick.qrc
index d5ed5e1cb..9c656d58a 100644
--- a/repos/libports/src/app/qt5/qt_quicktest/qt_quicktest.qrc
+++ b/repos/libports/src/test/qt5/qt_quick/qt_quick.qrc
@@ -1,6 +1,6 @@
-qt_quicktest.qml
+qt_quick.qml
diff --git a/repos/libports/src/test/qt5/qt_quick/target.mk b/repos/libports/src/test/qt5/qt_quick/target.mk
new file mode 100644
index 000000000..695c305a8
--- /dev/null
+++ b/repos/libports/src/test/qt5/qt_quick/target.mk
@@ -0,0 +1,7 @@
+include $(call select_from_repositories,src/app/qt5/tmpl/target_defaults.inc)
+
+include $(call select_from_repositories,src/app/qt5/tmpl/target_final.inc)
+
+LIBS += qt5_component
+
+CC_CXX_WARN_STRICT =
diff --git a/repos/ports/recipes/src/arora/content.mk b/repos/ports/recipes/src/arora/content.mk
new file mode 100644
index 000000000..c54bb3cce
--- /dev/null
+++ b/repos/ports/recipes/src/arora/content.mk
@@ -0,0 +1,22 @@
+MIRROR_FROM_PORT_AND_REP_DIR := src/app/arora
+
+content: $(MIRROR_FROM_PORT_AND_REP_DIR) LICENSE
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/arora)
+
+$(MIRROR_FROM_PORT_AND_REP_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+ $(mirror_from_rep_dir)
+
+MIRROR_FROM_LIBPORTS := src/app/qt5/tmpl/target_defaults.inc \
+ src/app/qt5/tmpl/target_final.inc
+
+content: $(MIRROR_FROM_LIBPORTS)
+
+$(MIRROR_FROM_LIBPORTS):
+ mkdir -p $(dir $@)
+ cp -r $(GENODE_DIR)/repos/libports/$@ $(dir $@)
+
+LICENSE:
+ cp $(PORT_DIR)/src/app/arora/LICENSE.GPL3 $@
diff --git a/repos/ports/recipes/src/arora/hash b/repos/ports/recipes/src/arora/hash
new file mode 100644
index 000000000..2e1c6a923
--- /dev/null
+++ b/repos/ports/recipes/src/arora/hash
@@ -0,0 +1 @@
+2018-04-23 4472d11d0f5ebcd76492d7b3791769323eacae71
diff --git a/repos/ports/recipes/src/arora/used_apis b/repos/ports/recipes/src/arora/used_apis
new file mode 100644
index 000000000..6afddecbf
--- /dev/null
+++ b/repos/ports/recipes/src/arora/used_apis
@@ -0,0 +1,22 @@
+base
+framebuffer_session
+input_session
+libc
+loader_session
+mesa
+nitpicker_session
+os
+qt5_core
+qt5_gui
+qt5_printsupport
+qt5_qjpeg
+qt5_network
+qt5_qnitpickerviewwidget
+qt5_qpa_nitpicker
+qt5_qpluginwidget
+qt5_scriptclassic
+qt5_ui_tools
+qt5_webkit
+qt5_widgets
+stdcxx
+vfs
diff --git a/repos/ports/run/arora.run b/repos/ports/run/arora.run
index 118c630be..ad5ae6ca8 100644
--- a/repos/ports/run/arora.run
+++ b/repos/ports/run/arora.run
@@ -2,6 +2,23 @@ source ${genode_dir}/repos/libports/run/qt5_common.inc
set feature(Nic) 1
+import_from_depot genodelabs/src/arora \
+ genodelabs/src/icu \
+ genodelabs/src/libcrypto \
+ genodelabs/src/libssl \
+ genodelabs/src/qt5_network \
+ genodelabs/src/qt5_printsupport \
+ genodelabs/src/qt5_qnitpickerviewwidget \
+ genodelabs/src/qt5_opengl \
+ genodelabs/src/qt5_qpluginwidget \
+ genodelabs/src/qt5_scriptclassic \
+ genodelabs/src/qt5_sql \
+ genodelabs/src/qt5_ui_tools \
+ genodelabs/src/qt5_webkit \
+ genodelabs/src/qt5_widgets \
+ genodelabs/src/vfs_jitterentropy \
+ genodelabs/src/vfs_lxip
+
#
# Build
#
@@ -9,22 +26,16 @@ set feature(Nic) 1
append build_components [qt5_build_components feature]
append build_components {
- server/clipboard server/loader server/tar_rom server/nit_fb app/launchpad test/nitpicker
- lib/mesa/swrast
- lib/vfs/jitterentropy
- app/arora
+ server/clipboard
+ server/loader
+ server/tar_rom
+ server/nit_fb
+ app/launchpad
+ test/nitpicker
}
build $build_components
-create_boot_directory
-
-#
-# Create Qt tar archive
-#
-
-create_qt5_fs_tar_archive "arora" "gui"
-
#
# Generate tar archives with plugin configurations
#
@@ -90,12 +101,17 @@ append config {
+
+ 2018-01-01 00:01
-
+
+ nameserver 10.0.2.3
+
+
-
+
@@ -125,50 +141,9 @@ append boot_modules {
nit_fb
launchpad
testnit
- arora
- ld.lib.so
- libc.lib.so vfs.lib.so libm.lib.so lwip.lib.so
- zlib.lib.so libpng.lib.so jpeg.lib.so libssl.lib.so libcrypto.lib.so
- freetype.lib.so
- libc_pipe.lib.so
- stdcxx.lib.so
- vfs_jitterentropy.lib.so
nitpicker_plugin.tar
}
-#
-# Qt5-specific boot modules
-#
-append boot_modules {
- egl.lib.so
- egl_swrast.lib.so
- expat.lib.so
- glapi.lib.so
- icu.lib.so
- mesa.lib.so
- pcre16.lib.so
- pthread.lib.so
- qt5_angle.lib.so
- qt5_core.lib.so
- qt5_gui.lib.so
- qt5_jscore.lib.so
- qt5_network.lib.so
- qt5_opengl.lib.so
- qt5_qnitpickerviewwidget.lib.so
- qt5_qpluginwidget.lib.so
- qt5_ui_tools.lib.so
- qt5_webcore.lib.so
- qt5_webkit.lib.so
- qt5_xml.lib.so
- qt5_printsupport.lib.so
- qt5_scriptclassic.lib.so
- qt5_sql.lib.so
- qt5_webkitwidgets.lib.so
- qt5_widgets.lib.so
- qt5_wtf.lib.so
- qt5_fs_arora.tar
-}
-
build_boot_image $boot_modules
@@ -178,4 +153,3 @@ append_if [have_spec lan9118] qemu_args " -net nic,model=lan9118 "
append qemu_args " -net user "
run_genode_until forever
-
diff --git a/repos/ports/src/app/arora/arora.pro b/repos/ports/src/app/arora/arora.pro
index 8ea0dc0e7..7366af649 100644
--- a/repos/ports/src/app/arora/arora.pro
+++ b/repos/ports/src/app/arora/arora.pro
@@ -1 +1,3 @@
-include $(call select_from_ports,arora)/src/app/arora/src/src.pro
+
+QT += widgets
diff --git a/repos/ports/src/app/arora/target.mk b/repos/ports/src/app/arora/target.mk
index 052bb48db..ee8a6c967 100644
--- a/repos/ports/src/app/arora/target.mk
+++ b/repos/ports/src/app/arora/target.mk
@@ -1,17 +1,14 @@
ARORA = arora-0.11.0
-# identify the Qt repository by searching for a file that is unique for Qt5
-QT_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
-ifneq ($(QT_REP_DIR),)
-QT_TMPL_DIR = $(QT_REP_DIR)/src/app/qt5/tmpl
+QT_TMPL_DIR = $(call select_from_repositories,src/app/qt5/tmpl)
+
+ifneq ($(QT_TMPL_DIR),)
LIBS += qt5_printsupport qt5_qpluginwidget qt5_qnitpickerviewwidget
else
REQUIRES += qt5
endif
-QT_REP_DIR := $(realpath $(dir $(QT_REP_DIR))../..)
-
--include $(QT_TMPL_DIR)/target_defaults.inc
+include $(QT_TMPL_DIR)/target_defaults.inc
HEADERS_FILTER_OUT = \
adblockschemeaccesshandler.h \
@@ -31,11 +28,9 @@ HEADERS_FILTER_OUT = \
xbelreader.h \
xbelwriter.h
-QT_MAIN_STACK_SIZE = 768*1024
-
SRC_CC += arora_component.cc
-LIBS += libm libc_lwip libc_lwip_nic_dhcp
+LIBS += libm
RESOURCES += demo_html.qrc
@@ -85,6 +80,6 @@ vpath % $(ARORA_PORT_DIR)/src/app/arora/src/qwebplugins/nitpicker
vpath % $(ARORA_PORT_DIR)/src/app/arora/src/useragent
vpath % $(ARORA_PORT_DIR)/src/app/arora/src/utils
--include $(QT_TMPL_DIR)/target_final.inc
+include $(QT_TMPL_DIR)/target_final.inc
CC_CXX_WARN_STRICT =
diff --git a/tool/tool_chain_qt5 b/tool/tool_chain_qt5
new file mode 100755
index 000000000..5694a3edd
--- /dev/null
+++ b/tool/tool_chain_qt5
@@ -0,0 +1,89 @@
+#!/usr/bin/make -f
+#
+# \brief Tool for preparing the Qt5 tool-chain for the Genode OS Framework
+# \author Christian Prochaska
+# \date 2018-01-03
+#
+
+SHELL = bash
+ECHO = @echo -e
+VERBOSE = @
+
+help:
+ $(ECHO)
+ $(ECHO) "Build Qt5 tools for the Genode OS Framework tool chain"
+ $(ECHO)
+ $(ECHO) "--- available commands ---"
+ $(ECHO) "build - build Qt5 tools"
+ $(ECHO) "install - install Qt5 tools to '$(INSTALL_LOCATION)'"
+ $(ECHO) "clean - clean everything except contrib sources"
+ $(ECHO)
+ $(ECHO) "--- available command line options ---"
+ $(ECHO) "MAKE_JOBS=4 - number of parallel make jobs (default: 4)"
+ $(ECHO)
+
+.PHONY: build help install
+
+#
+# Enable parallel build for 2nd-level $(MAKE) by default
+#
+
+MAKE_JOBS ?= 4
+
+#
+# Source, build and install location
+#
+
+GENODE_DIR ?= $(realpath $(dir $(firstword $(MAKEFILE_LIST)))/..)
+CONTRIB_DIR = $(shell $(GENODE_DIR)/tool/ports/current qt5-host)/src/lib/qt5-host
+BUILD_DIR = $(GENODE_DIR)/build/tool/qt5-5.8.0
+INSTALL_LOCATION = /usr/local/genode-qt5
+
+$(CONTRIB_DIR)/configure:
+ $(VERBOSE)$(GENODE_DIR)/tool/ports/prepare_port qt5-host
+
+QMAKE = $(BUILD_DIR)/bin/qmake
+
+$(QMAKE): $(CONTRIB_DIR)/configure
+ $(VERBOSE)mkdir -p $(BUILD_DIR)
+ $(VERBOSE)cd $(BUILD_DIR) && $(CONTRIB_DIR)/configure -opensource -confirm-license -no-iconv -no-opengl -prefix $(INSTALL_LOCATION)
+
+$(BUILD_DIR)/src/Makefile: $(QMAKE)
+ $(VERBOSE)cd $(BUILD_DIR)/src && \
+ $(QMAKE) -o Makefile \
+ $(CONTRIB_DIR)/src/src.pro -qtconf $(BUILD_DIR)/bin/qt.conf -- -opensource
+
+$(BUILD_DIR)/bin/moc: $(BUILD_DIR)/src/Makefile
+ $(VERBOSE)cd $(BUILD_DIR)/src && \
+ make -j$(MAKE_JOBS) sub-moc
+
+$(BUILD_DIR)/bin/rcc: $(BUILD_DIR)/src/Makefile
+ $(VERBOSE)cd $(BUILD_DIR)/src && \
+ make -j$(MAKE_JOBS) sub-rcc
+
+$(BUILD_DIR)/bin/uic: $(BUILD_DIR)/src/Makefile
+ $(VERBOSE)cd $(BUILD_DIR)/src && \
+ make -j$(MAKE_JOBS) sub-uic
+
+build: $(BUILD_DIR)/bin/moc \
+ $(BUILD_DIR)/bin/rcc \
+ $(BUILD_DIR)/bin/uic
+
+$(INSTALL_LOCATION)/bin/moc: $(BUILD_DIR)/bin/moc
+ $(VERBOSE)cd $(BUILD_DIR)/src && \
+ sudo make sub-moc-install_subtargets
+
+$(INSTALL_LOCATION)/bin/rcc: $(BUILD_DIR)/bin/rcc
+ $(VERBOSE)cd $(BUILD_DIR)/src && \
+ sudo make sub-rcc-install_subtargets
+
+$(INSTALL_LOCATION)/bin/uic: $(BUILD_DIR)/bin/uic
+ $(VERBOSE)cd $(BUILD_DIR)/src && \
+ sudo make sub-uic-install_subtargets
+
+install: $(INSTALL_LOCATION)/bin/moc \
+ $(INSTALL_LOCATION)/bin/rcc \
+ $(INSTALL_LOCATION)/bin/uic
+
+clean:
+ rm -rf $(BUILD_DIR)