summaryrefslogtreecommitdiff
path: root/tools/minicargo/build.h
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2018-01-06 10:30:00 +0800
committerJohn Hodge <tpg@ucc.asn.au>2018-01-06 10:30:00 +0800
commit92b96b3fa0f1c8056a47f95fc302fe7e9596aec7 (patch)
treef6f76f2ca783f08b9a44d840336d1280698255cb /tools/minicargo/build.h
parent8415e3371214eb4bdbff853b40af2d84cab2600c (diff)
downloadmrust-92b96b3fa0f1c8056a47f95fc302fe7e9596aec7.tar.gz
Minicargo - Parallel build support
Diffstat (limited to 'tools/minicargo/build.h')
-rw-r--r--tools/minicargo/build.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/tools/minicargo/build.h b/tools/minicargo/build.h
index a1b428a6..ac3e14ee 100644
--- a/tools/minicargo/build.h
+++ b/tools/minicargo/build.h
@@ -35,4 +35,19 @@ private:
Timestamp get_timestamp(const ::helpers::path& path) const;
};
+class BuildList2
+{
+ struct Entry
+ {
+ const PackageManifest* package;
+ ::std::vector<unsigned> dependents; // Indexes into the list
+ };
+ const PackageManifest& m_root_manifest;
+ // List is sorted by build order
+ ::std::vector<Entry> m_list;
+public:
+ BuildList2(const PackageManifest& manifest, const BuildOptions& opts);
+ bool build(BuildOptions opts, unsigned num_jobs); // 0 = 1 job
+};
+
extern bool MiniCargo_Build(const PackageManifest& manifest, BuildOptions opts);