diff options
author | dt <[email protected]> | 2009-01-21 17:21:59 +0100 |
---|---|---|
committer | dt <[email protected]> | 2009-01-21 17:21:59 +0100 |
commit | 38471eebfe0239c8d83f2b8c87dac639185c7e04 (patch) | |
tree | 4063478aeb5e0d1242ca027e048f0a8cab44110f /src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp | |
parent | db20c44d4099ebafb053455634befec7df083099 (diff) |
Fixes: Run cmake to get the version and check for the QtCreator generator
Details: We don't act on that information yet.
Diffstat (limited to 'src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp')
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp index fb19dbdbf9b..96170439d4e 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp @@ -98,6 +98,30 @@ CMakeSettingsPage::CMakeSettingsPage() settings->beginGroup("CMakeSettings"); m_cmakeExecutable = settings->value("cmakeExecutable").toString(); settings->endGroup(); + updateCachedInformation(); +} + +void CMakeSettingsPage::updateCachedInformation() const +{ + // We find out two things: + // Does this cmake version support a QtCreator generator + // and the version + QFileInfo fi(m_cmakeExecutable); + if (!fi.exists()) { + m_version.clear(); + m_supportsQtCreator = false; + } + QProcess cmake; + cmake.start(m_cmakeExecutable, QStringList()<<"--help"); + cmake.waitForFinished(); + QString response = cmake.readAll(); + QRegExp versionRegexp("^cmake version ([*\\d\\.]*)-(|patch (\\d*))(|\\r)\\n"); + versionRegexp.indexIn(response); + + m_supportsQtCreator = response.contains("QtCreator"); + m_version = versionRegexp.cap(1); + if (!versionRegexp.capturedTexts().size()>3) + m_version += "." + versionRegexp.cap(3); } QString CMakeSettingsPage::findCmakeExecutable() const @@ -144,6 +168,7 @@ void CMakeSettingsPage::saveSettings() const void CMakeSettingsPage::apply() { m_cmakeExecutable = m_pathchooser->path(); + updateCachedInformation(); saveSettings(); } @@ -157,6 +182,7 @@ QString CMakeSettingsPage::cmakeExecutable() const if (m_cmakeExecutable.isEmpty()) { m_cmakeExecutable = findCmakeExecutable(); if (!m_cmakeExecutable.isEmpty()) { + updateCachedInformation(); saveSettings(); } } |