Add command line parsing to UICommon.
This commit is contained in:
parent
77c7fa836f
commit
f61363a791
|
@ -91,7 +91,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
|||
set(WXLIBS ${WXLIBS} dl)
|
||||
endif()
|
||||
|
||||
list(APPEND LIBS core uicommon)
|
||||
list(APPEND LIBS core uicommon cpp-optparse)
|
||||
|
||||
if(APPLE)
|
||||
if(wxWidgets_FOUND)
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
set(SRCS Disassembler.cpp
|
||||
set(SRCS CommandLineParse.cpp
|
||||
Disassembler.cpp
|
||||
UICommon.cpp
|
||||
USBUtils.cpp)
|
||||
|
||||
set(LIBS common)
|
||||
set(LIBS common cpp-optparse)
|
||||
if(LIBUSB_FOUND)
|
||||
set(LIBS ${LIBS} ${LIBUSB_LIBRARIES})
|
||||
endif()
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
// Copyright 2017 Dolphin Emulator Project
|
||||
// Licensed under GPLv2+
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include <OptionParser.h>
|
||||
|
||||
#include "Common/Common.h"
|
||||
#include "UICommon/CommandLineParse.h"
|
||||
|
||||
namespace CommandLineParse
|
||||
{
|
||||
std::unique_ptr<optparse::OptionParser> CreateParser(ParserOptions options)
|
||||
{
|
||||
auto parser = std::make_unique<optparse::OptionParser>();
|
||||
parser->usage("usage: %prog [options]... [FILE]...").version(scm_rev_str);
|
||||
|
||||
parser->add_option("--version").action("version").help("Print version and exit");
|
||||
|
||||
parser->add_option("-u", "--user").action("store").help("User folder path");
|
||||
parser->add_option("-m", "--movie").action("store").help("Play a movie file");
|
||||
parser->add_option("-e", "--exec")
|
||||
.action("store")
|
||||
.metavar("<file>")
|
||||
.type("string")
|
||||
.help("Load the specified file");
|
||||
|
||||
if (options == ParserOptions::IncludeGUIOptions)
|
||||
{
|
||||
parser->add_option("-d", "--debugger").action("store_true").help("Opens the debuger");
|
||||
parser->add_option("-l", "--logger").action("store_true").help("Opens the logger");
|
||||
parser->add_option("-b", "--batch").action("store_true").help("Exit Dolphin with emulation");
|
||||
parser->add_option("-c", "--confirm").action("store_true").help("Set Confirm on Stop");
|
||||
}
|
||||
|
||||
// XXX: These two are setting configuration options
|
||||
parser->add_option("-v", "--video_backend").action("store").help("Specify a video backend");
|
||||
parser->add_option("-a", "--audio_emulation")
|
||||
.choices({"HLE", "LLE"})
|
||||
.help("Choose audio emulation from [%choices]");
|
||||
|
||||
return parser;
|
||||
}
|
||||
|
||||
optparse::Values& ParseArguments(optparse::OptionParser* parser, int argc, char** argv)
|
||||
{
|
||||
return parser->parse_args(argc, argv);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
// Copyright 2017 Dolphin Emulator Project
|
||||
// Licensed under GPLv2+
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include <memory>
|
||||
|
||||
namespace optparse
|
||||
{
|
||||
class OptionParser;
|
||||
class Values;
|
||||
}
|
||||
|
||||
namespace CommandLineParse
|
||||
{
|
||||
enum class ParserOptions
|
||||
{
|
||||
IncludeGUIOptions,
|
||||
OmitGUIOptions,
|
||||
};
|
||||
|
||||
std::unique_ptr<optparse::OptionParser> CreateParser(ParserOptions options);
|
||||
optparse::Values& ParseArguments(optparse::OptionParser* parser, int argc, char** argv);
|
||||
}
|
|
@ -53,6 +53,7 @@
|
|||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="CommandLineParse.cpp" />
|
||||
<ClCompile Include="UICommon.cpp" />
|
||||
<ClCompile Include="Disassembler.cpp" />
|
||||
<ClCompile Include="USBUtils.cpp">
|
||||
|
@ -60,6 +61,7 @@
|
|||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="CommandLineParse.h" />
|
||||
<ClInclude Include="UICommon.h" />
|
||||
<ClInclude Include="Disassembler.h" />
|
||||
<ClInclude Include="USBUtils.h" />
|
||||
|
|
Loading…
Reference in New Issue