summaryrefslogtreecommitdiff
path: root/tools/minicargo/build.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/minicargo/build.h')
-rw-r--r--tools/minicargo/build.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/tools/minicargo/build.h b/tools/minicargo/build.h
new file mode 100644
index 00000000..10b3ac46
--- /dev/null
+++ b/tools/minicargo/build.h
@@ -0,0 +1,33 @@
+#pragma once
+
+#include "manifest.h"
+#include "path.h"
+
+class StringList;
+class Timestamp;
+
+class Builder
+{
+ static const char* const MRUSTC_PATH;
+
+ ::helpers::path m_output_dir;
+ ::helpers::path m_build_script_overrides;
+
+public:
+ Builder(::helpers::path output_dir, ::helpers::path override_dir):
+ m_output_dir(output_dir),
+ m_build_script_overrides(override_dir)
+ {
+ }
+
+ bool build_target(const PackageManifest& manifest, const PackageTarget& target) const;
+ bool build_library(const PackageManifest& manifest) const;
+
+private:
+ bool spawn_process(const StringList& args, const ::helpers::path& logfile) const;
+
+
+ Timestamp get_timestamp(const ::helpers::path& path) const;
+};
+
+extern void MiniCargo_Build(const PackageManifest& manifest, ::helpers::path override_path);