diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 8d35d458fb2fa6414ff3bc4eb85f173eda1097d9..327a9b65bc3c2665816fe7f8b6494c69315aa08c 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,10 +1,15 @@
 find_package(
     Qt6
-    COMPONENTS Core Widgets Quick Gui Qml Multimedia MultimediaWidgets Concurrent Network WebSockets
+    COMPONENTS
+        Core Widgets Quick Gui Qml Multimedia MultimediaWidgets Concurrent Network WebSockets
+        TextToSpeech Location Sensors WebView Positioning
     REQUIRED
 )
 
-find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network WebSockets)
+find_package(
+    QT NAMES Qt6 Qt5 REQUIRED
+    COMPONENTS
+        Core Network WebSockets TextToSpeech Location Sensors WebView Positioning)
 
 # 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.
@@ -86,19 +91,18 @@ if(imports)
 endif()
 
 # Use file(GENERATE) to prevent touching the file if the contents hasn't changed.
-
 set(dummy_valid_content "ApplicationWindow {
     visible: true
     width: 640
     height: 480
 }")
+
 file(GENERATE OUTPUT "${imports_file_path}" CONTENT "${imports}
 
 ${dummy_valid_content}
 ")
 
 qt_add_executable(${PROJECT_NAME}
-    # backend/importdummy.qml
     backend/main.cpp
     backend/logger.h
     backend/backend.cpp backend/backend.h
@@ -144,6 +148,8 @@ target_link_libraries(${PROJECT_NAME} PRIVATE
     Qt6::Qml Qt6::GuiPrivate
     Qt6::Multimedia Qt6::MultimediaWidgets
     Qt6::Concurrent Qt6::Network Qt6::WebSockets
+    Qt6::TextToSpeech Qt6::Location Qt6::Sensors
+    Qt6::WebView Qt6::Positioning
     ZXing::ZXing
 )