From cfcc4ef8edc4e8256ae738bbe8c23b4204021830 Mon Sep 17 00:00:00 2001 From: Alexey Edelev Date: Wed, 7 Dec 2022 11:23:46 +0100 Subject: [PATCH] Add _lib_pri targets to all In CMake versions older than 3.20 add_dependencies have no effect when adding interface libraries. So need to add the '_lib_pri' targets to ALL to make sure that the related rules executed. Amends 190e58e1f4eb9e9bf12a9561cf32cdccdc0b22e0 Pick-to: 6.2 6.4 Fixes: QTBUG-109240 Fixes: QTBUG-109239 Change-Id: I7c565ce3bc15e549569317454c2f7caac823cf66 Reviewed-by: Alexandru Croitor --- cmake/QtPriHelpers.cmake | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/cmake/QtPriHelpers.cmake b/cmake/QtPriHelpers.cmake index 77b41d5627..8a76b6dbb1 100644 --- a/cmake/QtPriHelpers.cmake +++ b/cmake/QtPriHelpers.cmake @@ -541,7 +541,15 @@ QT.${config_module_name}_private.disabled_features = ${disabled_private_features "-DIMPLICIT_LINK_DIRECTORIES=${implicit_link_directories}" -P "${QT_CMAKE_DIR}/QtGenerateLibPri.cmake" VERBATIM) - add_custom_target(${target}_lib_pri DEPENDS "${private_pri_file_path}") + # In CMake versions older than 3.20 add_dependencies have no effect when adding interface + # libraries. So need to add the '_lib_pri' targets to ALL to make sure that the related + # rules executed. + unset(add_pri_target_to_all) + if(CMAKE_VERSION VERSION_LESS 3.20 AND is_interface_lib) + set(add_pri_target_to_all ALL) + endif() + add_custom_target(${target}_lib_pri ${add_pri_target_to_all} + DEPENDS "${private_pri_file_path}") add_dependencies(${target} ${target}_lib_pri) endif()