summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-10-13 21:02:57 +0200
committerMatthias Beyer <mail@beyermatthias.de>2020-10-13 21:04:50 +0200
commit43ee90a1de0e07d8bc8f30257fd981e52896fbce (patch)
treef1ce887e919c02d1f066b7eb6af5632ec4112ac8
parent183c868d599dc09bde7c191b9fc9ada81c5c26fd (diff)
Differentiate between system-buildtime and system-runtime dependencies
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--examples/packages/example_1/pkg.toml2
-rw-r--r--examples/packages/example_2/pkg.toml2
-rw-r--r--src/package/dependency.rs8
-rw-r--r--src/package/package.rs9
4 files changed, 20 insertions, 1 deletions
diff --git a/examples/packages/example_1/pkg.toml b/examples/packages/example_1/pkg.toml
index 1d206c1..ab76e07 100644
--- a/examples/packages/example_1/pkg.toml
+++ b/examples/packages/example_1/pkg.toml
@@ -14,6 +14,8 @@ patches = []
[dependencies]
system = []
system_dep_script = ""
+system_runtime = []
+system_runtime_dep_script = ""
build = []
build_dep_script = ""
runtime = []
diff --git a/examples/packages/example_2/pkg.toml b/examples/packages/example_2/pkg.toml
index fd1d861..86a3e1d 100644
--- a/examples/packages/example_2/pkg.toml
+++ b/examples/packages/example_2/pkg.toml
@@ -14,6 +14,8 @@ patches = []
[dependencies]
system = []
system_dep_script = ""
+system_runtime = []
+system_runtime_dep_script = ""
build = []
build_dep_script = ""
runtime = []
diff --git a/src/package/dependency.rs b/src/package/dependency.rs
index 14146c3..9edb783 100644
--- a/src/package/dependency.rs
+++ b/src/package/dependency.rs
@@ -7,15 +7,23 @@ use anyhow::anyhow;
use crate::package::PackageName;
use crate::package::PackageVersionConstraint;
+/// A dependency that can be installed from the system and is only required during build
+#[derive(Deserialize, Clone, Debug, Hash, Eq, PartialEq, Ord, PartialOrd)]
+#[serde(transparent)]
+pub struct SystemBuildDependency(String);
+/// A dependency that can be installed from the system and is required during runtime
#[derive(Deserialize, Clone, Debug, Hash, Eq, PartialEq, Ord, PartialOrd)]
#[serde(transparent)]
pub struct SystemDependency(String);
+
+/// A dependency that is packaged and is only required during build time
#[derive(Deserialize, Clone, Debug, Hash, Eq, PartialEq, Ord, PartialOrd)]
#[serde(transparent)]
pub struct BuildDependency(String);
+/// A dependency that is packaged and is required during runtime
#[derive(Deserialize, Clone, Debug, Hash, Eq, PartialEq, Ord, PartialOrd)]
#[serde(transparent)]
pub struct Dependency(String);
diff --git a/src/package/package.rs b/src/package/package.rs
index 14239c0..a7b1b85 100644
--- a/src/package/package.rs
+++ b/src/package/package.rs
@@ -120,13 +120,20 @@ pub struct PackageFlags {
#[derive(Clone, Debug, Deserialize, Getters)]
pub struct Dependencies {
#[getset(get = "pub")]
- system: Vec<SystemDependency>,
+ system: Vec<SystemBuildDependency>,
#[getset(get = "pub")]
#[serde(rename = "system_dep_script")]
system_dependencies_script: Option<PathBuf>,
#[getset(get = "pub")]
+ system_runtime: Vec<SystemDependency>,
+
+ #[getset(get = "pub")]
+ #[serde(rename = "system_runtime_dep_script")]
+ system_runtime_dependencies_script: Option<PathBuf>,
+
+ #[getset(get = "pub")]
build: Vec<BuildDependency>,
#[getset(get = "pub")]