CMake: Fix various issues with the Android build
Certain resources and compiled jar files have to be copied into the non-prefix build dir location. They were previously only installed, which doesn't do anything in a non-prefix build. Change pro2cmake to generate code that places the compiled java jars into QT_BUILD_DIR, so that non-prefix builds work. Place the module dependencies xml files into lib folder in non-prefix builds. Don't special case the output and install location of the Android QPA plugin. Task-number: QTBUG-85399 Change-Id: I4ac9d3929ea8ecc95ec99a77e621ad2121b68832 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
parent
d5e8a5d9cb
commit
b1f8ca8032
@ -115,8 +115,7 @@ function(qt_android_dependencies target)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
get_target_property(target_bin_dir ${target} BINARY_DIR)
|
||||
set(dependency_file "${target_bin_dir}/${target_name}_${CMAKE_ANDROID_ARCH_ABI}-android-dependencies.xml")
|
||||
set(dependency_file "${QT_BUILD_DIR}/${INSTALL_LIBDIR}/${target_name}_${CMAKE_ANDROID_ARCH_ABI}-android-dependencies.xml")
|
||||
|
||||
set(file_contents "<rules><dependencies>\n")
|
||||
string(APPEND file_contents "<lib name=\"${target_name}_${CMAKE_ANDROID_ARCH_ABI}\"><depends>\n")
|
||||
|
@ -21,6 +21,7 @@ set(java_sources
|
||||
add_jar(QtAndroid
|
||||
INCLUDE_JARS ${QT_ANDROID_JAR}
|
||||
SOURCES ${java_sources}
|
||||
OUTPUT_DIR "${QT_BUILD_DIR}/jar"
|
||||
)
|
||||
|
||||
install_jar(QtAndroid
|
||||
|
@ -22,6 +22,7 @@ set(java_sources
|
||||
add_jar(QtAndroid
|
||||
INCLUDE_JARS ${QT_ANDROID_JAR}
|
||||
SOURCES ${java_sources}
|
||||
OUTPUT_DIR "${QT_BUILD_DIR}/jar"
|
||||
)
|
||||
|
||||
install_jar(QtAndroid
|
||||
|
@ -6,7 +6,8 @@ set(resource_directories
|
||||
res
|
||||
src)
|
||||
|
||||
qt_install(DIRECTORY ${resource_directories}
|
||||
DESTINATION src/android/java
|
||||
COMPONENT Devel)
|
||||
qt_path_join(destination ${QT_INSTALL_DIR} "src/android/java")
|
||||
qt_copy_or_install(DIRECTORY ${resource_directories}
|
||||
DESTINATION "${destination}"
|
||||
)
|
||||
# special case end
|
||||
|
@ -9,11 +9,10 @@ set(template_files
|
||||
set(template_directories
|
||||
res)
|
||||
|
||||
qt_install(FILES ${template_files}
|
||||
DESTINATION src/android/templates
|
||||
COMPONENT Devel)
|
||||
qt_path_join(destination ${QT_INSTALL_DIR} "src/android/templates")
|
||||
qt_copy_or_install(FILES ${template_files}
|
||||
DESTINATION "${destination}")
|
||||
|
||||
qt_install(DIRECTORY ${template_directories}
|
||||
DESTINATION src/android/templates
|
||||
COMPONENT Devel)
|
||||
qt_copy_or_install(DIRECTORY ${template_directories}
|
||||
DESTINATION "${destination}")
|
||||
# special case end
|
||||
|
@ -7,6 +7,7 @@ set(java_sources
|
||||
add_jar(QtAndroidNetwork
|
||||
INCLUDE_JARS ${QT_ANDROID_JAR}
|
||||
SOURCES ${java_sources}
|
||||
OUTPUT_DIR "${QT_BUILD_DIR}/jar"
|
||||
)
|
||||
|
||||
install_jar(QtAndroidNetwork
|
||||
|
@ -53,14 +53,6 @@ qt_internal_add_plugin(QAndroidIntegrationPlugin
|
||||
Qt::GuiPrivate
|
||||
android
|
||||
jnigraphics
|
||||
# special case begin
|
||||
INSTALL_DIRECTORY
|
||||
plugins/platforms
|
||||
OUTPUT_DIRECTORY
|
||||
plugins/platforms
|
||||
ARCHIVE_INSTALL_DIRECTORY
|
||||
plugins/platforms
|
||||
# special case end
|
||||
)
|
||||
|
||||
#### Keys ignored in scope 1:.:.:android.pro:<TRUE>:
|
||||
|
@ -3301,6 +3301,7 @@ def write_jar(cm_fh: IO[str], scope: Scope, *, indent: int = 0) -> str:
|
||||
cm_fh.write(f"{spaces(indent)}add_jar({target}\n")
|
||||
cm_fh.write(f"{spaces(indent+1)}INCLUDE_JARS {android_sdk_jar}\n")
|
||||
cm_fh.write(f"{spaces(indent+1)}SOURCES ${{java_sources}}\n")
|
||||
cm_fh.write(f'{spaces(indent+1)}OUTPUT_DIR "${{QT_BUILD_DIR}}/{install_dir}"\n')
|
||||
cm_fh.write(f"{spaces(indent)})\n\n")
|
||||
|
||||
cm_fh.write(f"{spaces(indent)}install_jar({target}\n")
|
||||
|
Loading…
x
Reference in New Issue
Block a user