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 serde::de::DeserializeOwned;
use std::collections::HashMap;
-use serde::de::DeserializeOwned;
-
-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}")),
}
}