summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Vandaƫle <joshua@vandaele.software>2025-12-11 03:13:40 +0100
committerJoshua Vandaƫle <joshua@vandaele.software>2026-07-24 03:45:13 +0200
commitfa2a250f01be4f58e728d6f3fbb43e1eef56c808 (patch)
treec52db64c59b4d4ab1d49a6100195ae5cc0eb947e
parenta30aa5cf36db43c0afc0eef00589a789ef04944a (diff)
CMake: Unify sys directories
-rw-r--r--CMakeLists.txt2
-rw-r--r--Source/Core/Common/FileUtil.cpp28
2 files changed, 15 insertions, 15 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ec73707d0a..c3a0f57ba3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -839,7 +839,7 @@ add_subdirectory(Source)
# Install shared data files
#
if(NOT CMAKE_SYSTEM_NAME MATCHES "Darwin|Windows")
- install(DIRECTORY Data/Sys/ DESTINATION ${datadir}/sys PATTERN)
+ install(DIRECTORY Data/Sys/ DESTINATION ${datadir}/Sys PATTERN)
endif()
if(NOT CMAKE_SYSTEM_NAME MATCHES "Linux|FreeBSD|OpenBSD|Darwin")
install(FILES COPYING DESTINATION ${datadir})
diff --git a/Source/Core/Common/FileUtil.cpp b/Source/Core/Common/FileUtil.cpp
index 10032a03c5..053614f31f 100644
--- a/Source/Core/Common/FileUtil.cpp
+++ b/Source/Core/Common/FileUtil.cpp
@@ -759,27 +759,27 @@ std::string GetExeDirectory()
static std::string CreateSysDirectoryPath()
{
-#if defined(_WIN32) || defined(LINUX_LOCAL_DEV)
-#define SYSDATA_DIR "Sys"
-#elif defined __APPLE__
-#define SYSDATA_DIR "Contents/Resources/Sys"
+#define SYS_FOLDER_NAME "Sys"
+#if defined __APPLE__
+#define SYSDATA_DIR "Contents/Resources/" SYS_FOLDER_NAME
#else
-#ifdef DATA_DIR
-#define SYSDATA_DIR DATA_DIR "sys"
-#else
-#define SYSDATA_DIR "sys"
-#endif
+#define SYSDATA_DIR DATA_DIR SYS_FOLDER_NAME
#endif
+ std::string sys_directory;
+
#if defined(__APPLE__)
- const std::string sys_directory = GetBundleDirectory() + DIR_SEP SYSDATA_DIR DIR_SEP;
-#elif defined(_WIN32) || defined(LINUX_LOCAL_DEV)
- const std::string sys_directory = GetExeDirectory() + DIR_SEP SYSDATA_DIR DIR_SEP;
+ sys_directory = GetBundleDirectory() + DIR_SEP SYSDATA_DIR DIR_SEP;
#elif defined ANDROID
- const std::string sys_directory = s_android_sys_directory + DIR_SEP;
+ sys_directory = s_android_sys_directory + DIR_SEP;
ASSERT_MSG(COMMON, !s_android_sys_directory.empty(), "Sys directory has not been set");
#else
- const std::string sys_directory = SYSDATA_DIR DIR_SEP;
+ const std::string local_sys_directory = GetExeDirectory() + DIR_SEP SYS_FOLDER_NAME DIR_SEP;
+ if (IsDirectory(local_sys_directory))
+ sys_directory = local_sys_directory;
+ else
+ sys_directory = SYSDATA_DIR DIR_SEP;
+
#endif
INFO_LOG_FMT(COMMON, "CreateSysDirectoryPath: Setting to {}", sys_directory);