diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index f2e923697e9..b0e6dedcf65 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -81,6 +81,7 @@ namespace { const QLatin1String OpenJDKLocationKey("OpenJDKLocation"); const QLatin1String KeystoreLocationKey("KeystoreLocation"); const QLatin1String AutomaticKitCreationKey("AutomatiKitCreation"); + const QLatin1String MakeExtraSearchDirectory("MakeExtraSearchDirectory"); const QLatin1String PartitionSizeKey("PartitionSize"); const QLatin1String ToolchainHostKey("ToolchainHost"); const QLatin1String ArmToolchainPrefix("arm-linux-androideabi"); @@ -156,6 +157,11 @@ AndroidConfig::AndroidConfig(const QSettings &settings) keystoreLocation = FileName::fromString(settings.value(KeystoreLocationKey).toString()); toolchainHost = settings.value(ToolchainHostKey).toString(); automaticKitCreation = settings.value(AutomaticKitCreationKey, true).toBool(); + QString extraDirectory = settings.value(MakeExtraSearchDirectory).toString(); + if (extraDirectory.isEmpty()) + makeExtraSearchDirectories = QStringList(); + else + makeExtraSearchDirectories << extraDirectory; PersistentSettingsReader reader; if (reader.load(FileName::fromString(sdkSettingsFileName())) @@ -170,6 +176,11 @@ AndroidConfig::AndroidConfig(const QSettings &settings) QVariant v = reader.restoreValue(AutomaticKitCreationKey); if (v.isValid()) automaticKitCreation = v.toBool(); + QString extraDirectory = reader.restoreValue(MakeExtraSearchDirectory).toString(); + if (extraDirectory.isEmpty()) + makeExtraSearchDirectories = QStringList(); + else + makeExtraSearchDirectories << extraDirectory; // persistent settings } @@ -599,6 +610,11 @@ QString AndroidConfigurations::bestMatch(const QString &targetAPI) const return QLatin1String("android-8"); } +QStringList AndroidConfigurations::makeExtraSearchDirectories() const +{ + return m_config.makeExtraSearchDirectories; +} + bool equalKits(Kit *a, Kit *b) { return ToolChainKitInformation::toolChain(a) == ToolChainKitInformation::toolChain(b) diff --git a/src/plugins/android/androidconfigurations.h b/src/plugins/android/androidconfigurations.h index edd607fba14..04e8ec303fc 100644 --- a/src/plugins/android/androidconfigurations.h +++ b/src/plugins/android/androidconfigurations.h @@ -32,6 +32,7 @@ #include #include +#include #include #include @@ -55,6 +56,7 @@ public: Utils::FileName openJDKLocation; Utils::FileName keystoreLocation; QString toolchainHost; + QStringList makeExtraSearchDirectories; unsigned partitionSize; bool automaticKitCreation; }; @@ -97,6 +99,8 @@ public: QString startAVD(int *apiLevel, const QString &name = QString()) const; QString bestMatch(const QString &targetAPI) const; + QStringList makeExtraSearchDirectories() const; + static ProjectExplorer::Abi::Architecture architectureForToolChainPrefix(const QString &toolchainprefix); static QLatin1String toolchainPrefix(ProjectExplorer::Abi::Architecture architecture); static QLatin1String toolsPrefix(ProjectExplorer::Abi::Architecture architecture); diff --git a/src/plugins/android/androidtoolchain.cpp b/src/plugins/android/androidtoolchain.cpp index 04ee7586409..65bd22393af 100644 --- a/src/plugins/android/androidtoolchain.cpp +++ b/src/plugins/android/androidtoolchain.cpp @@ -204,7 +204,7 @@ QString AndroidToolChain::makeCommand(const Utils::Environment &env) const { QString make = HostOsInfo::isWindowsHost() ? QLatin1String("ma-make.exe") : QLatin1String("make"); - QString tmp = env.searchInPath(make); + QString tmp = env.searchInPath(make, AndroidConfigurations::instance().makeExtraSearchDirectories()); return tmp.isEmpty() ? make : tmp; }