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.h29
1 files changed, 4 insertions, 25 deletions
diff --git a/tools/minicargo/build.h b/tools/minicargo/build.h
index ac3e14ee..a27c8859 100644
--- a/tools/minicargo/build.h
+++ b/tools/minicargo/build.h
@@ -12,42 +12,21 @@ struct BuildOptions
::helpers::path output_dir;
::helpers::path build_script_overrides;
::std::vector<::helpers::path> lib_search_dirs;
+ const char* target_name = nullptr; // if null, host is used
};
-class Builder
-{
- BuildOptions m_opts;
- ::helpers::path m_compiler_path;
-
-public:
- Builder(BuildOptions opts);
-
- bool build_target(const PackageManifest& manifest, const PackageTarget& target) const;
- bool build_library(const PackageManifest& manifest) const;
- ::std::string build_build_script(const PackageManifest& manifest) const;
-
-private:
- ::helpers::path get_crate_path(const PackageManifest& manifest, const PackageTarget& target, const char** crate_type, ::std::string* out_crate_suffix) const;
- bool spawn_process_mrustc(const StringList& args, StringListKV env, const ::helpers::path& logfile) const;
- bool spawn_process(const char* exe_name, const StringList& args, const StringListKV& env, const ::helpers::path& logfile) const;
-
-
- Timestamp get_timestamp(const ::helpers::path& path) const;
-};
-
-class BuildList2
+class BuildList
{
struct Entry
{
const PackageManifest* package;
+ bool is_host;
::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);
+ BuildList(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);