diff options
Diffstat (limited to 'tools/minicargo/build.h')
-rw-r--r-- | tools/minicargo/build.h | 29 |
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); |