diff --git a/src/androiddeployqt/main.cpp b/src/androiddeployqt/main.cpp index 918467983f191cd74687dbadb8b5d127129653c9..b4ae258af46314b66d8a9007c084afd5e5fecdd0 100644 --- a/src/androiddeployqt/main.cpp +++ b/src/androiddeployqt/main.cpp @@ -322,11 +322,8 @@ Options parseOptions() if (argument.compare(QLatin1String("--output"), Qt::CaseInsensitive) == 0) { if (i + 1 == arguments.size()) options.helpRequested = true; - else { + else options.outputDirectory = arguments.at(++i).trimmed(); - if (!options.outputDirectory.endsWith(QLatin1Char('/'))) - options.outputDirectory += QLatin1Char('/'); - } } else if (argument.compare(QLatin1String("--input"), Qt::CaseInsensitive) == 0) { if (i + 1 == arguments.size()) options.helpRequested = true; @@ -460,6 +457,15 @@ Options parseOptions() options.timing = qEnvironmentVariableIsSet("ANDROIDDEPLOYQT_TIMING_OUTPUT"); + if (!QDir::current().mkpath(options.outputDirectory)) { + fprintf(stderr, "Invalid output directory: %s\n", qPrintable(options.outputDirectory)); + options.outputDirectory.clear(); + } else { + options.outputDirectory = QFileInfo(options.outputDirectory).canonicalFilePath(); + if (!options.outputDirectory.endsWith(QLatin1Char('/'))) + options.outputDirectory += QLatin1Char('/'); + } + return options; }