diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2020-07-03 15:05:42 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2020-07-09 11:56:31 +0200 |
commit | b1f8ca8032bd0500f356c55c335937f7fb89d3f5 (patch) | |
tree | c88267b551c0dc16a9f8699c20422fea784e2b5e | |
parent | d5e8a5d9cbcebec966833155728be3f2d293aafa (diff) |
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>
-rw-r--r-- | cmake/QtBuildInternals/QtBuildInternalsAndroid.cmake | 3 | ||||
-rw-r--r-- | src/android/jar/.prev_CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/android/jar/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/android/java/CMakeLists.txt | 7 | ||||
-rw-r--r-- | src/android/templates/CMakeLists.txt | 11 | ||||
-rw-r--r-- | src/network/android/jar/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/plugins/platforms/android/CMakeLists.txt | 8 | ||||
-rwxr-xr-x | util/cmake/pro2cmake.py | 1 |
8 files changed, 14 insertions, 19 deletions
diff --git a/cmake/QtBuildInternals/QtBuildInternalsAndroid.cmake b/cmake/QtBuildInternals/QtBuildInternalsAndroid.cmake index 9830cf9871..1d3997b0c9 100644 --- a/cmake/QtBuildInternals/QtBuildInternalsAndroid.cmake +++ b/cmake/QtBuildInternals/QtBuildInternalsAndroid.cmake @@ -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") diff --git a/src/android/jar/.prev_CMakeLists.txt b/src/android/jar/.prev_CMakeLists.txt index f4c807c33a..e09f318aac 100644 --- a/src/android/jar/.prev_CMakeLists.txt +++ b/src/android/jar/.prev_CMakeLists.txt @@ -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 diff --git a/src/android/jar/CMakeLists.txt b/src/android/jar/CMakeLists.txt index 61af168a67..c8beeba96d 100644 --- a/src/android/jar/CMakeLists.txt +++ b/src/android/jar/CMakeLists.txt @@ -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 diff --git a/src/android/java/CMakeLists.txt b/src/android/java/CMakeLists.txt index 1c24bd5e82..e9d72247dd 100644 --- a/src/android/java/CMakeLists.txt +++ b/src/android/java/CMakeLists.txt @@ -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 diff --git a/src/android/templates/CMakeLists.txt b/src/android/templates/CMakeLists.txt index 8e007b7215..d0f1f4bf71 100644 --- a/src/android/templates/CMakeLists.txt +++ b/src/android/templates/CMakeLists.txt @@ -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 diff --git a/src/network/android/jar/CMakeLists.txt b/src/network/android/jar/CMakeLists.txt index 5b7c2d012b..48f3d35e6f 100644 --- a/src/network/android/jar/CMakeLists.txt +++ b/src/network/android/jar/CMakeLists.txt @@ -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 diff --git a/src/plugins/platforms/android/CMakeLists.txt b/src/plugins/platforms/android/CMakeLists.txt index 2203842fe8..d3363de4c7 100644 --- a/src/plugins/platforms/android/CMakeLists.txt +++ b/src/plugins/platforms/android/CMakeLists.txt @@ -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>: diff --git a/util/cmake/pro2cmake.py b/util/cmake/pro2cmake.py index 251302141d..b4f70c2654 100755 --- a/util/cmake/pro2cmake.py +++ b/util/cmake/pro2cmake.py @@ -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") |