aboutsummaryrefslogtreecommitdiffstats
path: root/src/app/qbs-setup-toolchains/probe.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/qbs-setup-toolchains/probe.h')
-rw-r--r--src/app/qbs-setup-toolchains/probe.h32
1 files changed, 29 insertions, 3 deletions
diff --git a/src/app/qbs-setup-toolchains/probe.h b/src/app/qbs-setup-toolchains/probe.h
index 510747ef7..235d7a899 100644
--- a/src/app/qbs-setup-toolchains/probe.h
+++ b/src/app/qbs-setup-toolchains/probe.h
@@ -36,10 +36,15 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#ifndef QBS_PROBE_H
-#define QBS_PROBE_H
-#include <QtCore/qglobal.h>
+#ifndef QBS_SETUPTOOLCHAINS_PROBE_H
+#define QBS_SETUPTOOLCHAINS_PROBE_H
+
+#include <tools/version.h>
+
+#include <QtCore/qfileinfo.h>
+
+#include <tuple> // for std::tie
QT_BEGIN_NAMESPACE
class QString;
@@ -48,11 +53,32 @@ QT_END_NAMESPACE
namespace qbs { class Settings; }
+QStringList systemSearchPaths();
+
QString findExecutable(const QString &fileName);
+QStringList toolchainTypeFromCompilerName(const QString &compilerName);
+
void createProfile(const QString &profileName, const QString &toolchainType,
const QString &compilerFilePath, qbs::Settings *settings);
void probe(qbs::Settings *settings);
+struct ToolchainInstallInfo
+{
+ QFileInfo compilerPath;
+ qbs::Version compilerVersion;
+};
+
+inline bool operator<(const ToolchainInstallInfo &lhs, const ToolchainInstallInfo &rhs)
+{
+ const auto lp = lhs.compilerPath.absoluteFilePath();
+ const auto rp = rhs.compilerPath.absoluteFilePath();
+ return std::tie(lp, lhs.compilerVersion) < std::tie(rp, rhs.compilerVersion);
+}
+
+int extractVersion(const QByteArray &macroDump, const QByteArray &keyToken);
+
+bool isSameExecutable(const QString &exe1, const QString &exe2);
+
#endif // Header guard