From 8dbe0fa919b9e6563bf280126998f19d183f065f Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Wed, 6 Oct 2021 12:29:09 +0300 Subject: [PATCH] Android: replace ndk.dir with android.ndkVersion in build.gradle The use of ndk.dir in local.properties is deprecated in favor of android.ndkVersion in build.gradle, and will be totatlly removed in the future, so we need to adapt to that. Fixes: QTBUG-91391 Change-Id: I54c57113a759d43c3685c9cdf2b9dcc5c948c0fd Reviewed-by: BogDan Vatra Reviewed-by: Rami Potinkara (cherry picked from commit 7235eeab19e7e50ba102938993acc04d14b58164) Reviewed-by: Qt Cherry-pick Bot --- src/android/templates/build.gradle | 2 +- src/tools/androiddeployqt/main.cpp | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/android/templates/build.gradle b/src/android/templates/build.gradle index 5db1c67e5f1..94e81967561 100644 --- a/src/android/templates/build.gradle +++ b/src/android/templates/build.gradle @@ -35,8 +35,8 @@ android { *******************************************************/ compileSdkVersion androidCompileSdkVersion.toInteger() - buildToolsVersion androidBuildToolsVersion + ndkVersion androidNdkVersion sourceSets { main { diff --git a/src/tools/androiddeployqt/main.cpp b/src/tools/androiddeployqt/main.cpp index 32346db9215..9eb4a90c2e8 100644 --- a/src/tools/androiddeployqt/main.cpp +++ b/src/tools/androiddeployqt/main.cpp @@ -41,6 +41,7 @@ #include #include #include +#include #include @@ -161,6 +162,7 @@ struct Options QString sdkPath; QString sdkBuildToolsVersion; QString ndkPath; + QString ndkVersion; QString jdkPath; // Build paths @@ -987,6 +989,15 @@ bool readInputFile(Options *options) return false; } options->ndkPath = ndk.toString(); + const QString ndkPropertiesPath = options->ndkPath + QStringLiteral("/source.properties"); + const QSettings settings(ndkPropertiesPath, QSettings::IniFormat); + const QString ndkVersion = settings.value(QStringLiteral("Pkg.Revision")).toString(); + if (ndkVersion.isEmpty()) { + fprintf(stderr, "Couldn't retrieve the NDK version from \"%s\".\n", + qPrintable(ndkPropertiesPath)); + return false; + } + options->ndkVersion = ndkVersion; } { @@ -2520,9 +2531,8 @@ bool buildAndroidProject(const Options &options) { GradleProperties localProperties; localProperties["sdk.dir"] = QDir::fromNativeSeparators(options.sdkPath).toUtf8(); - localProperties["ndk.dir"] = QDir::fromNativeSeparators(options.ndkPath).toUtf8(); - - if (!mergeGradleProperties(options.outputDirectory + QLatin1String("local.properties"), localProperties)) + const QString localPropertiesPath = options.outputDirectory + QLatin1String("local.properties"); + if (!mergeGradleProperties(localPropertiesPath, localProperties)) return false; QString gradlePropertiesPath = options.outputDirectory + QLatin1String("gradle.properties"); @@ -2537,6 +2547,7 @@ bool buildAndroidProject(const Options &options) gradleProperties["androidCompileSdkVersion"] = options.androidPlatform.split(QLatin1Char('-')).last().toLocal8Bit(); gradleProperties["qtMinSdkVersion"] = options.minSdkVersion; gradleProperties["qtTargetSdkVersion"] = options.targetSdkVersion; + gradleProperties["androidNdkVersion"] = options.ndkVersion.toUtf8(); if (gradleProperties["androidBuildToolsVersion"].isEmpty()) gradleProperties["androidBuildToolsVersion"] = options.sdkBuildToolsVersion.toLocal8Bit(); QString abiList;