diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 8d1eec2e45dc56791158ece3e9bb23c933891866..8d35d458fb2fa6414ff3bc4eb85f173eda1097d9 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -6,6 +6,25 @@ find_package(
 
 find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network WebSockets)
 
+# In shared Qt builds, the qml plugins don't have dependencies on their backing libraries, and
+# thus the backing library packages are not automatically looked up.
+# The StandaloneTests directory contains Config files that find_package all installed Qt packages.
+# Abuse that, and include all of them to make all the backing libraries available as imported
+# targets.
+find_package(Qt6 COMPONENTS BuildInternals)
+if(Qt6BuildInternals_DIR)
+    set(standalone_tests_dir "${Qt6BuildInternals_DIR}/StandaloneTests")
+    if(EXISTS "${standalone_tests_dir}")
+        # Glob the config files in there.
+        file(GLOB_RECURSE standalone_tests_files "${standalone_tests_dir}/*TestsConfig.cmake")
+
+        # Include each one of them.
+        foreach(standalone_tests_file IN LISTS standalone_tests_files)
+            include("${standalone_tests_file}")
+        endforeach()
+    endif()
+endif()
+
 set(imports "")
 
 # Get all imported targets.
@@ -80,7 +99,6 @@ ${dummy_valid_content}
 
 qt_add_executable(${PROJECT_NAME}
     # backend/importdummy.qml
-    "${imports_file_path}"
     backend/main.cpp
     backend/logger.h
     backend/backend.cpp backend/backend.h
@@ -100,6 +118,7 @@ qt_add_qml_module(${PROJECT_NAME}
     URI AndroidUI
     VERSION 1.0
     QML_FILES
+        "${imports_file_path}"
         Constants.qml
         HomePage.qml
         Main.qml