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)
|
set(WXLIBS ${WXLIBS} dl)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
list(APPEND LIBS core uicommon)
|
list(APPEND LIBS core uicommon cpp-optparse)
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
if(wxWidgets_FOUND)
|
if(wxWidgets_FOUND)
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
set(SRCS Disassembler.cpp
|
set(SRCS CommandLineParse.cpp
|
||||||
|
Disassembler.cpp
|
||||||
UICommon.cpp
|
UICommon.cpp
|
||||||
USBUtils.cpp)
|
USBUtils.cpp)
|
||||||
|
|
||||||
set(LIBS common)
|
set(LIBS common cpp-optparse)
|
||||||
if(LIBUSB_FOUND)
|
if(LIBUSB_FOUND)
|
||||||
set(LIBS ${LIBS} ${LIBUSB_LIBRARIES})
|
set(LIBS ${LIBS} ${LIBUSB_LIBRARIES})
|
||||||
endif()
|
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>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ClCompile Include="CommandLineParse.cpp" />
|
||||||
<ClCompile Include="UICommon.cpp" />
|
<ClCompile Include="UICommon.cpp" />
|
||||||
<ClCompile Include="Disassembler.cpp" />
|
<ClCompile Include="Disassembler.cpp" />
|
||||||
<ClCompile Include="USBUtils.cpp">
|
<ClCompile Include="USBUtils.cpp">
|
||||||
|
@ -60,6 +61,7 @@
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ClInclude Include="CommandLineParse.h" />
|
||||||
<ClInclude Include="UICommon.h" />
|
<ClInclude Include="UICommon.h" />
|
||||||
<ClInclude Include="Disassembler.h" />
|
<ClInclude Include="Disassembler.h" />
|
||||||
<ClInclude Include="USBUtils.h" />
|
<ClInclude Include="USBUtils.h" />
|
||||||
|
|
Loading…
Reference in New Issue