mirror of
https://gitlab.com/gabmus/envision.git
synced 2025-04-20 03:24:52 +00:00
feat: more depchecks and packages
This commit is contained in:
parent
96d99f2480
commit
ff3e408cf4
3 changed files with 94 additions and 35 deletions
|
@ -50,21 +50,28 @@ impl Display for DependencyCheckResult {
|
|||
|
||||
fn shared_obj_paths() -> Vec<String> {
|
||||
vec![
|
||||
"/lib".to_string(),
|
||||
"/usr/lib".to_string(),
|
||||
"/usr/lib64".to_string(),
|
||||
"/usr/local/lib".to_string(),
|
||||
"/usr/local/lib64".to_string(),
|
||||
"/usr/lib/x86_64-linux-gnu".to_string(),
|
||||
"/usr/lib/aarch64-linux-gnu".to_string(),
|
||||
"/lib/x86_64-linux-gnu".to_string(),
|
||||
"/lib/aarch64-linux-gnu".to_string(),
|
||||
"/app/lib".to_string(),
|
||||
"/lib".into(),
|
||||
"/usr/lib".into(),
|
||||
"/usr/lib64".into(),
|
||||
"/usr/local/lib".into(),
|
||||
"/usr/local/lib64".into(),
|
||||
"/usr/lib/x86_64-linux-gnu".into(),
|
||||
"/usr/lib/aarch64-linux-gnu".into(),
|
||||
"/lib/x86_64-linux-gnu".into(),
|
||||
"/lib/aarch64-linux-gnu".into(),
|
||||
"/app/lib".into(),
|
||||
]
|
||||
}
|
||||
|
||||
fn include_paths() -> Vec<String> {
|
||||
vec!["/usr/include".to_string(), "/usr/local/include".to_string()]
|
||||
vec![
|
||||
"/usr/include".into(),
|
||||
"/usr/local/include".into(),
|
||||
// fedora puts avcodec here
|
||||
"/usr/include/ffmpeg".into(),
|
||||
"/usr/include/x86_64-linux-gnu".into(),
|
||||
"/usr/include/aarch64-linux-gnu".into(),
|
||||
]
|
||||
}
|
||||
|
||||
pub fn check_dependency(dep: Dependency) -> bool {
|
||||
|
|
|
@ -19,69 +19,116 @@ fn wivrn_deps() -> Vec<Dependency> {
|
|||
]),
|
||||
},
|
||||
Dependency {
|
||||
name: "avahi-client-dev".into(),
|
||||
name: "avahi".into(),
|
||||
dep_type: DepType::Include,
|
||||
filename: "avahi-client/client.h".into(),
|
||||
packages: HashMap::from([]), // TODO
|
||||
packages: HashMap::from([
|
||||
(LinuxDistro::Arch, "avahi".into()),
|
||||
(LinuxDistro::Debian, "libavahi-client-dev".into()),
|
||||
(LinuxDistro::Fedora, "avahi-devel".into()),
|
||||
]),
|
||||
},
|
||||
Dependency {
|
||||
name: "libpulse-dev".into(),
|
||||
dep_type: DepType::Include,
|
||||
filename: "pulse/context.h".into(),
|
||||
packages: HashMap::from([]), // TODO
|
||||
packages: HashMap::from([
|
||||
(LinuxDistro::Arch, "libpulse".into()),
|
||||
(LinuxDistro::Debian, "libpulse-dev".into()),
|
||||
(LinuxDistro::Fedora, "pulseaudio-libs-devel".into()),
|
||||
]),
|
||||
},
|
||||
dep_eigen(),
|
||||
Dependency {
|
||||
name: "nlohmann-json".into(),
|
||||
dep_type: DepType::Include,
|
||||
filename: "nlohmann/json.hpp".into(),
|
||||
packages: HashMap::from([]), // TODO
|
||||
packages: HashMap::from([
|
||||
(LinuxDistro::Arch, "nlohmann-json".into()),
|
||||
(LinuxDistro::Debian, "nlohmann-json3-dev".into()),
|
||||
(LinuxDistro::Fedora, "json-devel".into()),
|
||||
]),
|
||||
},
|
||||
Dependency {
|
||||
name: "libavcodec-dev".into(),
|
||||
dep_type: DepType::Include,
|
||||
filename: "libavcodec/avcodec.h".into(),
|
||||
packages: HashMap::from([
|
||||
(LinuxDistro::Arch, "ffmpeg".into()),
|
||||
(LinuxDistro::Debian, "libavcodec-dev".into()),
|
||||
(LinuxDistro::Fedora, "libavcodec-devel".into()),
|
||||
]),
|
||||
},
|
||||
Dependency {
|
||||
name: "libavfilter-dev".into(),
|
||||
dep_type: DepType::Include,
|
||||
filename: "libavfilter/avfilter.h".into(),
|
||||
packages: HashMap::from([
|
||||
(LinuxDistro::Arch, "ffmpeg".into()),
|
||||
(LinuxDistro::Debian, "libavfilter-dev".into()),
|
||||
(LinuxDistro::Fedora, "libavfilter-devel".into()),
|
||||
]),
|
||||
},
|
||||
Dependency {
|
||||
name: "libswscale-dev".into(),
|
||||
dep_type: DepType::Include,
|
||||
filename: "libswscale/swscale.h".into(),
|
||||
packages: HashMap::from([
|
||||
(LinuxDistro::Arch, "ffmpeg".into()),
|
||||
(LinuxDistro::Debian, "libswscale-dev".into()),
|
||||
(LinuxDistro::Fedora, "libswscale-devel".into()),
|
||||
]),
|
||||
},
|
||||
// Dependency {
|
||||
// name: "libavcodec-dev".into(),
|
||||
// dep_type: DepType::Include,
|
||||
// filename: "libavcodec/avcodec.h".into(),
|
||||
// },
|
||||
// Dependency {
|
||||
// name: "libavfilter-dev".into(),
|
||||
// dep_type: DepType::Include,
|
||||
// filename: "libavfilter/avfilter.h".into(),
|
||||
// },
|
||||
// Dependency {
|
||||
// name: "libswscale-dev".into(),
|
||||
// dep_type: DepType::Include,
|
||||
// filename: "libswscale/swscale.h".into(),
|
||||
// },
|
||||
dep_glslang_validator(),
|
||||
Dependency {
|
||||
name: "libudev".into(),
|
||||
dep_type: DepType::Include,
|
||||
filename: "libudev.h".into(),
|
||||
packages: HashMap::from([]), // TODO
|
||||
packages: HashMap::from([
|
||||
(LinuxDistro::Arch, "systemd-libs".into()),
|
||||
(LinuxDistro::Debian, "libudev-dev".into()),
|
||||
(LinuxDistro::Fedora, "systemd-devel".into()),
|
||||
]),
|
||||
},
|
||||
Dependency {
|
||||
name: "gstreamer".into(),
|
||||
dep_type: DepType::SharedObject,
|
||||
filename: "libgstreamer-1.0.so".into(),
|
||||
packages: HashMap::from([]), // TODO
|
||||
packages: HashMap::from([
|
||||
(LinuxDistro::Arch, "gstreamer".into()),
|
||||
(LinuxDistro::Debian, "libgstreamer1.0-dev".into()),
|
||||
(LinuxDistro::Fedora, "gstreamer1-devel".into()),
|
||||
]),
|
||||
},
|
||||
Dependency {
|
||||
name: "gst-plugins-base-libs".into(),
|
||||
dep_type: DepType::SharedObject,
|
||||
filename: "pkgconfig/gstreamer-app-1.0.pc".into(),
|
||||
packages: HashMap::from([]), // TODO
|
||||
packages: HashMap::from([
|
||||
(LinuxDistro::Arch, "gst-plugins-base-libs".into()),
|
||||
(LinuxDistro::Debian, "libgstreamer1.0-dev".into()),
|
||||
(LinuxDistro::Fedora, "gstreamer1-devel".into()),
|
||||
]),
|
||||
},
|
||||
Dependency {
|
||||
name: "systemd-dev".into(),
|
||||
dep_type: DepType::Include,
|
||||
filename: "systemd/sd-daemon.h".into(),
|
||||
packages: HashMap::from([]), // TODO
|
||||
packages: HashMap::from([
|
||||
(LinuxDistro::Arch, "systemd-libs".into()),
|
||||
(LinuxDistro::Debian, "libsystemd-dev".into()),
|
||||
(LinuxDistro::Fedora, "systemd-devel".into()),
|
||||
]),
|
||||
},
|
||||
Dependency {
|
||||
name: "libva-dev".into(),
|
||||
dep_type: DepType::Include,
|
||||
filename: "va/va.h".into(),
|
||||
packages: HashMap::from([]), // TODO
|
||||
packages: HashMap::from([
|
||||
(LinuxDistro::Arch, "libva".into()),
|
||||
(LinuxDistro::Debian, "libva-dev".into()),
|
||||
(LinuxDistro::Fedora, "libva-devel".into()),
|
||||
]),
|
||||
},
|
||||
]
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ pub enum LinuxDistro {
|
|||
Arch,
|
||||
Debian,
|
||||
Fedora,
|
||||
Gentoo,
|
||||
}
|
||||
|
||||
pub fn get_distro() -> Option<LinuxDistro> {
|
||||
|
@ -26,12 +27,16 @@ pub fn get_distro() -> Option<LinuxDistro> {
|
|||
|| buf.contains("ubuntu")
|
||||
|| buf.contains("mint")
|
||||
|| buf.contains("elementary")
|
||||
|| buf.contains("pop")
|
||||
{
|
||||
return Some(LinuxDistro::Debian);
|
||||
}
|
||||
if buf.contains("fedora") || buf.contains("nobara") {
|
||||
return Some(LinuxDistro::Fedora);
|
||||
}
|
||||
if buf.contains("gentoo") {
|
||||
return Some(LinuxDistro::Gentoo);
|
||||
}
|
||||
if buf.contains("alpine") || buf.contains("postmarket") {
|
||||
return Some(LinuxDistro::Alpine);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue