diff --git a/src/depcheck/basalt_deps.rs b/src/depcheck/basalt_deps.rs index 099d34d..57c2a63 100644 --- a/src/depcheck/basalt_deps.rs +++ b/src/depcheck/basalt_deps.rs @@ -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 { - vec![ + let mut deps = vec![ dep_gpp(), dep_cmake(), dep_ninja(), @@ -20,6 +21,7 @@ fn basalt_deps() -> Vec { (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 { (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 { (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 { (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 { (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 { (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 { (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 { (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 { (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 { (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 { (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 { (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 { diff --git a/src/depcheck/boost_deps.rs b/src/depcheck/boost_deps.rs new file mode 100644 index 0000000..990bffe --- /dev/null +++ b/src/depcheck/boost_deps.rs @@ -0,0 +1,62 @@ +use crate::linux_distro::LinuxDistro; + +use super::{DepType, Dependency}; +use std::collections::HashMap; + +pub fn boost_deps() -> Vec { + [ + // ("", "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() +} diff --git a/src/depcheck/common.rs b/src/depcheck/common.rs index 8a4d0a4..8ae494b 100644 --- a/src/depcheck/common.rs +++ b/src/depcheck/common.rs @@ -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()), ]), } } diff --git a/src/depcheck/mercury_deps.rs b/src/depcheck/mercury_deps.rs index e4cc7c9..cad3c80 100644 --- a/src/depcheck/mercury_deps.rs +++ b/src/depcheck/mercury_deps.rs @@ -15,6 +15,7 @@ fn mercury_deps() -> Vec { (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 { (LinuxDistro::Fedora, "git-lfs".into()), (LinuxDistro::Alpine, "git-lfs".into()), (LinuxDistro::Gentoo, "dev-vcs/git-lfs".into()), + (LinuxDistro::Suse, "git-lfs".into()), ]), }, ] diff --git a/src/depcheck/mod.rs b/src/depcheck/mod.rs index a94b85f..54da91d 100644 --- a/src/depcheck/mod.rs +++ b/src/depcheck/mod.rs @@ -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 { "/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(), ] } diff --git a/src/depcheck/monado_deps.rs b/src/depcheck/monado_deps.rs index 597da53..c5c4974 100644 --- a/src/depcheck/monado_deps.rs +++ b/src/depcheck/monado_deps.rs @@ -26,6 +26,7 @@ fn monado_deps() -> Vec { (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 { (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 { (LinuxDistro::Debian, "libsdl2-dev".into()), (LinuxDistro::Fedora, "SDL2-devel".into()), (LinuxDistro::Gentoo, "media-libs/libsdl2".into()), + (LinuxDistro::Suse, "SDL2-devel".into()), ]), }, dep_libudev(), diff --git a/src/depcheck/wivrn_deps.rs b/src/depcheck/wivrn_deps.rs index f8b53ac..afebd5e 100644 --- a/src/depcheck/wivrn_deps.rs +++ b/src/depcheck/wivrn_deps.rs @@ -33,6 +33,7 @@ fn wivrn_deps() -> Vec { (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 { (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 { (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 { (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 { (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 { (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 { (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 { (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 { (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 { (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 { (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 { (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 { (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 { (LinuxDistro::Debian, "libcli11-dev".into()), (LinuxDistro::Fedora, "cli11-devel".into()), (LinuxDistro::Gentoo, "dev-cpp/cli11".into()), + (LinuxDistro::Suse, "cli11-devel".into()), ]), }, ]