From 32c65408a7dfffbde7f78a55b8ab8b4a94e39810 Mon Sep 17 00:00:00 2001 From: Philip Kristoffersen Date: Wed, 28 Dec 2022 10:37:11 +0100 Subject: [PATCH] Only load platforms for OS (#288) * Only load platforms for OS * Update to version 1.7.10 --- Cargo.lock | 2 +- Cargo.toml | 6 +- flatpak/io.github.philipk.boilr.appdata.xml | 11 +++- src/platforms/mod.rs | 20 +++++-- src/platforms/platforms_load.rs | 65 +++++++++++++-------- 5 files changed, 69 insertions(+), 35 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5a8ed92..84b3f3b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -265,7 +265,7 @@ dependencies = [ [[package]] name = "boilr" -version = "1.7.9" +version = "1.7.10" dependencies = [ "base64 0.20.0", "chrono", diff --git a/Cargo.toml b/Cargo.toml index 065787f..a7b72b0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] edition = "2021" name = "boilr" -version = "1.7.9" +version = "1.7.10" [dependencies] base64 = "^0.20.0" @@ -21,9 +21,6 @@ eyre = "^0.6.8" color-eyre = "^0.6.2" dyn-clone = "^1.0.10" -[dependencies.sqlite] -version = "^0.30.3" - [dependencies.dashmap] features = ["serde"] version = "^5.4.0" @@ -65,6 +62,7 @@ winres = "^0.1.12" [target."cfg(windows)".dependencies] winreg = "^0.10.1" +sqlite = "^0.30.3" [features] # This feature is enabled when building for a flatpak environment diff --git a/flatpak/io.github.philipk.boilr.appdata.xml b/flatpak/io.github.philipk.boilr.appdata.xml index fb37ab6..7c099db 100644 --- a/flatpak/io.github.philipk.boilr.appdata.xml +++ b/flatpak/io.github.philipk.boilr.appdata.xml @@ -25,7 +25,16 @@ https://hughsie.github.io/oars/index.html --> - + + +
    +
  • Only load platforms that are available for OS
  • +
+
+
+ + +
  • Fix import button hidden on steam deck in game mode
  • diff --git a/src/platforms/mod.rs b/src/platforms/mod.rs index b85feaf..e07ba98 100644 --- a/src/platforms/mod.rs +++ b/src/platforms/mod.rs @@ -1,18 +1,28 @@ -mod amazon; +#[cfg(target_family = "unix")] mod bottles; -mod egs; +#[cfg(target_family = "unix")] mod flatpak; -mod gog; +#[cfg(target_family = "unix")] mod heroic; -mod itch; +#[cfg(target_family = "unix")] mod legendary; +#[cfg(target_family = "unix")] mod lutris; +#[cfg(target_family = "unix")] +mod minigalaxy; + +#[cfg(not(target_family = "unix"))] +mod amazon; + + +mod gog; +mod itch; mod origin; mod platform; mod platforms_load; mod uplay; -mod minigalaxy; +mod egs; pub(crate) use platform::*; pub(crate) use gog::get_gog_shortcuts_from_game_folders; diff --git a/src/platforms/platforms_load.rs b/src/platforms/platforms_load.rs index 57cc0ca..13263f9 100644 --- a/src/platforms/platforms_load.rs +++ b/src/platforms/platforms_load.rs @@ -1,23 +1,9 @@ -use std::collections::HashMap; - use serde::de::DeserializeOwned; +use std::collections::HashMap; -use crate::settings::load_setting_sections; - -use super::amazon::AmazonPlatform; -use super::bottles::BottlesPlatform; -use super::egs::EpicPlatform; -use super::flatpak::FlatpakPlatform; -use super::gog::GogPlatform; -use super::heroic::HeroicPlatform; -use super::itch::ItchPlatform; -use super::legendary::LegendaryPlatform; -use super::lutris::LutrisPlatform; -use super::minigalaxy::MiniGalaxyPlatform; -use super::origin::OriginPlatform; -use super::uplay::UplayPlatform; use super::GamesPlatform; +use crate::settings::load_setting_sections; const PLATFORM_NAMES: [&str; 12] = [ "amazon", "bottles", @@ -30,7 +16,7 @@ const PLATFORM_NAMES: [&str; 12] = [ "lutris", "origin", "uplay", - "minigalaxy" + "minigalaxy", ]; pub type Platforms = Vec>; @@ -41,19 +27,50 @@ pub fn load_platform, B: AsRef>( ) -> eyre::Result> { let name = name.as_ref(); let s = settings_string.as_ref(); + + #[cfg(not(target_family = "unix"))] + { + //Windows only platforms + use super::amazon::AmazonPlatform; + match name { + "amazon" => return load::(s), + _ => {} + } + } + + #[cfg(target_family = "unix")] + { + use super::bottles::BottlesPlatform; + use super::flatpak::FlatpakPlatform; + use super::heroic::HeroicPlatform; + use super::legendary::LegendaryPlatform; + use super::lutris::LutrisPlatform; + use super::minigalaxy::MiniGalaxyPlatform; + //Linux only platforms + match name { + "bottles" => return load::(s), + "flatpak" => return load::(s), + "minigalaxy" => return load::(s), + "legendary" => return load::(s), + "lutris" => return load::(s), + "heroic" => return load::(s), + _ => {} + } + } + + //Common platforms + use super::egs::EpicPlatform; + use super::gog::GogPlatform; + use super::itch::ItchPlatform; + use super::origin::OriginPlatform; + use super::uplay::UplayPlatform; + match name { - "amazon" => load::(s), - "bottles" => load::(s), "epic_games" => load::(s), "uplay" => load::(s), "itch" => load::(s), - "flatpak" => load::(s), "gog" => load::(s), - "heroic" => load::(s), - "legendary" => load::(s), - "lutris" => load::(s), "origin" => load::(s), - "minigalaxy" => load::(s), _ => Err(eyre::format_err!("Unknown platform named {name}")), } }