summaryrefslogtreecommitdiffstats
path: root/src/yuzu_cmd/yuzu.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/yuzu_cmd/yuzu.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/yuzu_cmd/yuzu.cpp b/src/yuzu_cmd/yuzu.cpp
index b2559b717..27aba95f6 100644
--- a/src/yuzu_cmd/yuzu.cpp
+++ b/src/yuzu_cmd/yuzu.cpp
@@ -10,6 +10,7 @@
#include <fmt/ostream.h>
#include "common/common_paths.h"
+#include "common/detached_tasks.h"
#include "common/file_util.h"
#include "common/logging/backend.h"
#include "common/logging/filter.h"
@@ -55,9 +56,10 @@ static void PrintHelp(const char* argv0) {
std::cout << "Usage: " << argv0
<< " [options] <filename>\n"
"-g, --gdbport=NUMBER Enable gdb stub on port NUMBER\n"
- "-f, --fullscreen Start in fullscreen mode\n"
+ "-f, --fullscreen Start in fullscreen mode\n"
"-h, --help Display this help and exit\n"
- "-v, --version Output version information and exit\n";
+ "-v, --version Output version information and exit\n"
+ "-p, --program Pass following string as arguments to executable\n";
}
static void PrintVersion() {
@@ -78,6 +80,7 @@ static void InitializeLogging() {
/// Application entry point
int main(int argc, char** argv) {
+ Common::DetachedTasks detached_tasks;
Config config;
int option_index = 0;
@@ -101,15 +104,13 @@ int main(int argc, char** argv) {
bool fullscreen = false;
static struct option long_options[] = {
- {"gdbport", required_argument, 0, 'g'},
- {"fullscreen", no_argument, 0, 'f'},
- {"help", no_argument, 0, 'h'},
- {"version", no_argument, 0, 'v'},
- {0, 0, 0, 0},
+ {"gdbport", required_argument, 0, 'g'}, {"fullscreen", no_argument, 0, 'f'},
+ {"help", no_argument, 0, 'h'}, {"version", no_argument, 0, 'v'},
+ {"program", optional_argument, 0, 'p'}, {0, 0, 0, 0},
};
while (optind < argc) {
- char arg = getopt_long(argc, argv, "g:fhv", long_options, &option_index);
+ char arg = getopt_long(argc, argv, "g:fhvp::", long_options, &option_index);
if (arg != -1) {
switch (arg) {
case 'g':
@@ -133,6 +134,10 @@ int main(int argc, char** argv) {
case 'v':
PrintVersion();
return 0;
+ case 'p':
+ Settings::values.program_args = argv[optind];
+ ++optind;
+ break;
}
} else {
#ifdef _WIN32
@@ -213,5 +218,6 @@ int main(int argc, char** argv) {
system.RunLoop();
}
+ detached_tasks.WaitForAllTasks();
return 0;
}