Reestablish the dependency chain between Android ABI-specific targets
Actual dependency chain doesn't consider the changes in Android ABI-specific targets. To make sure we rebuild per-ABI targets this changes the dependency chain, which looks as following now: - <target>_make_<apk|aar|aab> - <target>_copy_apk_dependencies (new proxy order-only target) - qt_internal_android_<abi>_<target>_copy_apk_dependencies - qt_internal_android_<abi>_<target>_copy_apk_dependencies_stamp - qt_internal_android_<abi>_<target>_build_stamp - <target> So the <target> dependency on the per-ABI build targets is reversed, to guarantee that per-ABI targets react on source changes. Pick-to: 6.8 Fixes: QTBUG-129358 Change-Id: Id4d5fb0d45a213cd49c8a6aefa72c5db6609d714 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Soheil Armin <soheil.armin@qt.io>
This commit is contained in:
parent
11d5792774
commit
44149f9d8b
@ -766,6 +766,12 @@ function(qt6_android_add_apk_target target)
|
|||||||
${uses_terminal}
|
${uses_terminal}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
else()
|
||||||
|
if(TARGET ${target}_copy_apk_dependencies)
|
||||||
|
add_dependencies(${target}_make_apk ${target}_copy_apk_dependencies)
|
||||||
|
add_dependencies(${target}_make_aab ${target}_copy_apk_dependencies)
|
||||||
|
add_dependencies(${target}_make_aar ${target}_copy_apk_dependencies)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set_property(GLOBAL APPEND PROPERTY _qt_apk_targets ${target})
|
set_property(GLOBAL APPEND PROPERTY _qt_apk_targets ${target})
|
||||||
@ -1371,7 +1377,7 @@ endfunction()
|
|||||||
|
|
||||||
# Adds the custom build step to the multi-ABI Android project
|
# Adds the custom build step to the multi-ABI Android project
|
||||||
function(_qt_internal_add_android_abi_step project abi step)
|
function(_qt_internal_add_android_abi_step project abi step)
|
||||||
cmake_parse_arguments(arg "" "" "COMMAND;DEPENDS" ${ARGV})
|
cmake_parse_arguments(arg "" "" "COMMAND;DEPENDS;TARGET_DEPENDS" ${ARGV})
|
||||||
|
|
||||||
if(NOT arg_COMMAND)
|
if(NOT arg_COMMAND)
|
||||||
message(FATAL_ERROR "COMMAND is not set for ${project} step ${step} Android ABI ${abi}.")
|
message(FATAL_ERROR "COMMAND is not set for ${project} step ${step} Android ABI ${abi}.")
|
||||||
@ -1391,6 +1397,10 @@ function(_qt_internal_add_android_abi_step project abi step)
|
|||||||
set(add_to_pool "")
|
set(add_to_pool "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(NOT arg_TARGET_DEPENDS)
|
||||||
|
set(arg_TARGET_DEPENDS "")
|
||||||
|
endif()
|
||||||
|
|
||||||
_qt_internal_get_android_abi_step_stampfile(stamp ${project} ${abi} ${step})
|
_qt_internal_get_android_abi_step_stampfile(stamp ${project} ${abi} ${step})
|
||||||
add_custom_command(OUTPUT "${stamp}"
|
add_custom_command(OUTPUT "${stamp}"
|
||||||
COMMAND ${arg_COMMAND}
|
COMMAND ${arg_COMMAND}
|
||||||
@ -1398,6 +1408,7 @@ function(_qt_internal_add_android_abi_step project abi step)
|
|||||||
${add_to_pool}
|
${add_to_pool}
|
||||||
DEPENDS
|
DEPENDS
|
||||||
${dep_stamps}
|
${dep_stamps}
|
||||||
|
${arg_TARGET_DEPENDS}
|
||||||
WORKING_DIRECTORY
|
WORKING_DIRECTORY
|
||||||
"${build_dir}"
|
"${build_dir}"
|
||||||
VERBATIM
|
VERBATIM
|
||||||
@ -1543,7 +1554,9 @@ function(_qt_internal_configure_android_multiabi_target target)
|
|||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
set(missing_qt_abi_toolchains "")
|
set(missing_qt_abi_toolchains "")
|
||||||
set(previous_copy_apk_dependencies_target ${target})
|
|
||||||
|
add_custom_target(${target}_copy_apk_dependencies)
|
||||||
|
set(previous_copy_apk_dependencies_target ${target}_copy_apk_dependencies)
|
||||||
# Create external projects for each android ABI except the main one.
|
# Create external projects for each android ABI except the main one.
|
||||||
list(REMOVE_ITEM android_abis "${CMAKE_ANDROID_ARCH_ABI}")
|
list(REMOVE_ITEM android_abis "${CMAKE_ANDROID_ARCH_ABI}")
|
||||||
foreach(abi IN ITEMS ${android_abis})
|
foreach(abi IN ITEMS ${android_abis})
|
||||||
@ -1589,13 +1602,14 @@ function(_qt_internal_configure_android_multiabi_target target)
|
|||||||
_qt_internal_add_android_abi_step(qt_internal_android_${abi} ${abi} ${target}_build
|
_qt_internal_add_android_abi_step(qt_internal_android_${abi} ${abi} ${target}_build
|
||||||
DEPENDS
|
DEPENDS
|
||||||
configure
|
configure
|
||||||
|
TARGET_DEPENDS
|
||||||
|
${target}
|
||||||
COMMAND
|
COMMAND
|
||||||
"${CMAKE_COMMAND}"
|
"${CMAKE_COMMAND}"
|
||||||
--build "${android_abi_build_dir}"
|
--build "${android_abi_build_dir}"
|
||||||
--config $<CONFIG>
|
--config $<CONFIG>
|
||||||
--target ${target}
|
--target ${target}
|
||||||
)
|
)
|
||||||
add_dependencies(${target} "qt_internal_android_${abi}_${target}_build")
|
|
||||||
|
|
||||||
_qt_internal_add_android_abi_step(qt_internal_android_${abi} ${abi}
|
_qt_internal_add_android_abi_step(qt_internal_android_${abi} ${abi}
|
||||||
${target}_copy_apk_dependencies
|
${target}_copy_apk_dependencies
|
||||||
|
Loading…
x
Reference in New Issue
Block a user