From d340d26eb35ef28e94b45cc1d07dd761665d6cd7 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Wed, 17 Apr 2013 11:52:16 +0200 Subject: [PATCH] Android: ant auto detection Change-Id: I3afaab99c8e71a6dabe6d61ed55247a1cecc2d45 Reviewed-by: Eskil Abrahamsen Blomfeldt Reviewed-by: Eike Ziller --- src/plugins/android/androidconfigurations.cpp | 10 ++++++++++ src/plugins/android/androidsettingswidget.cpp | 20 +++++++++++++++++++ src/plugins/android/androidsettingswidget.h | 1 + 3 files changed, 31 insertions(+) diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index 9d17c5b7f6..f2e923697e 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -45,6 +45,7 @@ #include #include #include +#include #include #include @@ -733,6 +734,15 @@ void AndroidConfigurations::load() QSettings *settings = Core::ICore::instance()->settings(); settings->beginGroup(SettingsGroup); m_config = AndroidConfig(*settings); + + if (m_config.antLocation.isEmpty()) { + Utils::Environment env = Utils::Environment::systemEnvironment(); + QString location = env.searchInPath(QLatin1String("ant")); + QFileInfo fi(location); + if (fi.exists() && fi.isExecutable() && !fi.isDir()) + m_config.antLocation = Utils::FileName::fromString(location); + } + settings->endGroup(); } diff --git a/src/plugins/android/androidsettingswidget.cpp b/src/plugins/android/androidsettingswidget.cpp index 8a0163df7d..2cbbbdc6fa 100644 --- a/src/plugins/android/androidsettingswidget.cpp +++ b/src/plugins/android/androidsettingswidget.cpp @@ -278,6 +278,7 @@ void AndroidSettingsWidget::sdkLocationEditingFinished() return; } m_androidConfig.sdkLocation = location; + searchForAnt(location.toString()); saveSettings(true); m_AVDModel.setAvdList(AndroidConfigurations::instance().androidVirtualDevices()); m_ui->AVDManagerFrame->setEnabled(true); @@ -289,9 +290,28 @@ void AndroidSettingsWidget::ndkLocationEditingFinished() m_androidConfig.toolchainHost.clear(); // force toolchain host detection if (!checkNDK(location)) return; + searchForAnt(location.toString()); saveSettings(true); } +void AndroidSettingsWidget::searchForAnt(const QString &location) +{ + if (!m_androidConfig.antLocation.isEmpty()) + return; + if (location.isEmpty()) + return; + QDir parentFolder = QFileInfo(location).absoluteDir(); + foreach (const QString &file, parentFolder.entryList()) { + if (file.startsWith(QLatin1String("apache-ant"))) { + QString ant = parentFolder.absolutePath() + QLatin1Char('/') + file + QLatin1String("/bin/ant.bat"); + if (QFileInfo(ant).exists()) { + m_androidConfig.antLocation = Utils::FileName::fromString(ant); + m_ui->AntLocationLineEdit->setText(ant); + } + } + } +} + void AndroidSettingsWidget::antLocationEditingFinished() { Utils::FileName location = Utils::FileName::fromUserInput(m_ui->AntLocationLineEdit->text()); diff --git a/src/plugins/android/androidsettingswidget.h b/src/plugins/android/androidsettingswidget.h index 957d234173..74e7fe6d43 100644 --- a/src/plugins/android/androidsettingswidget.h +++ b/src/plugins/android/androidsettingswidget.h @@ -75,6 +75,7 @@ public: private slots: void sdkLocationEditingFinished(); void ndkLocationEditingFinished(); + void searchForAnt(const QString &location); void antLocationEditingFinished(); void openJDKLocationEditingFinished(); void browseSDKLocation(); -- GitLab