mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-07 06:00:16 +02:00
This isn't quite a 100% clean sweep of IWYU. There are some false positives where clang fails. Additionally there are still a few missed in the frontend side of things that I didn't get to
80 lines
2.4 KiB
C++
80 lines
2.4 KiB
C++
#include "ConfigDefines.h"
|
|
#include "OptionParser.h"
|
|
#include "Common/RootFSSetup.h"
|
|
#include "git_version.h"
|
|
#include <FEXCore/Config/Config.h>
|
|
|
|
#include <filesystem>
|
|
#include <stdio.h>
|
|
#include <string>
|
|
|
|
int main(int argc, char **argv, char **envp) {
|
|
FEXCore::Config::Initialize();
|
|
FEXCore::Config::AddLayer(FEXCore::Config::CreateMainLayer());
|
|
// No FEX arguments passed through command line
|
|
FEXCore::Config::AddLayer(FEXCore::Config::CreateEnvironmentLayer(envp));
|
|
FEXCore::Config::Load();
|
|
|
|
// Load the arguments
|
|
optparse::OptionParser Parser = optparse::OptionParser()
|
|
.description("Simple application to get a couple of FEX options");
|
|
|
|
Parser.add_option("--install-prefix")
|
|
.action("store_true")
|
|
.help("Print the FEX install prefix");
|
|
|
|
Parser.add_option("--app")
|
|
.help("Load an application profile for this application if it exists");
|
|
|
|
Parser.add_option("--current-rootfs")
|
|
.action("store_true")
|
|
.help("Print the directory that contains the FEX rootfs. Mounted in the case of squashfs");
|
|
|
|
Parser.add_option("--current-rootfs-lock")
|
|
.action("store_true")
|
|
.help("SquashFS lock file if squashfs is mounted");
|
|
|
|
Parser.add_option("--version")
|
|
.action("store_true")
|
|
.help("Print the installed FEX-Emu version");
|
|
|
|
optparse::Values Options = Parser.parse_args(argc, argv);
|
|
|
|
if (Options.is_set_by_user("app")) {
|
|
// Load the application config if one was provided
|
|
auto ProgramName = std::filesystem::path(Options["app"]).filename();
|
|
FEXCore::Config::AddLayer(FEXCore::Config::CreateAppLayer(ProgramName, true));
|
|
FEXCore::Config::AddLayer(FEXCore::Config::CreateAppLayer(ProgramName, false));
|
|
}
|
|
|
|
// Reload the meta layer
|
|
FEXCore::Config::ReloadMetaLayer();
|
|
|
|
if (Options.is_set_by_user("version")) {
|
|
fprintf(stdout, GIT_DESCRIBE_STRING "\n");
|
|
}
|
|
|
|
if (Options.is_set_by_user("install_prefix")) {
|
|
fprintf(stdout, FEX_INSTALL_PREFIX "\n");
|
|
}
|
|
|
|
if (Options.is_set_by_user("current_rootfs_lock")) {
|
|
auto LockFile = FEX::RootFS::GetRootFSLockFile();
|
|
if (FEX::RootFS::CheckLockExists(LockFile)) {
|
|
fprintf(stdout, "%s\n", LockFile.c_str());
|
|
}
|
|
}
|
|
|
|
if (Options.is_set_by_user("current_rootfs")) {
|
|
// Ensure RootFS is setup before config options try to pull CONFIG_ROOTFS
|
|
auto Status = FEX::RootFS::UpdateRootFSPath();
|
|
|
|
if (Status) {
|
|
FEX_CONFIG_OPT(LDPath, ROOTFS);
|
|
fprintf(stdout, "%s\n", LDPath().c_str());
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|