summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Edelev <alexey.edelev@qt.io>2022-02-25 12:33:15 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-03-02 09:24:03 +0000
commit3c347c1926965fbc03de9e39fa1307ed04f9823a (patch)
tree81403ebd7af3a24d8c1e53bc1c6e792155127797
parent98060a4acbf68d1253ec11f4497fb9ef8e17abb0 (diff)
Add the _qt_internal_android_executable_finalizer wrapper function
_qt_internal_android_executable_finalizer wraps Android-related function that are needed to created an Android package. The function is added to the INTERFACE_QT_EXECUTABLE_FINALIZERS property in Qt Core so it's called implicitly for user projects. Change-Id: I140f53341691dcfdc6ae2ddea520818cf2834eb6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit e7586119e1ba48844a9353e5b9cb6f0f26292764) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--cmake/QtExecutableHelpers.cmake6
-rw-r--r--src/corelib/Qt6AndroidMacros.cmake9
-rw-r--r--src/corelib/Qt6CoreConfigExtras.cmake.in20
-rw-r--r--src/corelib/Qt6CoreMacros.cmake5
4 files changed, 28 insertions, 12 deletions
diff --git a/cmake/QtExecutableHelpers.cmake b/cmake/QtExecutableHelpers.cmake
index a7f7678e9e..f70adad11a 100644
--- a/cmake/QtExecutableHelpers.cmake
+++ b/cmake/QtExecutableHelpers.cmake
@@ -20,10 +20,8 @@ function(qt_internal_add_executable name)
endif()
_qt_internal_create_executable(${name})
- if (ANDROID)
- _qt_internal_configure_android_multiabi_target("${name}")
- qt_android_generate_deployment_settings("${name}")
- qt_android_add_apk_target("${name}")
+ if(ANDROID)
+ _qt_internal_android_executable_finalizer(${name})
endif()
if(arg_QT_APP AND QT_FEATURE_debug_and_release AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.19.0")
diff --git a/src/corelib/Qt6AndroidMacros.cmake b/src/corelib/Qt6AndroidMacros.cmake
index ad12c6c7bd..b00ecc1656 100644
--- a/src/corelib/Qt6AndroidMacros.cmake
+++ b/src/corelib/Qt6AndroidMacros.cmake
@@ -1007,3 +1007,12 @@ function(_qt_internal_configure_android_multiabi_target target)
endif()
set_target_properties(${target} PROPERTIES _qt_android_abis "${android_abis}")
endfunction()
+
+# The wrapper function that contains routines that need to be called to produce a valid Android
+# package for the executable 'target'. The function is added to the finalizer list of the Core
+# module and is executed implicitly when configuring user projects.
+function(_qt_internal_android_executable_finalizer target)
+ _qt_internal_configure_android_multiabi_target("${target}")
+ qt6_android_generate_deployment_settings("${target}")
+ qt6_android_add_apk_target("${target}")
+endfunction()
diff --git a/src/corelib/Qt6CoreConfigExtras.cmake.in b/src/corelib/Qt6CoreConfigExtras.cmake.in
index 3b9cbb883d..8b4d3164cf 100644
--- a/src/corelib/Qt6CoreConfigExtras.cmake.in
+++ b/src/corelib/Qt6CoreConfigExtras.cmake.in
@@ -13,11 +13,17 @@ endif()
# set(_qt5_corelib_extra_includes)
if (NOT QT_NO_CREATE_TARGETS)
+ set(__qt_core_target @QT_CMAKE_EXPORT_NAMESPACE@::Core)
+ get_property(__qt_core_aliased_target TARGET ${__qt_core_target} PROPERTY ALIASED_TARGET)
+ if(__qt_core_aliased_target)
+ set(__qt_core_target "${__qt_core_aliased_target}")
+ endif()
+ unset(__qt_core_aliased_target)
if (NOT "@QT_NAMESPACE@" STREQUAL "")
- set_property(TARGET @QT_CMAKE_EXPORT_NAMESPACE@::Core APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS QT_NAMESPACE=@QT_NAMESPACE@)
+ set_property(TARGET ${__qt_core_target} APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS QT_NAMESPACE=@QT_NAMESPACE@)
endif()
- set_property(TARGET @QT_CMAKE_EXPORT_NAMESPACE@::Core APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS $<$<NOT:$<CONFIG:Debug>>:QT_NO_DEBUG>)
- set_property(TARGET @QT_CMAKE_EXPORT_NAMESPACE@::Core PROPERTY INTERFACE_COMPILE_FEATURES cxx_decltype)
+ set_property(TARGET ${__qt_core_target} APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS $<$<NOT:$<CONFIG:Debug>>:QT_NO_DEBUG>)
+ set_property(TARGET ${__qt_core_target} PROPERTY INTERFACE_COMPILE_FEATURES cxx_decltype)
endif()
set(CMAKE_AUTOMOC_MACRO_NAMES "Q_OBJECT" "Q_GADGET" "Q_GADGET_EXPORT" "Q_NAMESPACE" "Q_NAMESPACE_EXPORT")
@@ -50,6 +56,12 @@ if(ANDROID_PLATFORM)
include("${CMAKE_CURRENT_LIST_DIR}/@QT_CMAKE_EXPORT_NAMESPACE@AndroidMacros.cmake")
_qt_internal_create_global_android_targets()
_qt_internal_collect_default_android_abis()
+ if(NOT QT_NO_CREATE_TARGETS)
+ set_property(TARGET ${__qt_core_target} APPEND PROPERTY
+ INTERFACE_QT_EXECUTABLE_FINALIZERS
+ _qt_internal_android_executable_finalizer
+ )
+ endif()
endif()
if(EMSCRIPTEN)
@@ -57,3 +69,5 @@ if(EMSCRIPTEN)
endif()
_qt_internal_override_example_install_dir_to_dot()
+
+unset(__qt_core_target)
diff --git a/src/corelib/Qt6CoreMacros.cmake b/src/corelib/Qt6CoreMacros.cmake
index 24a9cd01fc..4785d528d0 100644
--- a/src/corelib/Qt6CoreMacros.cmake
+++ b/src/corelib/Qt6CoreMacros.cmake
@@ -617,11 +617,6 @@ function(_qt_internal_finalize_executable target)
endif()
endif()
- if(ANDROID)
- _qt_internal_configure_android_multiabi_target("${target}")
- qt6_android_generate_deployment_settings("${target}")
- qt6_android_add_apk_target("${target}")
- endif()
if(EMSCRIPTEN)
_qt_internal_wasm_add_target_helpers("${target}")
endif()