forked from qt-creator/qt-creator
CMake: Error out when dependent targets are disabled
Change-Id: I0cc1e250dbe6eca66ed5f4ddecf9d5a8acfe955a Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -231,12 +231,26 @@ function(finalize_test_setup test_name)
|
|||||||
endif()
|
endif()
|
||||||
endfunction()
|
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)
|
function(add_qtc_depends target_name)
|
||||||
cmake_parse_arguments(_arg "" "" "PRIVATE;PUBLIC" ${ARGN})
|
cmake_parse_arguments(_arg "" "" "PRIVATE;PUBLIC" ${ARGN})
|
||||||
if (${_arg_UNPARSED_ARGUMENTS})
|
if (${_arg_UNPARSED_ARGUMENTS})
|
||||||
message(FATAL_ERROR "add_qtc_depends had unparsed arguments")
|
message(FATAL_ERROR "add_qtc_depends had unparsed arguments")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
check_qtc_disabled_targets(${target_name} _arg_PRIVATE)
|
||||||
|
check_qtc_disabled_targets(${target_name} _arg_PUBLIC)
|
||||||
|
|
||||||
separate_object_libraries("${_arg_PRIVATE}"
|
separate_object_libraries("${_arg_PRIVATE}"
|
||||||
depends object_lib_depends object_lib_depends_objects)
|
depends object_lib_depends object_lib_depends_objects)
|
||||||
separate_object_libraries("${_arg_PUBLIC}"
|
separate_object_libraries("${_arg_PUBLIC}"
|
||||||
|
Reference in New Issue
Block a user