CMake:Android: add property QT_ANDROID_COMPILE_SDK_VERSION
This allows to set the compile SDK version from CMakeLists.txt instead of a parameter to androiddeployqt to give more flexibility. Fixes: QTBUG-128364 Change-Id: I797e8f9b3c35dcb822c1b7e2b67e6b76387775ca Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
This commit is contained in:
parent
8436455e27
commit
a9ebb97436
@ -245,6 +245,10 @@ function(qt6_android_generate_deployment_settings target)
|
|||||||
_qt_internal_add_android_deployment_property(file_contents "android-target-sdk-version"
|
_qt_internal_add_android_deployment_property(file_contents "android-target-sdk-version"
|
||||||
${target} "QT_ANDROID_TARGET_SDK_VERSION")
|
${target} "QT_ANDROID_TARGET_SDK_VERSION")
|
||||||
|
|
||||||
|
# compile SDK version
|
||||||
|
_qt_internal_add_android_deployment_property(file_contents "android-compile-sdk-version"
|
||||||
|
${target} "QT_ANDROID_COMPILE_SDK_VERSION")
|
||||||
|
|
||||||
# should Qt shared libs be excluded from deployment
|
# should Qt shared libs be excluded from deployment
|
||||||
_qt_internal_add_android_deployment_property(file_contents "android-no-deploy-qt-libs"
|
_qt_internal_add_android_deployment_property(file_contents "android-no-deploy-qt-libs"
|
||||||
${target} "QT_ANDROID_NO_DEPLOY_QT_LIBS")
|
${target} "QT_ANDROID_NO_DEPLOY_QT_LIBS")
|
||||||
|
@ -223,6 +223,43 @@ Specifies the target Android API level for the target.
|
|||||||
\sa{qt6_android_generate_deployment_settings}{qt_android_generate_deployment_settings()}
|
\sa{qt6_android_generate_deployment_settings}{qt_android_generate_deployment_settings()}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page cmake-target-property-qt-android-compile-sdk-version.html
|
||||||
|
\ingroup cmake-properties-qtcore
|
||||||
|
\ingroup cmake-target-properties-qtcore
|
||||||
|
\ingroup cmake-android-build-properties
|
||||||
|
|
||||||
|
\title QT_ANDROID_COMPILE_SDK_VERSION
|
||||||
|
\target cmake-target-property-QT_ANDROID_COMPILE_SDK_VERSION
|
||||||
|
|
||||||
|
\summary {Android target SDK version.}
|
||||||
|
|
||||||
|
\cmakepropertysince 6.9
|
||||||
|
\cmakepropertyandroidonly
|
||||||
|
|
||||||
|
Specifies the version of the Android SDK against which your application is compiled.
|
||||||
|
This is propagated to \c {build.gradle} as \c compileSdkVersion. This value can be
|
||||||
|
provided via \l {androiddeployqt}'s \c {--android-platform} parameter which takes
|
||||||
|
precedence over this CMake property.
|
||||||
|
|
||||||
|
\badcode
|
||||||
|
set_target_properties(${target} PROPERTIES
|
||||||
|
QT_ANDROID_COMPILE_SDK_VERSION 35
|
||||||
|
)
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
The following format also works:
|
||||||
|
|
||||||
|
\badcode
|
||||||
|
set_target_properties(${target} PROPERTIES
|
||||||
|
QT_ANDROID_COMPILE_SDK_VERSION "android-35"
|
||||||
|
)
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
\sa{qt6_android_generate_deployment_settings}{qt_android_generate_deployment_settings()}
|
||||||
|
\sa QT_ANDROID_TARGET_SDK_VERSION
|
||||||
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\page cmake-target-property-qt-android-sdk-build-tools-revision.html
|
\page cmake-target-property-qt-android-sdk-build-tools-revision.html
|
||||||
\ingroup cmake-properties-qtcore
|
\ingroup cmake-properties-qtcore
|
||||||
|
@ -63,6 +63,7 @@ how to accomplish this.
|
|||||||
\li \l{cmake-target-property-QT_ANDROID_MIN_SDK_VERSION}{QT_ANDROID_MIN_SDK_VERSION}
|
\li \l{cmake-target-property-QT_ANDROID_MIN_SDK_VERSION}{QT_ANDROID_MIN_SDK_VERSION}
|
||||||
\li \l{cmake-target-property-QT_ANDROID_PACKAGE_SOURCE_DIR}{QT_ANDROID_PACKAGE_SOURCE_DIR}
|
\li \l{cmake-target-property-QT_ANDROID_PACKAGE_SOURCE_DIR}{QT_ANDROID_PACKAGE_SOURCE_DIR}
|
||||||
\li \l{cmake-target-property-QT_ANDROID_TARGET_SDK_VERSION}{QT_ANDROID_TARGET_SDK_VERSION}
|
\li \l{cmake-target-property-QT_ANDROID_TARGET_SDK_VERSION}{QT_ANDROID_TARGET_SDK_VERSION}
|
||||||
|
\li \l{cmake-target-property-QT_ANDROID_COMPILE_SDK_VERSION}{QT_ANDROID_COMPILE_SDK_VERSION}
|
||||||
\li \l{cmake-target-property-QT_ANDROID_PACKAGE_NAME}{QT_ANDROID_PACKAGE_NAME}
|
\li \l{cmake-target-property-QT_ANDROID_PACKAGE_NAME}{QT_ANDROID_PACKAGE_NAME}
|
||||||
\li \l{cmake-target-property-QT_ANDROID_APP_NAME}{QT_ANDROID_APP_NAME}
|
\li \l{cmake-target-property-QT_ANDROID_APP_NAME}{QT_ANDROID_APP_NAME}
|
||||||
\li \l{cmake-target-property-QT_ANDROID_APP_ICON}{QT_ANDROID_APP_ICON}
|
\li \l{cmake-target-property-QT_ANDROID_APP_ICON}{QT_ANDROID_APP_ICON}
|
||||||
|
@ -1023,15 +1023,27 @@ bool readInputFile(Options *options)
|
|||||||
|
|
||||||
options->sdkPath = QDir::fromNativeSeparators(sdkPath.toString());
|
options->sdkPath = QDir::fromNativeSeparators(sdkPath.toString());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
if (options->androidPlatform.isEmpty()) {
|
if (options->androidPlatform.isEmpty()) {
|
||||||
options->androidPlatform = detectLatestAndroidPlatform(options->sdkPath);
|
const QJsonValue ver = jsonObject.value("android-compile-sdk-version"_L1);
|
||||||
if (options->androidPlatform.isEmpty())
|
if (!ver.isUndefined()) {
|
||||||
return false;
|
const auto value = ver.toString();
|
||||||
} else {
|
options->androidPlatform = value.startsWith("android-"_L1) ?
|
||||||
if (!QDir(options->sdkPath + "/platforms/"_L1 + options->androidPlatform).exists()) {
|
value : "android-%1"_L1.arg(value);
|
||||||
fprintf(stderr, "Warning: Android platform '%s' does not exist in SDK.\n",
|
|
||||||
qPrintable(options->androidPlatform));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (options->androidPlatform.isEmpty()) {
|
||||||
|
options->androidPlatform = detectLatestAndroidPlatform(options->sdkPath);
|
||||||
|
if (options->androidPlatform.isEmpty())
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!QDir(options->sdkPath + "/platforms/"_L1 + options->androidPlatform).exists()) {
|
||||||
|
fprintf(stderr, "Warning: Android platform '%s' does not exist in SDK.\n",
|
||||||
|
qPrintable(options->androidPlatform));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,6 +30,7 @@ set_target_properties(${target} PROPERTIES
|
|||||||
QT_ANDROID_SDK_BUILD_TOOLS_REVISION "23.0.2"
|
QT_ANDROID_SDK_BUILD_TOOLS_REVISION "23.0.2"
|
||||||
QT_ANDROID_MIN_SDK_VERSION "1"
|
QT_ANDROID_MIN_SDK_VERSION "1"
|
||||||
QT_ANDROID_TARGET_SDK_VERSION "2"
|
QT_ANDROID_TARGET_SDK_VERSION "2"
|
||||||
|
QT_ANDROID_COMPILE_SDK_VERSION "35"
|
||||||
QT_ANDROID_APP_NAME "Android Deployment Settings Test"
|
QT_ANDROID_APP_NAME "Android Deployment Settings Test"
|
||||||
QT_ANDROID_PACKAGE_NAME "org.qtproject.android_deployment_settings_test"
|
QT_ANDROID_PACKAGE_NAME "org.qtproject.android_deployment_settings_test"
|
||||||
QT_ANDROID_DEPLOYMENT_DEPENDENCIES "dep1.so;dep2.so;dep3.so"
|
QT_ANDROID_DEPLOYMENT_DEPENDENCIES "dep1.so;dep2.so;dep3.so"
|
||||||
@ -55,6 +56,7 @@ set_target_properties(${target} PROPERTIES
|
|||||||
QT_ANDROID_SDK_BUILD_TOOLS_REVISION "23.0.2"
|
QT_ANDROID_SDK_BUILD_TOOLS_REVISION "23.0.2"
|
||||||
QT_ANDROID_MIN_SDK_VERSION "1"
|
QT_ANDROID_MIN_SDK_VERSION "1"
|
||||||
QT_ANDROID_TARGET_SDK_VERSION "2"
|
QT_ANDROID_TARGET_SDK_VERSION "2"
|
||||||
|
QT_ANDROID_COMPILE_SDK_VERSION "35"
|
||||||
QT_ANDROID_APP_NAME "Android Deployment Settings Test"
|
QT_ANDROID_APP_NAME "Android Deployment Settings Test"
|
||||||
QT_ANDROID_PACKAGE_NAME "org.qtproject.android_deployment_settings_test"
|
QT_ANDROID_PACKAGE_NAME "org.qtproject.android_deployment_settings_test"
|
||||||
QT_ANDROID_DEPLOYMENT_DEPENDENCIES "dep1.so;dep2.so;dep3.so"
|
QT_ANDROID_DEPLOYMENT_DEPENDENCIES "dep1.so;dep2.so;dep3.so"
|
||||||
|
@ -76,6 +76,8 @@ void tst_android_deployment_settings::DeploymentSettings_data()
|
|||||||
<< "1";
|
<< "1";
|
||||||
QTest::newRow("android-target-sdk-version") << "android-target-sdk-version"
|
QTest::newRow("android-target-sdk-version") << "android-target-sdk-version"
|
||||||
<< "2";
|
<< "2";
|
||||||
|
QTest::newRow("android-compile-sdk-version") << "android-compile-sdk-version"
|
||||||
|
<< "35";
|
||||||
QTest::newRow("android-package-name") << "android-package-name"
|
QTest::newRow("android-package-name") << "android-package-name"
|
||||||
<< "org.qtproject.android_deployment_settings_test";
|
<< "org.qtproject.android_deployment_settings_test";
|
||||||
QTest::newRow("android-app-name") << "android-app-name"
|
QTest::newRow("android-app-name") << "android-app-name"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user