aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside-tools/cmake/PySideAndroid.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside-tools/cmake/PySideAndroid.cmake')
-rw-r--r--sources/pyside-tools/cmake/PySideAndroid.cmake52
1 files changed, 52 insertions, 0 deletions
diff --git a/sources/pyside-tools/cmake/PySideAndroid.cmake b/sources/pyside-tools/cmake/PySideAndroid.cmake
new file mode 100644
index 000000000..4b6260cce
--- /dev/null
+++ b/sources/pyside-tools/cmake/PySideAndroid.cmake
@@ -0,0 +1,52 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+set(QT_MAJOR_VERSION 6)
+
+# Locate Java
+include(UseJava)
+# Find JDK 8.0
+find_package(Java 1.8 COMPONENTS Development REQUIRED)
+# Find QtJavaHelpers.java
+include("${QT6_INSTALL_PREFIX}/${QT6_INSTALL_LIBS}/cmake/Qt6/QtJavaHelpers.cmake")
+
+macro(create_and_install_qt_javabindings)
+
+ # create Qt6AndroidBindings.jar from the following {java_sources}
+ set(android_main_srcs "${QT6_INSTALL_PREFIX}/src/android/java/src/org/qtproject/qt/android/bindings")
+ set(java_sources
+ ${android_main_srcs}/QtActivity.java
+ ${android_main_srcs}/QtApplication.java
+ ${android_main_srcs}/QtService.java
+ )
+ # set android.jar from the sdk, for compiling the java files into .jar
+ set(sdk_jar_location "${ANDROID_SDK_ROOT}/platforms/${ANDROID_PLATFORM}/android.jar")
+ if (NOT EXISTS "${sdk_jar_location}")
+ message(FATAL_ERROR "Could not locate Android SDK jar for api '${api}'")
+ endif()
+
+ # this variable is accessed by qt_internal_add_jar
+ set(QT_ANDROID_JAR ${sdk_jar_location})
+
+ set(qt_jar_location "${QT6_INSTALL_PREFIX}/jar/Qt6Android.jar")
+ if (NOT EXISTS "${qt_jar_location}")
+ message(FATAL_ERROR "${qt_jar_location} does not exist. Qt6 installation maybe corrupted.")
+ endif()
+
+ # to be done
+ list(APPEND included_jars ${sdk_jar_location} ${qt_jar_location})
+
+ qt_internal_add_jar(Qt${QT_MAJOR_VERSION}AndroidBindings
+ INCLUDE_JARS ${included_jars}
+ SOURCES ${java_sources}
+ )
+
+ install_jar(Qt${QT_MAJOR_VERSION}AndroidBindings
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/jar"
+ COMPONENT Devel
+ )
+
+ # install other relevant Android jars from the Qt installation.
+ # All the jars would be later packaged together with the Android wheels
+ install(DIRECTORY ${QT6_INSTALL_PREFIX}/jar/ DESTINATION lib/jar)
+endmacro()