From 4ce6058e0b32822093eea8b3d904676cb7e99788 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Tue, 5 Jan 2021 11:15:02 +0100 Subject: [PATCH] CMake: Error out when dependent targets are disabled Change-Id: I0cc1e250dbe6eca66ed5f4ddecf9d5a8acfe955a Reviewed-by: Eike Ziller --- cmake/QtCreatorAPIInternal.cmake | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cmake/QtCreatorAPIInternal.cmake b/cmake/QtCreatorAPIInternal.cmake index 0aafe289e6f..70dc96b6d5c 100644 --- a/cmake/QtCreatorAPIInternal.cmake +++ b/cmake/QtCreatorAPIInternal.cmake @@ -231,12 +231,26 @@ function(finalize_test_setup test_name) endif() endfunction() +function(check_qtc_disabled_targets target_name dependent_targets) + foreach(dependency IN LISTS ${dependent_targets}) + foreach(type PLUGIN LIBRARY) + string(TOUPPER "BUILD_${type}_${dependency}" build_target) + if (DEFINED ${build_target} AND NOT ${build_target}) + message(SEND_ERROR "Target ${name} depends on ${dependency} which was disabled via ${build_target} set to ${${build_target}}") + endif() + endforeach() + endforeach() +endfunction() + function(add_qtc_depends target_name) cmake_parse_arguments(_arg "" "" "PRIVATE;PUBLIC" ${ARGN}) if (${_arg_UNPARSED_ARGUMENTS}) message(FATAL_ERROR "add_qtc_depends had unparsed arguments") endif() + check_qtc_disabled_targets(${target_name} _arg_PRIVATE) + check_qtc_disabled_targets(${target_name} _arg_PUBLIC) + separate_object_libraries("${_arg_PRIVATE}" depends object_lib_depends object_lib_depends_objects) separate_object_libraries("${_arg_PUBLIC}"