From 3cfc1de410ebe33e4a36d581e814713489c50e9e Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Sun, 19 Mar 2023 18:05:02 -0700 Subject: [PATCH] Common: Convert cpp-optparse over to fextl and use. --- .gitmodules | 2 +- CMakeLists.txt | 3 --- External/cpp-optparse | 1 - Source/Common/ArgumentLoader.cpp | 13 ++++--------- Source/Common/CMakeLists.txt | 2 ++ Source/Common/cpp-optparse | 1 + Source/Tools/FEXGetConfig/Main.cpp | 2 +- Source/Tools/FEXRootFSFetcher/Main.cpp | 9 +++------ Source/Tools/FEXServer/ArgumentLoader.cpp | 4 ++-- 9 files changed, 14 insertions(+), 23 deletions(-) delete mode 160000 External/cpp-optparse create mode 160000 Source/Common/cpp-optparse diff --git a/.gitmodules b/.gitmodules index b25ef3285..70e306411 100644 --- a/.gitmodules +++ b/.gitmodules @@ -3,7 +3,7 @@ path = External/vixl url = https://github.com/FEX-Emu/vixl.git [submodule "External/cpp-optparse"] - path = External/cpp-optparse + path = Source/Common/cpp-optparse url = https://github.com/Sonicadvance1/cpp-optparse [submodule "External/imgui"] path = External/imgui diff --git a/CMakeLists.txt b/CMakeLists.txt index e61e72625..9080872ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -242,9 +242,6 @@ if (BUILD_TESTS) include(Catch) endif() -add_subdirectory(External/cpp-optparse/) -include_directories(External/cpp-optparse/) - add_subdirectory(External/fmt/) add_subdirectory(External/imgui/) diff --git a/External/cpp-optparse b/External/cpp-optparse deleted file mode 160000 index 2e480985b..000000000 --- a/External/cpp-optparse +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2e480985bd5b024d4659988dc30c94ac24b4b14a diff --git a/Source/Common/ArgumentLoader.cpp b/Source/Common/ArgumentLoader.cpp index ce011adca..d96181f0e 100644 --- a/Source/Common/ArgumentLoader.cpp +++ b/Source/Common/ArgumentLoader.cpp @@ -3,7 +3,7 @@ #include #include -#include "OptionParser.h" +#include "cpp-optparse/OptionParser.h" #include "git_version.h" #include @@ -12,9 +12,8 @@ namespace FEX::ArgLoader { fextl::vector RemainingArgs; fextl::vector ProgramArguments; - static std::string Version = "FEX-Emu (" GIT_DESCRIBE_STRING ") "; + static fextl::string Version = "FEX-Emu (" GIT_DESCRIBE_STRING ") "; void FEX::ArgLoader::ArgLoader::Load() { - FEXCore::Allocator::YesIKnowImNotSupposedToUseTheGlibcAllocator glibc; optparse::OptionParser Parser{}; Parser.version(Version); optparse::OptionGroup CPUGroup(Parser, "CPU Core options"); @@ -40,12 +39,8 @@ namespace FEX::ArgLoader { using uint32 = uint32_t; #define AFTER_PARSE #include - // TODO: Convert cpp-optparse over to fextl::vector - auto ParserArgs = Parser.args(); - auto ParsedArgs = Parser.parsed_args(); - - RemainingArgs.insert(RemainingArgs.begin(), ParserArgs.begin(), ParserArgs.end()); - ProgramArguments.insert(ProgramArguments.begin(), ParsedArgs.begin(), ParsedArgs.end()); + RemainingArgs = Parser.args(); + ProgramArguments = Parser.parsed_args(); } void LoadWithoutArguments(int _argc, char **_argv) { diff --git a/Source/Common/CMakeLists.txt b/Source/Common/CMakeLists.txt index adae65422..6a8131e6b 100644 --- a/Source/Common/CMakeLists.txt +++ b/Source/Common/CMakeLists.txt @@ -1,3 +1,5 @@ +add_subdirectory(cpp-optparse/) + set(NAME Common) set(SRCS ArgumentLoader.cpp diff --git a/Source/Common/cpp-optparse b/Source/Common/cpp-optparse new file mode 160000 index 000000000..1f3b88a1b --- /dev/null +++ b/Source/Common/cpp-optparse @@ -0,0 +1 @@ +Subproject commit 1f3b88a1ba3c4c6302a096d7e9002982e8811cb7 diff --git a/Source/Tools/FEXGetConfig/Main.cpp b/Source/Tools/FEXGetConfig/Main.cpp index 8fbcf466e..e54ba1a48 100644 --- a/Source/Tools/FEXGetConfig/Main.cpp +++ b/Source/Tools/FEXGetConfig/Main.cpp @@ -1,5 +1,5 @@ #include "ConfigDefines.h" -#include "OptionParser.h" +#include "Common/cpp-optparse/OptionParser.h" #include "Common/FEXServerClient.h" #include "git_version.h" #include diff --git a/Source/Tools/FEXRootFSFetcher/Main.cpp b/Source/Tools/FEXRootFSFetcher/Main.cpp index 1af3f2fe3..60b6e5b76 100644 --- a/Source/Tools/FEXRootFSFetcher/Main.cpp +++ b/Source/Tools/FEXRootFSFetcher/Main.cpp @@ -1,7 +1,7 @@ #include #include -#include "OptionParser.h" +#include "Common/cpp-optparse/OptionParser.h" #include "XXFileHash.h" #include "Common/ArgumentLoader.h" @@ -37,7 +37,7 @@ namespace ArgOptions { ListQueryOption DistroListOption {ListQueryOption::OPTION_ASK}; - std::vector RemainingArgs; + fextl::vector RemainingArgs; std::string DistroName{}; std::string DistroVersion{}; @@ -95,10 +95,7 @@ namespace ArgOptions { DistroVersion = Options["distro_version"]; } - - // TODO: Convert cpp-optparse over to fextl::vector - auto ParserArgs = Parser.args(); - RemainingArgs.insert(RemainingArgs.begin(), ParserArgs.begin(), ParserArgs.end()); + RemainingArgs = Parser.args(); } } diff --git a/Source/Tools/FEXServer/ArgumentLoader.cpp b/Source/Tools/FEXServer/ArgumentLoader.cpp index 4c4ac3121..6815395e0 100644 --- a/Source/Tools/FEXServer/ArgumentLoader.cpp +++ b/Source/Tools/FEXServer/ArgumentLoader.cpp @@ -1,12 +1,12 @@ #include "ArgumentLoader.h" -#include "OptionParser.h" +#include "Common/cpp-optparse/OptionParser.h" #include "git_version.h" #include namespace FEXServer::Config { - static std::string Version = "FEX-Emu (" GIT_DESCRIBE_STRING ") "; + static fextl::string Version = "FEX-Emu (" GIT_DESCRIBE_STRING ") "; FEXServerOptions Load(int argc, char **argv) { FEXServerOptions FEXOptions{};