summaryrefslogtreecommitdiff
path: root/tools/minicargo/manifest.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/minicargo/manifest.h')
-rw-r--r--tools/minicargo/manifest.h35
1 files changed, 30 insertions, 5 deletions
diff --git a/tools/minicargo/manifest.h b/tools/minicargo/manifest.h
index 428a9721..d94a219b 100644
--- a/tools/minicargo/manifest.h
+++ b/tools/minicargo/manifest.h
@@ -122,6 +122,25 @@ struct PackageTarget
}
};
+class BuildScriptOutput
+{
+public:
+ // `minicargo:pre-build=make -C bar/`
+ // MiniCargo hack
+ ::std::vector<::std::string> pre_build_commands;
+
+ // cargo:rustc-link-search=foo/bar/baz
+ ::std::vector<::std::pair<const char*,::std::string>> rustc_link_search;
+ // cargo:rustc-link-lib=mysql
+ ::std::vector<::std::pair<const char*,::std::string>> rustc_link_lib;
+ // cargo:rustc-cfg=foo
+ ::std::vector<::std::string> rustc_cfg;
+ // cargo:rustc-flags=-l foo
+ ::std::vector<::std::string> rustc_flags;
+ // cargo:rustc-env=FOO=BAR
+ ::std::vector<::std::string> rustc_env;
+};
+
class PackageManifest
{
::std::string m_manifest_path;
@@ -135,11 +154,10 @@ class PackageManifest
::std::vector<PackageTarget> m_targets;
- struct BuildScript
- {
- };
+ BuildScriptOutput m_build_script_output;
PackageManifest();
+
public:
static PackageManifest load_from_toml(const ::std::string& path);
@@ -152,10 +170,17 @@ public:
const ::std::string& name() const {
return m_name;
}
- const ::std::string& build_script() const { return m_build_script; }
+ const ::std::string& build_script() const {
+ return m_build_script;
+ }
+ const BuildScriptOutput& build_script_output() const {
+ return m_build_script_output;
+ }
const ::std::vector<PackageRef>& dependencies() const {
return m_dependencies;
}
-
+
void load_dependencies(Repository& repo);
+
+ void load_build_script(const ::std::string& path);
};