CMake: partially revert 00a1e5d
00a1e5da7e1aea373a7e6be1d51e1573ff167dd8 wrongfully added parts of QtPlatformAndroid.cmake which were removed in 32121e9882bc69ad72d8e08ee7c21a684db921c1. This removed the part in question again Change-Id: Ie18968e6a165f52c68f4941ced6add266985bc48 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
parent
176136ce60
commit
1c33b4e729
@ -147,222 +147,6 @@ define_property(TARGET
|
||||
" "
|
||||
)
|
||||
|
||||
# Generate deployment tool json
|
||||
function(qt_android_generate_deployment_settings target)
|
||||
# Information extracted from mkspecs/features/android/android_deployment_settings.prf
|
||||
if (NOT TARGET ${target})
|
||||
message(SEND_ERROR "${target} is not a cmake target")
|
||||
return()
|
||||
endif()
|
||||
|
||||
get_target_property(target_type ${target} TYPE)
|
||||
|
||||
if (NOT "${target_type}" STREQUAL "MODULE_LIBRARY")
|
||||
message(SEND_ERROR "QT_ANDROID_GENERATE_DEPLOYMENT_SETTINGS only works on Module targets")
|
||||
return()
|
||||
endif()
|
||||
|
||||
get_target_property(target_source_dir ${target} SOURCE_DIR)
|
||||
get_target_property(target_binary_dir ${target} BINARY_DIR)
|
||||
get_target_property(target_output_name ${target} OUTPUT_NAME)
|
||||
if (NOT target_output_name)
|
||||
set(target_output_name ${target})
|
||||
endif()
|
||||
set(deploy_file "${target_binary_dir}/android-lib${target_output_name}.so-deployment-settings.json")
|
||||
|
||||
set(file_contents "{\n")
|
||||
# content begin
|
||||
string(APPEND file_contents
|
||||
" \"description\": \"This file is generated by cmake to be read by androiddeployqt and should not be modified by hand.\",\n")
|
||||
|
||||
# Host Qt Android install path
|
||||
if (NOT QT_BUILDING_QT)
|
||||
set(file_check "${Qt6_DIR}/plugins/platforms/android/libqtforandroid_${CMAKE_ANDROID_ARCH_ABI}.so")
|
||||
if (NOT EXISTS ${file_check})
|
||||
message(SEND_ERROR "Detected Qt installation does not contain libqtforandroid.so. This is most likely due to the installation not being a build of Qt for Android. Please update your settings.")
|
||||
return()
|
||||
endif()
|
||||
set(qt_android_install_dir ${Qt6_Dir})
|
||||
else()
|
||||
# Building from source, use the same install prefix
|
||||
set(qt_android_install_dir ${CMAKE_INSTALL_PREFIX})
|
||||
endif()
|
||||
|
||||
file(TO_NATIVE_PATH "${qt_android_install_dir}" qt_android_install_dir_native)
|
||||
string(APPEND file_contents
|
||||
" \"qt\": \"${qt_android_install_dir_native}\",\n")
|
||||
|
||||
# Android SDK path
|
||||
file(TO_NATIVE_PATH "${ANDROID_SDK_ROOT}" android_sdk_root_native)
|
||||
string(APPEND file_contents
|
||||
" \"sdk\": \"${android_sdk_root_native}\",\n")
|
||||
|
||||
# Android SDK Build Tools Revision
|
||||
string(APPEND file_contents
|
||||
" \"sdkBuildToolsRevision\": \"${QT_ANDROID_SDK_BUILD_TOOLS_VERSION}\",\n")
|
||||
|
||||
# Android NDK
|
||||
file(TO_NATIVE_PATH "${ANDROID_NDK}" android_ndk_root_native)
|
||||
string(APPEND file_contents
|
||||
" \"ndk\": \"${android_ndk_root_native}\",\n")
|
||||
|
||||
# Setup LLVM toolchain
|
||||
string(APPEND file_contents
|
||||
" \"toolchain-prefix\": \"llvm\",\n")
|
||||
string(APPEND file_contents
|
||||
" \"tool-prefix\": \"llvm\",\n")
|
||||
string(APPEND file_contents
|
||||
" \"useLLVM\": true,\n")
|
||||
|
||||
# NDK Toolchain Version
|
||||
string(APPEND file_contents
|
||||
" \"toolchain-version\": \"${CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION}\",\n")
|
||||
|
||||
# NDK Host
|
||||
string(APPEND file_contents
|
||||
" \"ndk-host\": \"${ANDROID_NDK_HOST_SYSTEM_NAME}\",\n")
|
||||
|
||||
if (CMAKE_ANDROID_ARCH_ABI STREQUAL "x86")
|
||||
set(arch_value "i686-linux-android")
|
||||
elseif (CMAKE_ANDROID_ARCH_ABI STREQUAL "x86_64")
|
||||
set(arch_value "x86_64-linux-android")
|
||||
elseif (CMAKE_ANDROID_ARCH_ABI STREQUAL "arm64-v8a")
|
||||
set(arch_value "aarch64-linux-android")
|
||||
else()
|
||||
set(arch_value "arm-linux-androideabi")
|
||||
endif()
|
||||
|
||||
# Architecture
|
||||
string(APPEND file_contents
|
||||
" \"architectures\": { \"${CMAKE_ANDROID_ARCH_ABI}\" : \"${arch_value}\" },\n")
|
||||
|
||||
# deployment dependencies
|
||||
get_target_property(android_deployment_dependencies
|
||||
${target} QT_ANDROID_DEPLOYMENT_DEPENDENCIES)
|
||||
if (android_deployment_dependencies)
|
||||
list(JOIN android_deployment_dependencies "," android_deployment_dependencies)
|
||||
string(APPEND file_contents
|
||||
" \"deployment-dependencies\": \"${android_deployment_dependencies}\",\n")
|
||||
endif()
|
||||
|
||||
# Extra plugins
|
||||
get_target_property(android_extra_plugins
|
||||
${target} QT_ANDROID_EXTRA_PLUGINS)
|
||||
if (android_extra_plugins)
|
||||
list(JOIN android_extra_plugins "," android_extra_plugins)
|
||||
string(APPEND file_contents
|
||||
" \"android-extra-plugins\": \"${android_extra_plugins}\",\n")
|
||||
endif()
|
||||
|
||||
# Extra libs
|
||||
get_target_property(android_extra_libs
|
||||
${target} QT_ANDROID_EXTRA_LIBS)
|
||||
if (android_extra_libs)
|
||||
list(JOIN android_extra_libs "," android_extra_libs)
|
||||
string(APPEND file_contents
|
||||
" \"android-extra-libs\": \"${android_extra_libs}\",\n")
|
||||
endif()
|
||||
|
||||
# package source dir
|
||||
get_target_property(android_package_source_dir
|
||||
${target} QT_ANDROID_PACKAGE_SOURCE_DIR)
|
||||
if (android_package_source_dir)
|
||||
file(TO_NATIVE_PATH "${android_package_source_dir}" android_package_source_dir_native)
|
||||
string(APPEND file_contents
|
||||
" \"android-package-source-directory\": \"${android_package_source_dir_native}\",\n")
|
||||
endif()
|
||||
|
||||
#TODO: ANDROID_VERSION_NAME, doesn't seem to be used?
|
||||
|
||||
#TODO: ANDROID_VERSION_CODE, doesn't seem to be used?
|
||||
|
||||
get_target_property(qml_import_path ${target} QT_QML_IMPORT_PATH)
|
||||
if (qml_import_path)
|
||||
file(TO_NATIVE_PATH "${qml_import_path}" qml_import_path_native)
|
||||
string(APPEND file_contents
|
||||
" \"qml-import-path\": \"${qml_import_path_native}\",\n")
|
||||
endif()
|
||||
|
||||
get_target_property(qml_root_path ${target} QT_QML_ROOT_PATH)
|
||||
if(NOT qml_root_path)
|
||||
set(qml_root_path "${target_source_dir}")
|
||||
endif()
|
||||
file(TO_NATIVE_PATH "${qml_root_path}" qml_root_path_native)
|
||||
string(APPEND file_contents
|
||||
" \"qml-root-path\": \"${qml_root_path_native}\",\n")
|
||||
|
||||
# App binary
|
||||
string(APPEND file_contents
|
||||
" \"application-binary\": \"${target_output_name}\",\n")
|
||||
|
||||
# App command-line arguments
|
||||
string(APPEND file_contents
|
||||
" \"android-application-arguments\": \"${QT_ANDROID_APPLICATION_ARGUMENTS}\",\n")
|
||||
|
||||
# Override qmlimportscanner binary path
|
||||
set(qml_importscanner_binary_path "${QT_HOST_PATH}/bin/qmlimportscanner")
|
||||
if (WIN32)
|
||||
string(APPEND qml_importscanner_binary_path ".exe")
|
||||
endif()
|
||||
file(TO_NATIVE_PATH "${qml_importscanner_binary_path}" qml_importscanner_binary_path_native)
|
||||
string(APPEND file_contents
|
||||
" \"qml-importscanner-binary\" : \"${qml_importscanner_binary_path_native}\",\n")
|
||||
|
||||
# Last item in json file
|
||||
|
||||
# base location of stdlibc++, will be suffixed by androiddeploy qt
|
||||
set(android_ndk_stdlib_base_path
|
||||
"${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/"
|
||||
)
|
||||
string(APPEND file_contents
|
||||
" \"stdcpp-path\": \"${android_ndk_stdlib_base_path}\"\n")
|
||||
|
||||
# content end
|
||||
string(APPEND file_contents "}\n")
|
||||
|
||||
file(WRITE ${deploy_file} ${file_contents})
|
||||
|
||||
set_target_properties(${target}
|
||||
PROPERTIES
|
||||
QT_ANDROID_DEPLOYMENT_SETTINGS_FILE ${deploy_file}
|
||||
)
|
||||
endfunction()
|
||||
|
||||
function(qt_android_apply_arch_suffix target)
|
||||
get_target_property(target_type ${target} TYPE)
|
||||
if (target_type STREQUAL "SHARED_LIBRARY" OR target_type STREQUAL "MODULE_LIBRARY")
|
||||
set_property(TARGET "${target}" PROPERTY SUFFIX "_${CMAKE_ANDROID_ARCH_ABI}.so")
|
||||
elseif (target_type STREQUAL "STATIC_LIBRARY")
|
||||
set_property(TARGET "${target}" PROPERTY SUFFIX "_${CMAKE_ANDROID_ARCH_ABI}.a")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Add custom target to package the APK
|
||||
function(qt_android_add_apk_target target)
|
||||
get_target_property(deployment_file ${target} QT_ANDROID_DEPLOYMENT_SETTINGS_FILE)
|
||||
if (NOT deployment_file)
|
||||
message(FATAL_ERROR "Target ${target} is not a valid android executable target\n")
|
||||
endif()
|
||||
|
||||
set(deployment_tool "${QT_HOST_PATH}/bin/androiddeployqt")
|
||||
set(apk_dir "$<TARGET_PROPERTY:${target},BINARY_DIR>/android-build")
|
||||
add_custom_target(${target}_prepare_apk_dir
|
||||
DEPENDS ${target}
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-E copy $<TARGET_FILE:${target}>
|
||||
"${apk_dir}/libs/${CMAKE_ANDROID_ARCH_ABI}/$<TARGET_FILE_NAME:${target}>"
|
||||
COMMENT "Copying ${target} binarty to apk folder"
|
||||
)
|
||||
|
||||
add_custom_target(${target}_make_apk
|
||||
DEPENDS ${target}_prepare_apk_dir
|
||||
COMMAND ${deployment_tool}
|
||||
--input ${deployment_file}
|
||||
--output ${apk_dir}
|
||||
COMMENT "Creating APK for ${target}"
|
||||
)
|
||||
endfunction()
|
||||
|
||||
# Add a test for Android which will be run by the android test runner tool
|
||||
function(qt_android_add_test target)
|
||||
set(deployment_tool "${QT_HOST_PATH}/bin/androiddeployqt")
|
||||
|
@ -156,6 +156,10 @@ endif()
|
||||
string(APPEND file_contents
|
||||
" \"application-binary\": \"${target_output_name}\",\n")
|
||||
|
||||
# App command-line arguments
|
||||
string(APPEND file_contents
|
||||
" \"android-application-arguments\": \"${QT_ANDROID_APPLICATION_ARGUMENTS}\",\n")
|
||||
|
||||
# Override qmlimportscanner binary path
|
||||
set(qml_importscanner_binary_path "${QT_HOST_PATH}/bin/qmlimportscanner")
|
||||
if (WIN32)
|
||||
|
Loading…
x
Reference in New Issue
Block a user