Remove dependency on boost::dll and boost::range

This commit is contained in:
Exzap 2023-04-16 11:25:44 +02:00
parent 80953fe603
commit 41f2c27229
8 changed files with 31 additions and 37 deletions

View File

@ -4,7 +4,6 @@
#include "Cafe/OS/libs/vpad/vpad.h" #include "Cafe/OS/libs/vpad/vpad.h"
#include "audio/IAudioAPI.h" #include "audio/IAudioAPI.h"
#include "Cafe/OS/libs/coreinit/coreinit_Time.h" #include "Cafe/OS/libs/coreinit/coreinit_Time.h"
#include <boost/range/iterator_range.hpp>
#include "config/ActiveSettings.h" #include "config/ActiveSettings.h"
#include "Cafe/OS/libs/coreinit/coreinit_Alarm.h" #include "Cafe/OS/libs/coreinit/coreinit_Alarm.h"
#include "input/InputManager.h" #include "input/InputManager.h"

View File

@ -1,30 +1,27 @@
#include "config/ActiveSettings.h"
#include "Cafe/GameProfile/GameProfile.h" #include "Cafe/GameProfile/GameProfile.h"
#include "Cemu/Logging/CemuLogging.h"
#include "LaunchSettings.h"
#include "util/helpers/helpers.h"
#include <boost/dll/runtime_symbol_info.hpp>
#include "Cafe/IOSU/legacy/iosu_crypto.h" #include "Cafe/IOSU/legacy/iosu_crypto.h"
#include "Cafe/HW/Latte/Renderer/Vulkan/VulkanAPI.h" #include "Cafe/HW/Latte/Renderer/Vulkan/VulkanAPI.h"
#include "Cafe/CafeSystem.h" #include "Cafe/CafeSystem.h"
#include "Cemu/Logging/CemuLogging.h"
#include "config/ActiveSettings.h"
#include "config/LaunchSettings.h"
#include "util/helpers/helpers.h"
std::set<fs::path> std::set<fs::path>
ActiveSettings::LoadOnce(const fs::path& user_data_path, ActiveSettings::LoadOnce(
const fs::path& config_path, const fs::path& executablePath,
const fs::path& cache_path, const fs::path& userDataPath,
const fs::path& data_path) const fs::path& configPath,
const fs::path& cachePath,
const fs::path& dataPath)
{ {
s_full_path = boost::dll::program_location().generic_wstring(); s_executable_path = executablePath;
s_user_data_path = userDataPath;
s_user_data_path = user_data_path; s_config_path = configPath;
s_config_path = config_path; s_cache_path = cachePath;
s_cache_path = cache_path; s_data_path = dataPath;
s_data_path = data_path;
std::set<fs::path> failed_write_access; std::set<fs::path> failed_write_access;
for (auto&& path : {user_data_path, config_path, cache_path}) for (auto&& path : {userDataPath, configPath, cachePath})
{ {
if (!fs::exists(path)) if (!fs::exists(path))
{ {
@ -38,7 +35,7 @@ ActiveSettings::LoadOnce(const fs::path& user_data_path,
} }
} }
s_filename = s_full_path.filename(); s_executable_filename = s_executable_path.filename();
g_config.SetFilename(GetConfigPath("settings.xml").generic_wstring()); g_config.SetFilename(GetConfigPath("settings.xml").generic_wstring());
g_config.Load(); g_config.Load();

View File

@ -35,13 +35,14 @@ private:
public: public:
// Set directories and return all directories that failed write access test // Set directories and return all directories that failed write access test
static std::set<fs::path> static std::set<fs::path>
LoadOnce(const fs::path& user_data_path, LoadOnce(const fs::path& executablePath,
const fs::path& config_path, const fs::path& userDataPath,
const fs::path& cache_path, const fs::path& configPath,
const fs::path& data_path); const fs::path& cachePath,
const fs::path& dataPath);
[[nodiscard]] static fs::path GetFullPath() { return s_full_path; } [[nodiscard]] static fs::path GetExecutablePath() { return s_executable_path; }
[[nodiscard]] static fs::path GetFilename() { return s_filename; } [[nodiscard]] static fs::path GetExecutableFilename() { return s_executable_filename; }
template <typename ...TArgs> template <typename ...TArgs>
[[nodiscard]] static fs::path GetUserDataPath(TArgs&&... args){ return GetPath(s_user_data_path, std::forward<TArgs>(args)...); }; [[nodiscard]] static fs::path GetUserDataPath(TArgs&&... args){ return GetPath(s_user_data_path, std::forward<TArgs>(args)...); };
template <typename ...TArgs> template <typename ...TArgs>
@ -60,12 +61,12 @@ public:
[[nodiscard]] static fs::path GetDefaultMLCPath(); [[nodiscard]] static fs::path GetDefaultMLCPath();
private: private:
inline static fs::path s_full_path; // full filename inline static fs::path s_executable_path;
inline static fs::path s_user_data_path; inline static fs::path s_user_data_path;
inline static fs::path s_config_path; inline static fs::path s_config_path;
inline static fs::path s_cache_path; inline static fs::path s_cache_path;
inline static fs::path s_data_path; inline static fs::path s_data_path;
inline static fs::path s_filename; // cemu.exe inline static fs::path s_executable_filename; // cemu.exe
inline static fs::path s_mlc_path; inline static fs::path s_mlc_path;
public: public:

View File

@ -2,7 +2,6 @@
#include "ActiveSettings.h" #include "ActiveSettings.h"
#include "LaunchSettings.h" #include "LaunchSettings.h"
#include "CemuConfig.h" #include "CemuConfig.h"
#include <boost/dll/runtime_symbol_info.hpp>
#include "Common/FileStream.h" #include "Common/FileStream.h"
XMLNetworkConfig_t n_config(L"network_services.xml"); XMLNetworkConfig_t n_config(L"network_services.xml");

View File

@ -80,8 +80,8 @@ bool CemuApp::OnInit()
{ {
fs::path user_data_path, config_path, cache_path, data_path; fs::path user_data_path, config_path, cache_path, data_path;
auto standardPaths = wxStandardPaths::Get(); auto standardPaths = wxStandardPaths::Get();
#ifdef PORTABLE
fs::path exePath(standardPaths.GetExecutablePath().ToStdString()); fs::path exePath(standardPaths.GetExecutablePath().ToStdString());
#ifdef PORTABLE
#if MACOS_BUNDLE #if MACOS_BUNDLE
exePath = exePath.parent_path().parent_path().parent_path(); exePath = exePath.parent_path().parent_path().parent_path();
#endif #endif
@ -108,7 +108,7 @@ bool CemuApp::OnInit()
cache_path = standardPaths.GetUserDir(wxStandardPaths::Dir::Dir_Cache).ToStdString(); cache_path = standardPaths.GetUserDir(wxStandardPaths::Dir::Dir_Cache).ToStdString();
cache_path /= appName.ToStdString(); cache_path /= appName.ToStdString();
#endif #endif
auto failed_write_access = ActiveSettings::LoadOnce(user_data_path, config_path, cache_path, data_path); auto failed_write_access = ActiveSettings::LoadOnce(exePath, user_data_path, config_path, cache_path, data_path);
for (auto&& path : failed_write_access) for (auto&& path : failed_write_access)
wxMessageBox(fmt::format("Cemu can't write to {} !", path.generic_string()), _("Warning"), wxOK | wxCENTRE | wxICON_EXCLAMATION, nullptr); wxMessageBox(fmt::format("Cemu can't write to {} !", path.generic_string()), _("Warning"), wxOK | wxCENTRE | wxICON_EXCLAMATION, nullptr);

View File

@ -471,13 +471,13 @@ void CemuUpdateWindow::WorkerThread()
break; break;
// apply update // apply update
fs::path exePath = fs::path(wxStandardPaths::Get().GetExecutablePath().ToStdString()); fs::path exePath = ActiveSettings::GetExecutablePath();
std::wstring target_directory = exePath.parent_path().generic_wstring(); std::wstring target_directory = exePath.parent_path().generic_wstring();
if (target_directory[target_directory.size() - 1] == '/') if (target_directory[target_directory.size() - 1] == '/')
target_directory = target_directory.substr(0, target_directory.size() - 1); // remove trailing / target_directory = target_directory.substr(0, target_directory.size() - 1); // remove trailing /
// get exe name // get exe name
const auto exec = ActiveSettings::GetFullPath(); const auto exec = ActiveSettings::GetExecutablePath();
const auto target_exe = fs::path(exec).replace_extension("exe.backup"); const auto target_exe = fs::path(exec).replace_extension("exe.backup");
fs::rename(exec, target_exe); fs::rename(exec, target_exe);
m_restartFile = exec; m_restartFile = exec;

View File

@ -271,7 +271,7 @@ void HandlePostUpdate()
{ {
// finalize update process // finalize update process
// delete update cemu.exe.backup if available // delete update cemu.exe.backup if available
const auto filename = ActiveSettings::GetFullPath().replace_extension("exe.backup"); const auto filename = ActiveSettings::GetExecutablePath().replace_extension("exe.backup");
if (fs::exists(filename)) if (fs::exists(filename))
{ {
#if BOOST_OS_WINDOWS #if BOOST_OS_WINDOWS

View File

@ -17,9 +17,7 @@
"boost-program-options", "boost-program-options",
"boost-nowide", "boost-nowide",
"boost-algorithm", "boost-algorithm",
"boost-range",
"boost-functional", "boost-functional",
"boost-dll",
"boost-optional", "boost-optional",
"boost-signals2", "boost-signals2",
"boost-asio", "boost-asio",