Adding gflags to handle command line flags.

It sucks, but is the best there is without using boost.
This commit is contained in:
Ben Vanik
2013-01-23 21:31:23 -08:00
parent 01fee047f7
commit 860a0739ec
14 changed files with 183 additions and 35 deletions

View File

@@ -9,6 +9,8 @@
#include <xenia/xenia.h>
#include <gflags/gflags.h>
using namespace xe;
using namespace xe::cpu;
@@ -16,6 +18,12 @@ using namespace xe::kernel;
int xenia_info(int argc, xechar_t **argv) {
std::string usage = "usage: ";
usage = usage + argv[0] + " some.xex";
google::SetUsageMessage(usage);
google::SetVersionString("1.0");
google::ParseCommandLineFlags(&argc, &argv, true);
int result_code = 1;
xe_pal_ref pal = NULL;
@@ -23,9 +31,9 @@ int xenia_info(int argc, xechar_t **argv) {
shared_ptr<Processor> processor;
shared_ptr<Runtime> runtime;
// TODO(benvanik): real command line parsing.
// Grab path.
if (argc < 2) {
printf("usage: xenia-info some.xex\n");
google::ShowUsageWithFlags(argv[0]);
return 1;
}
const xechar_t *path = argv[1];
@@ -51,6 +59,8 @@ int xenia_info(int argc, xechar_t **argv) {
XECLEANUP:
xe_memory_release(memory);
xe_pal_release(pal);
google::ShutDownCommandLineFlags();
return result_code;
}
XE_MAIN_THUNK(xenia_info);

View File

@@ -9,6 +9,8 @@
#include <xenia/xenia.h>
#include <gflags/gflags.h>
using namespace xe;
using namespace xe::cpu;
@@ -70,14 +72,20 @@ int Run::Launch() {
}
int xenia_run(int argc, xechar_t **argv) {
std::string usage = "usage: ";
usage = usage + argv[0] + " some.xex";
google::SetUsageMessage(usage);
google::SetVersionString("1.0");
google::ParseCommandLineFlags(&argc, &argv, true);
// Dummy call to keep the GPU code linking in to ensure it's working.
do_gpu_stuff();
int result_code = 1;
// TODO(benvanik): real command line parsing.
// Grab path.
if (argc < 2) {
printf("usage: xenia-run some.xex\n");
google::ShowUsageWithFlags(argv[0]);
return 1;
}
const xechar_t *path = argv[1];
@@ -91,9 +99,10 @@ int xenia_run(int argc, xechar_t **argv) {
run->Launch();
return 0;
result_code = 0;
XECLEANUP:
google::ShutDownCommandLineFlags();
return result_code;
}
XE_MAIN_THUNK(xenia_run);