[gnome-games/wip/exalm/dolphin-settings: 1/6] retro-runner: Use global system directory if exists




commit 093af2a3d7edc015257cc34764ccd4ca15ab9447
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Mon Apr 12 02:28:24 2021 +0500

    retro-runner: Use global system directory if exists
    
    This will allow us to ship system directories for platforms that need them.

 meson.build                 |  2 ++
 src/config.vapi             |  1 +
 src/retro/retro-runner.vala | 11 ++++++++++-
 3 files changed, 13 insertions(+), 1 deletion(-)
---
diff --git a/meson.build b/meson.build
index 2c705519..a52cad35 100644
--- a/meson.build
+++ b/meson.build
@@ -59,6 +59,7 @@ libexecdir = prefix / get_option ('libexecdir')
 localedir = prefix / get_option ('localedir')
 servicedir = datadir / 'dbus-1' / 'services'
 options_dir = datadir / meson.project_name() / 'options'
+system_dir = datadir / meson.project_name() / 'system'
 plugins_dir = libdir / meson.project_name() / 'plugins'
 
 config_h = configuration_data ()
@@ -67,6 +68,7 @@ config_h.set_quoted ('GETTEXT_PACKAGE', meson.project_name ())
 config_h.set_quoted ('GNOMELOCALEDIR', localedir)
 config_h.set_quoted ('NAME_SUFFIX', name_suffix)
 config_h.set_quoted ('OPTIONS_DIR', options_dir)
+config_h.set_quoted ('SYSTEM_DIR', system_dir)
 config_h.set_quoted ('PLUGINS_DIR', plugins_dir)
 config_h.set_quoted ('PROFILE', profile)
 config_h.set_quoted ('VERSION', '@0@@1@'.format (meson.project_version (), version_suffix))
diff --git a/src/config.vapi b/src/config.vapi
index def6dca7..50aa7036 100644
--- a/src/config.vapi
+++ b/src/config.vapi
@@ -7,6 +7,7 @@ namespace Config {
        public const string GNOMELOCALEDIR;
        public const string NAME_SUFFIX;
        public const string OPTIONS_DIR;
+       public const string SYSTEM_DIR;
        public const string PLUGINS_DIR;
        public const string PROFILE;
        public const string VERSION;
diff --git a/src/retro/retro-runner.vala b/src/retro/retro-runner.vala
index c17722d9..656ad4f5 100644
--- a/src/retro/retro-runner.vala
+++ b/src/retro/retro-runner.vala
@@ -175,7 +175,16 @@ public class Games.RetroRunner : Object, Runner {
 
                var platforms_dir = Application.get_platforms_dir ();
                var platform_id = game.platform.get_id ();
-               core.system_directory = @"$platforms_dir/$platform_id/system";
+
+               var user_system_dir = @"$platforms_dir/$platform_id/system";
+               var system_dir = @"$(Config.SYSTEM_DIR)/$platform_id";
+
+               /* Prefer the user system directory if both exist */
+               if (FileUtils.test (system_dir, FileTest.EXISTS) &&
+                   !FileUtils.test (user_system_dir, FileTest.EXISTS))
+                       core.system_directory = system_dir;
+               else
+                       core.system_directory = user_system_dir;
 
                core.save_directory = tmp_save_dir;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]