diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8d1eec2e45dc56791158ece3e9bb23c933891866..6e0b7206568b492ba630fc841b7d1df75fd59759 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.