diff options
author | Craig Scott <craig.scott@qt.io> | 2021-09-02 20:34:33 +1000 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-09-03 15:10:42 +0000 |
commit | 067253fb2f1aec3e03c577dd53ed2e6d903c28da (patch) | |
tree | 4943022f316b8d12ce38a4b38ec1ecbe70a2b83a /src | |
parent | 52b60051b5c2c210cc9731bc533268cb2c782db9 (diff) |
Fix top level builds where AUTOMOC_EXECUTABLE was unset on some targets
The qt_example_build_end() command tries to recursively find all build
system targets by descending into all source directories. Some sets of
examples re-use the same source directory multiple times with different
build directories, but this hides all but one of those re-used source
directories from the recursive search. This resulted in some targets
being missed, which in turn prevented qt_autogen_tools() from being
called on them. In top level builds, this meant AUTOMOC_EXECUTABLE
wasn't set, so CMake tried to verify the moc it wanted to use, which
doesn't exist for the first configure of a top level build, resulting
in a fatal error. Since we can't find all targets reliably with a
recursive search, manually handle the ones that could be missed.
There was a similar problem with qt_autogen_tools() not being called
for a target created to compile a doc snippet. The error message is
the same as the case above, the cause is again AUTOMOC_EXECUTABLE
not being set, but for a different reason. Apply the same fix and
call it manually, which should have been the case originally.
Fixes: QTBUG-96118
Fixes: QTBUG-96159
Change-Id: I079c696cf74f77d7caa2c59e6263d3fb1c55d20e
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 920a5f727b02cade81fac0a5536e52bbb4c72d73)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/CMakeLists.txt | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/qml/CMakeLists.txt b/src/qml/CMakeLists.txt index 784c7865a7..e521b56907 100644 --- a/src/qml/CMakeLists.txt +++ b/src/qml/CMakeLists.txt @@ -685,6 +685,7 @@ qt_internal_add_docs(Qml ) # include snippet projects for developer builds -if(NOT QT_SUPERBUILD AND QT_FEATURE_private_tests AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.19") +if(QT_FEATURE_private_tests AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.19") add_subdirectory(doc/snippets/cmake/qt_target_qml_sources) + qt_autogen_tools(qt_target_qml_sources_example ENABLE_AUTOGEN_TOOLS moc) endif() |