mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	common: Support macOS application data path conventions. (#6258)
This commit is contained in:
		
							parent
							
								
									9b20bcea0f
								
							
						
					
					
						commit
						d704c6a3ac
					
				
					 2 changed files with 23 additions and 6 deletions
				
			
		|  | @ -20,6 +20,10 @@ | ||||||
| #else | #else | ||||||
| #ifdef _WIN32 | #ifdef _WIN32 | ||||||
| #define EMU_DATA_DIR "Citra" | #define EMU_DATA_DIR "Citra" | ||||||
|  | #elif defined(__APPLE__) | ||||||
|  | #define MACOS_EMU_DATA_DIR "Library" DIR_SEP "Application Support" DIR_SEP "Citra" | ||||||
|  | // For compatibility with XDG paths.
 | ||||||
|  | #define EMU_DATA_DIR "citra-emu" | ||||||
| #elif ANDROID | #elif ANDROID | ||||||
| // On Android internal storage is mounted as "/sdcard"
 | // On Android internal storage is mounted as "/sdcard"
 | ||||||
| #define SDCARD_DIR "sdcard" | #define SDCARD_DIR "sdcard" | ||||||
|  |  | ||||||
|  | @ -709,13 +709,26 @@ void SetUserPath(const std::string& path) { | ||||||
|             g_paths.emplace(UserPath::ConfigDir, user_path + CONFIG_DIR DIR_SEP); |             g_paths.emplace(UserPath::ConfigDir, user_path + CONFIG_DIR DIR_SEP); | ||||||
|             g_paths.emplace(UserPath::CacheDir, user_path + CACHE_DIR DIR_SEP); |             g_paths.emplace(UserPath::CacheDir, user_path + CACHE_DIR DIR_SEP); | ||||||
|         } else { |         } else { | ||||||
|             std::string data_dir = GetUserDirectory("XDG_DATA_HOME"); |             std::string data_dir = GetUserDirectory("XDG_DATA_HOME") + DIR_SEP EMU_DATA_DIR DIR_SEP; | ||||||
|             std::string config_dir = GetUserDirectory("XDG_CONFIG_HOME"); |             std::string config_dir = | ||||||
|             std::string cache_dir = GetUserDirectory("XDG_CACHE_HOME"); |                 GetUserDirectory("XDG_CONFIG_HOME") + DIR_SEP EMU_DATA_DIR DIR_SEP; | ||||||
|  |             std::string cache_dir = | ||||||
|  |                 GetUserDirectory("XDG_CACHE_HOME") + DIR_SEP EMU_DATA_DIR DIR_SEP; | ||||||
| 
 | 
 | ||||||
|             user_path = data_dir + DIR_SEP EMU_DATA_DIR DIR_SEP; | #if defined(__APPLE__) | ||||||
|             g_paths.emplace(UserPath::ConfigDir, config_dir + DIR_SEP EMU_DATA_DIR DIR_SEP); |             // If XDG directories don't already exist from a previous setup, use standard macOS
 | ||||||
|             g_paths.emplace(UserPath::CacheDir, cache_dir + DIR_SEP EMU_DATA_DIR DIR_SEP); |             // paths.
 | ||||||
|  |             if (!FileUtil::Exists(data_dir) && !FileUtil::Exists(config_dir) && | ||||||
|  |                 !FileUtil::Exists(cache_dir)) { | ||||||
|  |                 data_dir = GetHomeDirectory() + DIR_SEP MACOS_EMU_DATA_DIR DIR_SEP; | ||||||
|  |                 config_dir = data_dir + CONFIG_DIR DIR_SEP; | ||||||
|  |                 cache_dir = data_dir + CACHE_DIR DIR_SEP; | ||||||
|  |             } | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  |             user_path = data_dir; | ||||||
|  |             g_paths.emplace(UserPath::ConfigDir, config_dir); | ||||||
|  |             g_paths.emplace(UserPath::CacheDir, cache_dir); | ||||||
|         } |         } | ||||||
| #endif | #endif | ||||||
|     } |     } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue