forked from qt-creator/qt-creator
Android: Don't pass duplicate ANDROID_PLATFORM to CMake
This makes sure that one unique argument "-DANDROID_PLATFORM:STRING=..." is passed to CMake. An entry in a kit's CMake configuration has the precedence over the ANDROID_PLATFORM defined by Qt's build system. Fixes: QTCREATORBUG-29112 Change-Id: I1c4d80be9ddfc7a00a5a7eff476497f08d87b741 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -1468,10 +1468,18 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id)
|
||||
|
||||
// Android magic:
|
||||
if (DeviceTypeKitAspect::deviceTypeId(k) == Android::Constants::ANDROID_DEVICE_TYPE) {
|
||||
auto addUniqueKeyToCmd = [&cmd] (const QString &prefix, const QString &value) -> bool {
|
||||
const bool isUnique =
|
||||
!Utils::contains(cmd.splitArguments(), [&prefix] (const QString &arg) {
|
||||
return arg.startsWith(prefix); });
|
||||
if (isUnique)
|
||||
cmd.addArg(prefix + value);
|
||||
return isUnique;
|
||||
};
|
||||
buildSteps()->appendStep(Android::Constants::ANDROID_BUILD_APK_ID);
|
||||
const auto bs = buildSteps()->steps().constLast();
|
||||
cmd.addArg("-DANDROID_PLATFORM:STRING="
|
||||
+ bs->data(Android::Constants::AndroidNdkPlatform).toString());
|
||||
addUniqueKeyToCmd("-DANDROID_PLATFORM:STRING=",
|
||||
bs->data(Android::Constants::AndroidNdkPlatform).toString());
|
||||
auto ndkLocation = bs->data(Android::Constants::NdkLocation).value<FilePath>();
|
||||
cmd.addArg("-DANDROID_NDK:PATH=" + ndkLocation.path());
|
||||
|
||||
|
Reference in New Issue
Block a user