summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2020-07-03 15:05:42 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2020-07-09 11:56:31 +0200
commitb1f8ca8032bd0500f356c55c335937f7fb89d3f5 (patch)
treec88267b551c0dc16a9f8699c20422fea784e2b5e
parentd5e8a5d9cbcebec966833155728be3f2d293aafa (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.cmake3
-rw-r--r--src/android/jar/.prev_CMakeLists.txt1
-rw-r--r--src/android/jar/CMakeLists.txt1
-rw-r--r--src/android/java/CMakeLists.txt7
-rw-r--r--src/android/templates/CMakeLists.txt11
-rw-r--r--src/network/android/jar/CMakeLists.txt1
-rw-r--r--src/plugins/platforms/android/CMakeLists.txt8
-rwxr-xr-xutil/cmake/pro2cmake.py1
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")