aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@digia.com>2012-11-29 15:45:34 +0100
committerChristian Kandeler <christian.kandeler@digia.com>2012-11-29 18:03:20 +0100
commitba97abad7e72d528fdc363ad87e33a70ec0c4657 (patch)
tree140c48adf154adabfc483f2ceaa0b27646d48fa3
parent1268926177367dc9bab31e031261cf3e234858d8 (diff)
Sort products, groups and files
This makes the output more stable, so that you can e.g. do meaningful comparisons based on qbs status output. Change-Id: I7d8121d832da1b7e4768c89b038b44f5056af549 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
-rw-r--r--src/lib/api/project.cpp4
-rw-r--r--src/lib/api/projectdata.cpp10
-rw-r--r--src/lib/api/projectdata.h2
3 files changed, 16 insertions, 0 deletions
diff --git a/src/lib/api/project.cpp b/src/lib/api/project.cpp
index 74ded4afe..1269f7baf 100644
--- a/src/lib/api/project.cpp
+++ b/src/lib/api/project.cpp
@@ -258,11 +258,15 @@ void ProjectPrivate::retrieveProjectData()
foreach (const SourceArtifactConstPtr &sa, resolvedGroup->wildcards->files)
group.m_expandedWildcards << sa->absoluteFilePath;
}
+ qSort(group.m_filePaths);
+ qSort(group.m_expandedWildcards);
group.m_properties = resolvedGroup->properties->value();
product.m_groups << group;
}
+ qSort(product.m_groups);
m_projectData.m_products << product;
}
+ qSort(m_projectData.m_products);
m_projectDataRetrieved = true;
}
diff --git a/src/lib/api/projectdata.cpp b/src/lib/api/projectdata.cpp
index 830c5a5a7..45288d94b 100644
--- a/src/lib/api/projectdata.cpp
+++ b/src/lib/api/projectdata.cpp
@@ -64,6 +64,11 @@ bool operator!=(const ProductData &lhs, const ProductData &rhs)
return !(lhs == rhs);
}
+bool operator<(const GroupData &lhs, const GroupData &rhs)
+{
+ return lhs.name() < rhs.name();
+}
+
ProjectData::ProjectData() { }
bool operator==(const ProjectData &lhs, const ProjectData &rhs)
@@ -77,6 +82,11 @@ bool operator!=(const ProjectData &lhs, const ProjectData &rhs)
return !(lhs == rhs);
}
+bool operator<(const ProductData &lhs, const ProductData &rhs)
+{
+ return lhs.name() < rhs.name();
+}
+
/*!
* \class GroupData
* \brief The \c GroupData class corresponds to the Group item in a qbs source file.
diff --git a/src/lib/api/projectdata.h b/src/lib/api/projectdata.h
index f08e1def7..872c89d49 100644
--- a/src/lib/api/projectdata.h
+++ b/src/lib/api/projectdata.h
@@ -65,6 +65,7 @@ private:
bool operator==(const GroupData &lhs, const GroupData &rhs);
bool operator!=(const GroupData &lhs, const GroupData &rhs);
+bool operator<(const GroupData &lhs, const GroupData &rhs);
class ProductData
{
@@ -90,6 +91,7 @@ private:
bool operator==(const ProductData &lhs, const ProductData &rhs);
bool operator!=(const ProductData &lhs, const ProductData &rhs);
+bool operator<(const ProductData &lhs, const ProductData &rhs);
class ProjectData
{