diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-10-13 21:02:57 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-10-13 21:04:50 +0200 |
commit | 43ee90a1de0e07d8bc8f30257fd981e52896fbce (patch) | |
tree | f1ce887e919c02d1f066b7eb6af5632ec4112ac8 | |
parent | 183c868d599dc09bde7c191b9fc9ada81c5c26fd (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.toml | 2 | ||||
-rw-r--r-- | examples/packages/example_2/pkg.toml | 2 | ||||
-rw-r--r-- | src/package/dependency.rs | 8 | ||||
-rw-r--r-- | src/package/package.rs | 9 |
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")] |