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