CMake: Error out when dependent targets are disabled

Change-Id: I0cc1e250dbe6eca66ed5f4ddecf9d5a8acfe955a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Cristian Adam
2021-01-05 11:15:02 +01:00
parent 353edf35e5
commit 4ce6058e0b

View File

@@ -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}"