feat: Add suse deps
Some checks are pending
/ cargo-fmtcheck (push) Waiting to run
/ cargo-clippy (push) Waiting to run
/ cargo-test (push) Waiting to run
/ appimage (push) Waiting to run

This commit is contained in:
Etch9 2024-09-26 21:51:14 +00:00 committed by GabMus
commit deed33bb0f
7 changed files with 128 additions and 28 deletions

View file

@ -1,4 +1,5 @@
use super::{
boost_deps::boost_deps,
common::{dep_cmake, dep_eigen, dep_gpp, dep_libglvnd, dep_ninja, dep_opencv},
DepType, Dependency, DependencyCheckResult,
};
@ -6,7 +7,7 @@ use crate::linux_distro::LinuxDistro;
use std::collections::HashMap;
fn basalt_deps() -> Vec<Dependency> {
vec![
let mut deps = vec![
dep_gpp(),
dep_cmake(),
dep_ninja(),
@ -20,6 +21,7 @@ fn basalt_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "liblz4-dev".into()),
(LinuxDistro::Fedora, "lz4-devel".into()),
(LinuxDistro::Alpine, "lz4-dev".into()),
(LinuxDistro::Suse, "liblz4-devel".into()),
]),
},
Dependency {
@ -31,31 +33,7 @@ fn basalt_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libepoxy-dev".into()),
(LinuxDistro::Fedora, "libepoxy-devel".into()),
(LinuxDistro::Alpine, "libepoxy-dev".into()),
]),
},
Dependency {
name: "boost".into(),
dep_type: DepType::SharedObject,
// just one of the many shared objects boost provides
filename: "libboost_system.so".into(),
packages: HashMap::from([
(LinuxDistro::Arch, "boost".into()),
(LinuxDistro::Debian, "libboost-all-dev".into()),
(LinuxDistro::Fedora, "boost".into()),
(LinuxDistro::Alpine, "boost".into()),
(LinuxDistro::Gentoo, "dev-libs/boost".into()),
]),
},
Dependency {
name: "boost-dev".into(),
dep_type: DepType::Include,
// just one of the many headers boost provides
filename: "boost/filesystem.hpp".into(),
packages: HashMap::from([
(LinuxDistro::Arch, "boost".into()),
(LinuxDistro::Debian, "libboost-all-dev".into()),
(LinuxDistro::Fedora, "boost-devel".into()),
(LinuxDistro::Alpine, "boost-dev".into()),
(LinuxDistro::Suse, "libepoxy-devel".into()),
]),
},
Dependency {
@ -68,6 +46,7 @@ fn basalt_deps() -> Vec<Dependency> {
(LinuxDistro::Fedora, "bzip2-devel".into()),
(LinuxDistro::Alpine, "bzip2".into()),
(LinuxDistro::Gentoo, "app-arch/bzip2".into()),
(LinuxDistro::Suse, "bzip2".into()),
]),
},
Dependency {
@ -80,6 +59,7 @@ fn basalt_deps() -> Vec<Dependency> {
(LinuxDistro::Fedora, "bzip2-devel".into()),
(LinuxDistro::Alpine, "bzip2-dev".into()),
(LinuxDistro::Gentoo, "app-arch/bzip2".into()),
(LinuxDistro::Suse, "libbz2-devel".into()),
]),
},
// Dependency {
@ -102,6 +82,7 @@ fn basalt_deps() -> Vec<Dependency> {
(LinuxDistro::Fedora, "fmt-devel".into()),
(LinuxDistro::Alpine, "fmt".into()),
(LinuxDistro::Gentoo, "dev-libs/libfmt".into()),
(LinuxDistro::Suse, "fmt-devel".into()),
]),
},
Dependency {
@ -113,6 +94,7 @@ fn basalt_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libfmt-dev".into()),
(LinuxDistro::Fedora, "fmt-devel".into()),
(LinuxDistro::Alpine, "fmt-dev".into()),
(LinuxDistro::Suse, "fmt-devel".into()),
]),
},
Dependency {
@ -124,6 +106,7 @@ fn basalt_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libglew-dev".into()),
(LinuxDistro::Fedora, "glew-devel".into()),
(LinuxDistro::Gentoo, "media-libs/glew".into()),
(LinuxDistro::Suse, "glew".into()),
]),
},
Dependency {
@ -134,6 +117,7 @@ fn basalt_deps() -> Vec<Dependency> {
(LinuxDistro::Arch, "glew".into()),
(LinuxDistro::Debian, "libglew-dev".into()),
(LinuxDistro::Fedora, "glew-devel".into()),
(LinuxDistro::Suse, "glew-devel".into()),
]),
},
Dependency {
@ -145,6 +129,7 @@ fn basalt_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libgtest-dev".into()),
(LinuxDistro::Fedora, "gtest-devel".into()),
(LinuxDistro::Gentoo, "dev-cpp/gtest".into()),
(LinuxDistro::Suse, "gtest".into()),
]),
},
Dependency {
@ -156,6 +141,7 @@ fn basalt_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libtbb-dev".into()),
(LinuxDistro::Fedora, "tbb-devel".into()),
(LinuxDistro::Gentoo, "dev-cpp/tbb".into()),
(LinuxDistro::Suse, "tbb-devel".into()),
]),
},
dep_opencv(),
@ -169,6 +155,7 @@ fn basalt_deps() -> Vec<Dependency> {
(LinuxDistro::Fedora, "python3".into()),
(LinuxDistro::Alpine, "python3".into()),
(LinuxDistro::Gentoo, "dev-lang/python".into()),
(LinuxDistro::Suse, "python311".into()),
]),
},
Dependency {
@ -181,9 +168,12 @@ fn basalt_deps() -> Vec<Dependency> {
(LinuxDistro::Fedora, "bc".into()),
(LinuxDistro::Alpine, "bc".into()),
(LinuxDistro::Gentoo, "sys-devel/bc".into()),
(LinuxDistro::Suse, "bc".into()),
]),
},
]
];
deps.extend(boost_deps());
deps
}
pub fn check_basalt_deps() -> Vec<DependencyCheckResult> {

View file

@ -0,0 +1,62 @@
use crate::linux_distro::LinuxDistro;
use super::{DepType, Dependency};
use std::collections::HashMap;
pub fn boost_deps() -> Vec<Dependency> {
[
// ("", "libboost_atomic-devel"),
// ("", "libboost_chrono-devel"),
// ("", "libboost_container-devel"),
// ("", "libboost_context-devel"),
// ("", "libboost_contract-devel"),
// ("", "libboost_coroutine-devel"),
("libboost_date_time.so", "libboost_date_time-devel"),
// ("", "libboost_fiber-devel"),
("libboost_filesystem.so.1.86.0", "libboost_filesystem-devel"),
// ("", "libboost_graph-devel"),
// ("", "libboost_graph_parallel-devel"),
// ("", "libboost_headers-devel"),
// ("", "libboost_iostreams-devel"),
// ("", "libboost_locale-devel"),
// ("", "libboost_log-devel"),
// ("", "libboost_math-devel"),
// ("", "libboost_mpi-devel"),
// ("", "libboost_mpi_python3-devel"),
// ("", "libboost_nowide-devel"),
// ("", "libboost_numpy3-devel"),
// ("", "libboost_process-devel"),
(
"libboost_program_options.so",
"libboost_program_options-devel",
),
// ("", "libboost_python3-devel"),
// ("", "libboost_random-devel"),
("libboost_regex.so", "libboost_regex-devel"),
("libboost_serialization.so", "libboost_serialization-devel"),
// ("", "libboost_stacktrace-devel"),
("libboost_system.so", "libboost_system-devel"),
// ("", "libboost_test-devel"),
// ("", "libboost_thread-devel"),
// ("", "libboost_timer-devel"),
// ("", "libboost_type_erasure-devel"),
// ("", "libboost_url1_86_0-devel"),
// ("", "libboost_wave-devel"),
]
.into_iter()
.map(|(name, package)| Dependency {
name: "boost".into(),
dep_type: DepType::SharedObject,
// just one of the many shared objects boost provides
filename: name.into(),
packages: HashMap::from([
(LinuxDistro::Arch, "boost".into()),
(LinuxDistro::Debian, "libboost-all-dev".into()),
(LinuxDistro::Fedora, "boost".into()),
(LinuxDistro::Alpine, "boost".into()),
(LinuxDistro::Gentoo, "dev-libs/boost".into()),
(LinuxDistro::Suse, package.into()),
]),
})
.collect()
}

View file

@ -15,6 +15,7 @@ pub fn dep_eigen() -> Dependency {
(LinuxDistro::Fedora, "eigen3-devel".into()),
(LinuxDistro::Alpine, "eigen-dev".into()),
(LinuxDistro::Gentoo, "dev-cpp/eigen".into()),
(LinuxDistro::Suse, "eigen3-devel".into()),
]),
}
}
@ -30,6 +31,7 @@ pub fn dep_cmake() -> Dependency {
(LinuxDistro::Fedora, "cmake".into()),
(LinuxDistro::Alpine, "cmake".into()),
(LinuxDistro::Gentoo, "dev-build/cmake".into()),
(LinuxDistro::Suse, "cmake".into()),
]),
}
}
@ -45,6 +47,7 @@ pub fn dep_git() -> Dependency {
(LinuxDistro::Fedora, "git".into()),
(LinuxDistro::Alpine, "git".into()),
(LinuxDistro::Gentoo, "dev-vcs/git".into()),
(LinuxDistro::Suse, "git".into()),
]),
}
}
@ -60,6 +63,7 @@ pub fn dep_ninja() -> Dependency {
(LinuxDistro::Fedora, "ninja-build".into()),
(LinuxDistro::Alpine, "ninja".into()),
(LinuxDistro::Gentoo, "dev-build/ninja".into()),
(LinuxDistro::Suse, "ninja".into()),
]),
}
}
@ -75,6 +79,7 @@ pub fn dep_glslang_validator() -> Dependency {
(LinuxDistro::Fedora, "glslang-devel".into()),
(LinuxDistro::Alpine, "glslang".into()),
(LinuxDistro::Gentoo, "dev-util/glslang".into()),
(LinuxDistro::Suse, "glslang-devel".into()),
]),
}
}
@ -90,6 +95,7 @@ pub fn dep_gcc() -> Dependency {
(LinuxDistro::Fedora, "gcc".into()),
(LinuxDistro::Alpine, "gcc".into()),
(LinuxDistro::Gentoo, "sys-devel/gcc".into()),
(LinuxDistro::Suse, "gcc".into()),
]),
}
}
@ -105,6 +111,7 @@ pub fn dep_gpp() -> Dependency {
(LinuxDistro::Fedora, "gcc-c++".into()),
(LinuxDistro::Alpine, "g++".into()),
(LinuxDistro::Gentoo, "sys-devel/gcc".into()),
(LinuxDistro::Suse, "gcc-c++".into()),
]),
}
}
@ -120,6 +127,7 @@ pub fn dep_libdrm() -> Dependency {
(LinuxDistro::Fedora, "libdrm-devel".into()),
(LinuxDistro::Alpine, "libdrm-dev".into()),
(LinuxDistro::Gentoo, "x11-libs/libdrm".into()),
(LinuxDistro::Suse, "libdrm-devel".into()),
]),
}
}
@ -135,6 +143,7 @@ pub fn dep_openxr() -> Dependency {
(LinuxDistro::Fedora, "openxr-devel".into()),
(LinuxDistro::Alpine, "openxr-dev".into()),
(LinuxDistro::Gentoo, "media-libs/openxr".into()),
(LinuxDistro::Suse, "OpenXR-SDK-devel".into()),
]),
}
}
@ -149,6 +158,7 @@ pub fn dep_vulkan_icd_loader() -> Dependency {
(LinuxDistro::Debian, "libvulkan-dev".into()),
(LinuxDistro::Fedora, "vulkan-loader-devel".into()),
(LinuxDistro::Gentoo, "media-libs/vulkan-loader".into()),
(LinuxDistro::Suse, "vulkan-devel".into()), // unsure about this one
]),
}
}
@ -162,6 +172,7 @@ pub fn dep_vulkan_headers() -> Dependency {
(LinuxDistro::Arch, "vulkan-headers".into()),
(LinuxDistro::Debian, "libvulkan-dev".into()),
(LinuxDistro::Fedora, "vulkan-devel".into()),
(LinuxDistro::Suse, "vulkan-headers".into()),
]),
}
}
@ -177,6 +188,7 @@ pub fn dep_pkexec() -> Dependency {
(LinuxDistro::Fedora, "polkit".into()),
(LinuxDistro::Alpine, "polkit".into()),
(LinuxDistro::Gentoo, "sys-auth/polkit".into()),
(LinuxDistro::Suse, "polkit".into()),
]),
}
}
@ -185,12 +197,13 @@ pub fn dep_opencv() -> Dependency {
Dependency {
name: "opencv".into(),
dep_type: DepType::Include,
filename: "opencv4/opencv2/core/hal/hal.hpp".into(),
filename: "opencv2/core/hal/hal.hpp".into(),
packages: HashMap::from([
(LinuxDistro::Arch, "opencv".into()),
(LinuxDistro::Debian, "libopencv-dev".into()),
(LinuxDistro::Fedora, "opencv-devel".into()),
(LinuxDistro::Gentoo, "media-libs/opencv".into()),
(LinuxDistro::Suse, "opencv-devel".into()),
]),
}
}
@ -205,6 +218,7 @@ pub fn dep_libudev() -> Dependency {
(LinuxDistro::Debian, "libudev-dev".into()),
(LinuxDistro::Fedora, "systemd-devel".into()),
(LinuxDistro::Gentoo, "virtual/libudev".into()),
(LinuxDistro::Suse, "libudev1".into()),
]),
}
}
@ -221,6 +235,7 @@ pub fn dep_libglvnd() -> Dependency {
// WARN: can't find anything exact for alpine, mesa-dev offers
// GL/gl.h hopefully that's the only one needed
(LinuxDistro::Alpine, "mesa-dev".into()),
(LinuxDistro::Suse, "libglvnd-devel".into()),
]),
}
}
@ -236,6 +251,7 @@ pub fn dep_libxcb() -> Dependency {
(LinuxDistro::Fedora, "libxcb-devel".into()),
(LinuxDistro::Gentoo, "x11-libs/libxcb".into()),
(LinuxDistro::Alpine, "libxcb-dev".into()),
(LinuxDistro::Suse, "libxcb-devel".into()),
]),
}
}
@ -251,6 +267,7 @@ pub fn dep_libx11() -> Dependency {
(LinuxDistro::Fedora, "libX11-devel".into()),
(LinuxDistro::Gentoo, "x11-libs/libX11".into()),
(LinuxDistro::Alpine, "libx11-dev".into()),
(LinuxDistro::Suse, "libX11-devel".into()),
]),
}
}
@ -265,6 +282,7 @@ pub fn dep_libxrandr() -> Dependency {
(LinuxDistro::Debian, "libxrandr-dev".into()),
(LinuxDistro::Fedora, "libXrandr-devel".into()),
(LinuxDistro::Alpine, "libxrandr-dev".into()),
(LinuxDistro::Suse, "libXrandr-devel".into()),
]),
}
}
@ -280,6 +298,7 @@ pub fn dep_adb() -> Dependency {
(LinuxDistro::Fedora, "android-tools".into()),
(LinuxDistro::Alpine, "android-tools".into()),
(LinuxDistro::Gentoo, "dev-util/android-tools".into()),
(LinuxDistro::Suse, "android-tools".into()),
]),
}
}

View file

@ -15,6 +15,7 @@ fn mercury_deps() -> Vec<Dependency> {
(LinuxDistro::Fedora, "jq".into()),
(LinuxDistro::Alpine, "jq".into()),
(LinuxDistro::Gentoo, "app-misc/jq".into()),
(LinuxDistro::Suse, "jq".into()),
]),
},
Dependency {
@ -27,6 +28,7 @@ fn mercury_deps() -> Vec<Dependency> {
(LinuxDistro::Fedora, "git-lfs".into()),
(LinuxDistro::Alpine, "git-lfs".into()),
(LinuxDistro::Gentoo, "dev-vcs/git-lfs".into()),
(LinuxDistro::Suse, "git-lfs".into()),
]),
},
]

View file

@ -1,4 +1,5 @@
pub mod basalt_deps;
pub mod boost_deps;
pub mod common;
pub mod libsurvive_deps;
pub mod mercury_deps;
@ -128,6 +129,15 @@ fn include_paths() -> Vec<String> {
"/usr/include/ffmpeg".into(),
"/usr/include/x86_64-linux-gnu".into(),
"/usr/include/aarch64-linux-gnu".into(),
"/usr/include/opencv4".into(),
"/usr/local/include/opencv4".into(),
"/usr/include/ffmpeg/libavcodec".into(),
"/usr/include/ffmpeg/libavfilter".into(),
"/usr/include/ffmpeg/libavformat".into(),
"/usr/include/ffmpeg/libavutil".into(),
"/usr/include/ffmpeg/libpostproc".into(),
"/usr/include/ffmpeg/libswresample".into(),
"/usr/include/ffmpeg/libswscale".into(),
]
}

View file

@ -26,6 +26,7 @@ fn monado_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libwayland-dev".into()),
(LinuxDistro::Fedora, "wayland-devel".into()),
(LinuxDistro::Gentoo, "dev-libs/wayland".into()),
(LinuxDistro::Suse, "wayland-devel".into()),
]),
},
dep_cmake(),
@ -44,6 +45,7 @@ fn monado_deps() -> Vec<Dependency> {
(LinuxDistro::Fedora, "glslc".into()),
(LinuxDistro::Alpine, "shaderc".into()),
(LinuxDistro::Gentoo, "media-libs/shaderc".into()),
(LinuxDistro::Suse, "shaderc".into()),
]),
},
dep_glslang_validator(),
@ -56,6 +58,7 @@ fn monado_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libsdl2-dev".into()),
(LinuxDistro::Fedora, "SDL2-devel".into()),
(LinuxDistro::Gentoo, "media-libs/libsdl2".into()),
(LinuxDistro::Suse, "SDL2-devel".into()),
]),
},
dep_libudev(),

View file

@ -33,6 +33,7 @@ fn wivrn_deps() -> Vec<Dependency> {
(LinuxDistro::Fedora, "patch".into()),
(LinuxDistro::Alpine, "patch".into()),
(LinuxDistro::Gentoo, "sys-devel/patch".into()),
(LinuxDistro::Suse, "patch".into()),
]),
},
Dependency {
@ -44,6 +45,7 @@ fn wivrn_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libx264-dev".into()),
(LinuxDistro::Fedora, "x264-devel".into()),
(LinuxDistro::Gentoo, "media-libs/x264".into()),
(LinuxDistro::Suse, "libx264-devel".into()),
]),
},
Dependency {
@ -55,6 +57,7 @@ fn wivrn_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libavahi-client-dev".into()),
(LinuxDistro::Fedora, "avahi-devel".into()),
(LinuxDistro::Gentoo, "net-dns/avahi".into()),
(LinuxDistro::Suse, "libavahi-devel".into()),
]),
},
Dependency {
@ -66,6 +69,7 @@ fn wivrn_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libpulse-dev".into()),
(LinuxDistro::Fedora, "pulseaudio-libs-devel".into()),
(LinuxDistro::Gentoo, "media-libs/libpulse".into()),
(LinuxDistro::Suse, "libpulse-devel".into()),
]),
},
dep_eigen(),
@ -78,6 +82,7 @@ fn wivrn_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "nlohmann-json3-dev".into()),
(LinuxDistro::Fedora, "json-devel".into()),
(LinuxDistro::Gentoo, "dev-cpp/nlohmann_json".into()),
(LinuxDistro::Suse, "nlohmann_json-devel".into()),
]),
},
Dependency {
@ -89,6 +94,7 @@ fn wivrn_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libavcodec-dev".into()),
(LinuxDistro::Fedora, "ffmpeg-devel".into()),
(LinuxDistro::Gentoo, "media-video/ffmpeg".into()),
(LinuxDistro::Suse, "ffmpeg-6-libavcodec-devel".into()),
]),
},
Dependency {
@ -100,6 +106,7 @@ fn wivrn_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libavfilter-dev".into()),
(LinuxDistro::Fedora, "ffmpeg-devel".into()),
(LinuxDistro::Gentoo, "media-video/ffmpeg".into()),
(LinuxDistro::Suse, "ffmpeg-6-libavfilter-devel".into()),
]),
},
Dependency {
@ -111,6 +118,7 @@ fn wivrn_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libswscale-dev".into()),
(LinuxDistro::Fedora, "ffmpeg-devel".into()),
(LinuxDistro::Gentoo, "media-video/ffmpeg".into()),
(LinuxDistro::Suse, "ffmpeg-6-libswscale-devel".into()),
]),
},
Dependency {
@ -121,6 +129,7 @@ fn wivrn_deps() -> Vec<Dependency> {
(LinuxDistro::Arch, "ffmpeg".into()),
(LinuxDistro::Debian, "libavutil-dev".into()),
(LinuxDistro::Fedora, "ffmpeg-devel".into()),
(LinuxDistro::Suse, "ffmpeg-6-libavutil-devel".into()),
]),
},
dep_glslang_validator(),
@ -134,6 +143,7 @@ fn wivrn_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libgstreamer1.0-dev".into()),
(LinuxDistro::Fedora, "gstreamer1-devel".into()),
(LinuxDistro::Gentoo, "media-libs/gstreamer".into()),
(LinuxDistro::Suse, "gstreamer-devel".into()),
]),
},
Dependency {
@ -145,6 +155,7 @@ fn wivrn_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libgstreamer1.0-dev".into()),
(LinuxDistro::Fedora, "gstreamer1-plugins-base-devel".into()),
(LinuxDistro::Gentoo, "media-libs/gst-plugins-base".into()),
(LinuxDistro::Suse, "gstreamer-plugins-base-devel".into()),
]),
},
Dependency {
@ -156,6 +167,7 @@ fn wivrn_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libsystemd-dev".into()),
(LinuxDistro::Fedora, "systemd-devel".into()),
(LinuxDistro::Gentoo, "sys-apps/systemd".into()),
(LinuxDistro::Suse, "systemd-devel".into()),
]),
},
Dependency {
@ -167,6 +179,7 @@ fn wivrn_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libva-dev".into()),
(LinuxDistro::Fedora, "libva-devel".into()),
(LinuxDistro::Gentoo, "media-libs/libva".into()),
(LinuxDistro::Suse, "libva-devel".into()),
]),
},
Dependency {
@ -178,6 +191,7 @@ fn wivrn_deps() -> Vec<Dependency> {
(LinuxDistro::Debian, "libcli11-dev".into()),
(LinuxDistro::Fedora, "cli11-devel".into()),
(LinuxDistro::Gentoo, "dev-cpp/cli11".into()),
(LinuxDistro::Suse, "cli11-devel".into()),
]),
},
]