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. Fixes: QTBUG-129358 Change-Id: Id4d5fb0d45a213cd49c8a6aefa72c5db6609d714 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Soheil Armin <soheil.armin@qt.io> (cherry picked from commit 44149f9d8b62b5343a5d06628b0c9588f035ccc2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
305b461157
commit
348d56cca4
@ -666,6 +666,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})
|
||||||
@ -1271,7 +1277,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}.")
|
||||||
@ -1291,6 +1297,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}
|
||||||
@ -1298,6 +1308,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
|
||||||
@ -1443,7 +1454,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})
|
||||||
@ -1489,13 +1502,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