summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorAssam Boudjelthia <assam.boudjelthia@qt.io>2020-09-11 20:28:01 +0300
committerAssam Boudjelthia <assam.boudjelthia@qt.io>2020-09-16 20:55:16 +0300
commitb9c85d6b0e274bf0a6287cd56d9e3d7376b0d004 (patch)
tree382838fe1e22a48addbd3fe65f0a0167a213f820 /cmake
parent581ac9a4add648412a220ee3edc3553c9edae06d (diff)
CMake: build add flags for building QtAndroid.jar
Adds -source, -target, -Xlint:unchecked, -bootclasspath flags. Setting default javac build source and target versions to 8. Allow setting custom values for javac build versions via -DQT_ANDROID_JAVAC_SOURCE, and -DQT_ANDROID_JAVAC_TARGET. Task-number: QTBUG-86282 Change-Id: I98f4f193ac96016dc722d178594d7fd401202f68 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QtBaseGlobalTargets.cmake1
-rw-r--r--cmake/QtBuild.cmake1
-rw-r--r--cmake/QtJavaHelpers.cmake18
-rw-r--r--cmake/QtProcessConfigureArgs.cmake2
-rw-r--r--cmake/configure-cmake-mapping.md2
5 files changed, 24 insertions, 0 deletions
diff --git a/cmake/QtBaseGlobalTargets.cmake b/cmake/QtBaseGlobalTargets.cmake
index 5ffba66a77..dae6cb5d13 100644
--- a/cmake/QtBaseGlobalTargets.cmake
+++ b/cmake/QtBaseGlobalTargets.cmake
@@ -465,6 +465,7 @@ qt_copy_or_install(FILES
cmake/QtTargetHelpers.cmake
cmake/QtTestHelpers.cmake
cmake/QtToolHelpers.cmake
+ cmake/QtJavaHelpers.cmake
DESTINATION "${__GlobalConfig_install_dir}"
)
diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake
index 92b4e7e400..3cb614d8a9 100644
--- a/cmake/QtBuild.cmake
+++ b/cmake/QtBuild.cmake
@@ -477,6 +477,7 @@ include(QtTargetHelpers)
include(QtTestHelpers)
include(QtToolHelpers)
include(QtHeadersClean)
+include(QtJavaHelpers)
# This sets up the scope finalizer mechanism.
variable_watch(CMAKE_CURRENT_LIST_DIR qt_watch_current_list_dir)
diff --git a/cmake/QtJavaHelpers.cmake b/cmake/QtJavaHelpers.cmake
new file mode 100644
index 0000000000..f362cb3863
--- /dev/null
+++ b/cmake/QtJavaHelpers.cmake
@@ -0,0 +1,18 @@
+# This function can be used to compile java sources into a jar package.
+
+function(qt_internal_add_jar target)
+
+ set(javac_target_version "${QT_ANDROID_JAVAC_TARGET}")
+ if (NOT javac_target_version)
+ set(javac_target_version "8")
+ endif()
+
+ set(javac_source_version "${QT_ANDROID_JAVAC_SOURCE}")
+ if (NOT javac_source_version)
+ set(javac_source_version "8")
+ endif()
+
+ set(CMAKE_JAVA_COMPILE_FLAGS -source "${javac_source_version}" -target "${javac_target_version}" -Xlint:unchecked -bootclasspath "${QT_ANDROID_JAR}")
+ add_jar(${ARGV})
+
+endfunction()
diff --git a/cmake/QtProcessConfigureArgs.cmake b/cmake/QtProcessConfigureArgs.cmake
index eac9bff144..44ac0cc341 100644
--- a/cmake/QtProcessConfigureArgs.cmake
+++ b/cmake/QtProcessConfigureArgs.cmake
@@ -556,6 +556,8 @@ endif()
translate_string_input(platform QT_QMAKE_TARGET_MKSPEC)
translate_string_input(xplatform QT_QMAKE_TARGET_MKSPEC)
translate_string_input(qpa_default_platform QT_QPA_DEFAULT_PLATFORM)
+translate_string_input(android-javac-source QT_ANDROID_JAVAC_SOURCE)
+translate_string_input(android-javac-target QT_ANDROID_JAVAC_TARGET)
drop_input(make)
drop_input(nomake)
diff --git a/cmake/configure-cmake-mapping.md b/cmake/configure-cmake-mapping.md
index 780bbebef4..5a102f8d0e 100644
--- a/cmake/configure-cmake-mapping.md
+++ b/cmake/configure-cmake-mapping.md
@@ -96,6 +96,8 @@ The effort of this is tracked in QTBUG-85373 and QTBUG-85349.
| -android-ndk-host | | |
| -android-abis | | |
| -android-style-assets | | |
+| -android-javac-source | -DQT_ANDROID_JAVAC_SOURCE=7 | Set the javac build source version. |
+| -android-javac-target | -DQT_ANDROID_JAVAC_TARGET=7 | Set the javac build target version. |
| -skip <repo> | -DBUILD_<repo>=OFF | |
| -make <part> | -DBUILD_TESTING=ON | A way to turn on tools explicitly is missing. |
| | -DBUILD_EXAMPLES=ON | |