From e164717108176ee1423f3f629a8182520c2909d1 Mon Sep 17 00:00:00 2001 From: Ivan Donchevskii Date: Wed, 14 Nov 2018 16:54:47 +0100 Subject: [PATCH] Android: Fix clang executable suffix on Windows Change-Id: I78e8e49efd52d33f9f26f554a3400fabbe74d9ed Reviewed-by: Tobias Hunger --- src/plugins/android/androidconfigurations.cpp | 3 ++- src/plugins/android/androidtoolchain.cpp | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index 80a5d39dcc7..a52c63d3702 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -424,7 +424,8 @@ FileName AndroidConfig::clangPath() const QDirIterator iter(clangPath.toString(), hostPatterns, QDir::Dirs); if (iter.hasNext()) { iter.next(); - return clangPath.appendPath(iter.fileName()).appendPath("bin/clang"); + return clangPath.appendPath(iter.fileName()) + .appendPath(HostOsInfo::withExecutableSuffix("bin/clang")); } return clangPath; diff --git a/src/plugins/android/androidtoolchain.cpp b/src/plugins/android/androidtoolchain.cpp index f1213959bd7..280e1d69849 100644 --- a/src/plugins/android/androidtoolchain.cpp +++ b/src/plugins/android/androidtoolchain.cpp @@ -177,6 +177,13 @@ ToolChain *AndroidToolChainFactory::restore(const QVariantMap &data) return nullptr; } +static FileName clangPlusPlusPath(const FileName &clangPath) +{ + return clangPath.parentDir().appendPath( + HostOsInfo::withExecutableSuffix( + QFileInfo(clangPath.toString()).baseName() + "++")); +} + ToolChainList AndroidToolChainFactory::autodetectToolChainsForNdk(CToolChainList &alreadyKnown) { QList result; @@ -192,7 +199,7 @@ ToolChainList AndroidToolChainFactory::autodetectToolChainsForNdk(CToolChainList for (const Core::Id &lang : LanguageIds) { FileName compilerCommand = clangPath; if (lang == ProjectExplorer::Constants::CXX_LANGUAGE_ID) - compilerCommand.appendString("++"); + compilerCommand = clangPlusPlusPath(clangPath); if (!compilerCommand.exists()) { qCDebug(androidTCLog) << "Skipping Clang toolchain. Can not find compiler"